Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Console View


Categories: connectors experimental galera main
Legend:   Passed Failed Warnings Failed Again Running Exception Offline No data

connectors experimental galera main
Sergei Golubchik
MDEV-39279 ASAN error on malformed WKB

Discovered by Riley Scott Jacob
Sergei Golubchik
Un-deprecate keep_files_on_create

originally (MDEV-23570) the idea was to make it TRUE and deprecate.
It cannot be deprecated when it's FALSE, but TRUE breaks
mariabackup.aria_backup where a table is altered from Aria to InnoDB
during a backup, so both t.MAD/t.MAI and t.ibd gets into a backup.
This is MDEV-38866, when it's fixed, keep_files_on_create can be
enabled by default and deprecated at last.
Daniel Black
MDEV-34902: debian-start erroneously reports issues

Remove the complexity of check_for_crashed_tables
by removing it all together. When check_for_crashed_tables
was written there was a desire to recover MyISAM tables.

With Aria being default from 10.4 for system tables,
and all non-MyISAM engines being able to do crash
recovery there isn't the need to autocheck as part
of a system service.

With check_for_crashed_tables removed there is no need
for a mailx package recommendation.
Sergei Golubchik
MDEV-38827 Assertion `str[strlen(str)-1] != '\n'[ || strlen(str) == 512-1]' failed in my_message_sql

remove trailing '\n' from CONNECT error messages
Sergei Golubchik
MDEV-38670 update test results
ParadoxV5
MDEV-37146 mariadb-dump: Replace SHOW SLAVE STATUS usage with information_schema.SLAVE_STATUS

`SELECT … FROM information_schema.SLAVE_STATUS` is an alternative
to `SHOW SLAVE STATUS` that supports `WHERE` and column selection.
Utilizing this server-side feature allows `mariadb-dump --dump-slave`
to iterate only the required data on the client side.

This commit keeps support for pre-`information_schema.SLAVE_STATUS`
(MDEV-33526 @ 11.6) via `SHOW SLAVE STATUS` by switching column indices.
On the contrary, it additionally drops `--dump-slave`
and `--apply-slave-statements` support for pre-GTID &
pre-multi-source (before 10.0 – long EOL).

Reviewed-by: Brandon Nesterenko <[email protected]>
Aquila Macedo
systemd: protect cgroups in unit templates

Set ProtectControlGroups=true in mariadb.service and [email protected] to
make /sys/fs/cgroup read-only for the service.

Improves systemd-analyze security while keeping auth_pam (PAMv2)
working.
Sergei Golubchik
MDEV-38892 not all SRCDEF sprintfs were removed

fix as in 2925d0f2ee98

Discovered by: Aakash Adhikari
Sergei Golubchik
enable connect odbc/jdbc tests that were never run for years

* enable connect.jdbc
* enable connect.odbc_sqlite3 test and fix it to pass
* disable connect.odbc_sqlite3_grant - too broken and obsolete
Abhishek Bansal
MDEV-38474: ASAN heap-use-after-free in st_select_lex_unit::cleanup

cleanup_stranded_units() was added at the start of
st_select_lex_unit::cleanup() by 34a8209d6657. This causes a
use-after-free when nested subqueries are merged into their parent
unit. With nested subqueries like:

  SELECT * FROM t1
  WHERE a IN (SELECT b FROM t2
              WHERE a IN (SELECT c FROM t3 WHERE FALSE HAVING c < 0));

the stranded_clean_list chains the units as: Unit1 -> Unit2 -> Unit3.
Because cleanup_stranded_units() was called first, Unit1->cleanup()
would recursively trigger Unit2->cleanup(), which in turn would
trigger Unit3->cleanup(). Unit3's cleanup frees its heap-allocated
join structures. But since Unit3 was merged into Unit2, Unit2 still
holds references to Unit3's structures (e.g., st_join_table). When
control returns to Unit2 for its own local cleanup, it accesses
already-freed memory.

Fix: move cleanup_stranded_units() to the end of cleanup(). This way,
each unit completes its own local cleanup first—clearing its
references to any child structures—before triggering cleanup of its
stranded (child) units. This enforces a parent-first cleanup order.
Sergei Golubchik
MDEV-39319 crash with ST_GeomFromGeoJSON(, NULL)

one cannot check item->null_value before evaluating item's value
Thirunarayanan Balathandayuthapani
MDEV-38822 Lock wait timeout during CREATE TABLE AS SELECT FROM mysql.innodb_table_stats

Analysis:
=========
1) Starts the CREATE TABLE ... SELECT and acquires an Intent Shared lock on
mysql.innodb_table_stats to read the rows. (Transaction: T1)

2) The table t1 is populated. As part of the post-copy phase
(introduced by MDEV-35163), InnoDB triggers the statistics update.

3) InnoDB opens a new internal transaction to update the statistics.
This transaction(T2) attempts to acquire an LOCK_X on the same
table in mysql.innodb_table_stats. T2 (x-lock) must wait for T1 to
commit or rollback because X-locks are incompatible with
IS locks from other trasnaction.

Solution:
========
Currently, Intermediate tables don't trigger dict_stats_update_if_needed(),
so they require explicit stats update via alter_stats_rebuild().
For CREATE...SELECT stats are updated automatically through the normal DML
path via dict_stats_update_if_needed()

Skip calling dict_stats_update() in alter_stats_rebuild() for
non-intermediate tables when using copy algorithm, since their statistics will
be updated automatically via dict_stats_update_if_needed().
Marko Mäkelä
MDEV-39263 innodb_snapshot_isolation fails to prevent lost updates under contention

lock_clust_rec_read_check_and_lock(): Refine the check whether
the transaction that last modified the record is still active.
The only thing that should matter is whether we are allowed to see
the record. If the implicit lock holder transaction was active and
we succeeded in acquiring the lock, this means that the transaction
had been committed. We must return DB_RECORD_CHANGED (ER_CHECKREAD)
in that case. We want to avoid returning it before the lock wait,
in case the other transaction will be rolled back.

Thanks to Vadim Tkachenko of Percona for reporting this bug,
as well as Kyle Kingsbury for the broader testing that led to this
finding. Vadim's test case was simplified by me and the root cause
analyzed with https://rr-project.org and an additional patch that
added std::this_thread::yield() at the start of
trx_t::commit_persist(). An even better spot should have been
right after the call to trx_t::commit_state().

The addition to the test innodb.lock_isolation is based on the work
by Teemu Ollakka, which was essential for refining this fix.

Reviewed by: Thirunarayanan Balathandayuthapani
Sergei Golubchik
MDEV-39289 CONNECT REST support on Windows doesn't escape the url

let's use _spawnlp that doesn't need args to be escaped

Reported by Aisle Research
ParadoxV5
MDEV-39190 mariadb-dump --dump-slave outputs partial output for old servers

When dumping from older servers, the MDEV-37146 optimization was
clever to reuse the SHOW ALL SLAVES STATUS from an earlier step.
But it forgot to rewind the tape before playing again,
so it only saw a blank screen.
It also left an extra “SHOW ALL SLAVES STATUS” text in dead code.

This commit fixes both of these oversights.

Reviewed-by: Brandon Nesterenko <[email protected]>
Daniel Black
MDEV-39015 Debian - remove libboost-system-dev dependency

In all supported Debian versions, which are all 1.69+,
this package only provided a library stub. The header
files where moved into libboost-dev when upstream removed
the need for a library.
Monty
Fix compilation error from -Wframe-larger-than= in sql_show.cc and i_s.cc

gcc 15.1.15 gives the following error, possible from static struct
initialization:

/my/maria-11.8/sql/sql_show.cc: In function ‘void __static_initialization_and_destruction_0()’:
/my/maria-11.8/sql/sql_show.cc:11356:1: error: the frame size of 62880 bytes is larger than 16384 bytes [-Werror=frame-larger-than=]

Fixed by adding PRAGMA_DISABLE_CHECK_STACK_FRAME to sql_show.cc
Alexey Botchkov
MDEV-39210 ExtractValue/UpdateXML crash.

XML parser fixed to handle <! and <? correctly.
Raghunandan Bhat
MDEV-39118: `test_if_hard_path` crashes on recursively resolving `$HOME`

Problem:
  When `$HOME` is set to `~/` (or any string starting with `~/`), the
  `home_dir` is initialized to that value. When `test_if_hard_path` is
  called on a path starting with `~/`, it replaces the `~/` prefix by
  recursively calling `test_if_hard_path(home_dir)` leading to infinite
  recursion and a crash.

Fix:
  Add a check in `test_if_hard_path` to see if `home_dir` itself begins
  with `~/`. If it does, skip the recursive call to prevent the
  infinite loop.
Sergei Petrunia
MDEV-39382: Trace replay produces "Impossible WHERE noticed after reading const tables"

Constant table check in make_join_statistics() checks the value of
"table->file->stats.records", not table->used_stat_records. These
two values can be different.

So, make the Optimizer Context save and restore both values.
(used_stat_records was saved already, this patch also saves
table->file->stats.records).
Sergei Golubchik
don't create build files like mysqlserver-$<CONFIG>.mri.tpl

cmake generator expressions are expanded *during the build step*.
If the file is created *during the configuration step* its name
cannot use generator expressions.
Dave Gosselin
MDEV-39209: use iterative cleanup for merged units to avoid stack overflow

Query optimization can merge derived tables (VIEWs being a type of derived
table) into outer queries, leaving behind stranded  st_select_lex_unit objects
("stranded units") for post-query cleanup.

Previously, these were cleaned up recursively. For queries with many merged
derived tables, the deep recursion over the list of stranded units could
exhaust the stack. This change replaces the recursive cleanup with an
iterative loop to prevent stack overflows.
Sergei Petrunia
MDEV-39382: Trace replay produces "Impossible WHERE noticed after reading const tables"

Constant table check in make_join_statistics() checks the value of
"table->file->stats.records", not table->used_stat_records. These
two values can be different.

So, make the Optimizer Context save and restore both values.
(used_stat_records was saved already, this patch also saves
table->file->stats.records).
Sergei Golubchik
MDEV-39177 When tests are skipped, number of variations seem random

sort the result of mtr_misc.pl::uniq() (which is just values %seen)
to process combinations in the deterministic order
ParadoxV5
MDEV-39190 mariadb-dump --dump-slave outputs partial output for old servers

When dumping from older servers, the MDEV-37146 optimization was
clever to reuse the SHOW ALL SLAVES STATUS from an earlier step.
But it forgot to rewind the tape before playing again,
so it only saw a blank screen.
It also left an extra “SHOW ALL SLAVES STATUS” text in dead code.

This commit fixes both of these oversights.

Reviewed-by: Brandon Nesterenko <[email protected]>
Marko Mäkelä
Merge 10.6 into 10.11
Varun Deep Saini
MDEV-35548: Fix out-of-bounds array access in json_get_path_start

json_get_path_start() set p->last_step to p->steps - 1, creating a
pointer before the beginning of the steps[] array. This is undefined
behavior flagged by UBSAN as "index -1 out of bounds for type
json_path_step_t[32]".

Use NULL as the sentinel value instead, and check for NULL in
json_get_path_next() rather than comparing against p->steps.

Signed-off-by: Varun Deep Saini <[email protected]>
Signed-off-by: Varun Deep Saini <[email protected]>
ParadoxV5
Improve `mariadb-dump --dump-slave`’s desc. output

Improve the wording and spacing of the description comment generated
by `mariadb-dump --dump-slave` for its CHANGE MASTER statement.
PranavKTiwari
10.11-MDEV-39245- removed filename extension .so from the test file.
Sergei Golubchik
fix compilation failure for embedded with bundled pcre2

sql_embedded must be linked with pcre2-8 so that cmake knew
that sql_embedded needs pcre2-8's INTERFACE include path
Oleksandr Byelkin
MDEV-39287 (10.6 part) Fix compilation problems with glibc 2.43/gcc 16/fedora 44

Use 'const' where possible.
Use string copy to make dbug usage safe
Check safetiness of myisam/aria usage (made by Monty)
PranavKTiwari
MDEV-39184 Stabilize metadata_lock_info test output using sorted results

Added --sorted_result to the MDL tests to ensure deterministic ordering
of metadata_lock_info output. Since MDL lock iteration order depends on
hash_value() and underlying Split-Ordered List behavior, it may vary with
internal changes such as enum value shifts.
ParadoxV5
Improve `mariadb-dump --dump-slave`’s desc. output

Improve the wording and spacing of the description comment generated
by `mariadb-dump --dump-slave` for its CHANGE MASTER statement.
Sergei Golubchik
CONNECT: suppress \n at the end of the error message
Daniel Black
MDEV-39292 Debian build compiles Columnstore aarch64

But doesn't package it. The devel-6 branch of columnstore
is in a low maintaince state. We can't readd aarch64.

To prevent our CI resources building aarch64 columnstore
on the 10.6 and 10.11 branches we adjust our autobake-deb.sh
to keep the disable there.

The version check to 10 is so that when this is merged to
11.4 it becomes no longer impacting.
ParadoxV5
MDEV-37146 mariadb-dump: Replace SHOW SLAVE STATUS usage with information_schema.SLAVE_STATUS

`SELECT … FROM information_schema.SLAVE_STATUS` is an alternative
to `SHOW SLAVE STATUS` that supports `WHERE` and column selection.
Utilizing this server-side feature allows `mariadb-dump --dump-slave`
to iterate only the required data on the client side.

This commit keeps support for pre-`information_schema.SLAVE_STATUS`
(MDEV-33526 @ 11.6) via `SHOW SLAVE STATUS` by switching column indices.
On the contrary, it additionally drops `--dump-slave`
and `--apply-slave-statements` support for pre-GTID &
pre-multi-source (before 10.0 – long EOL).

Reviewed-by: Brandon Nesterenko <[email protected]>
Sergei Golubchik
MDEV-38777 mariadb-test Build regression in FreeBSD - 2026Q1 releases
Yuchen Pei
Move archive engine part in test sql_sequence.create to a separate test

...so that sql_sequence.create can be tested without having to build
the archive engine
Sergei Golubchik
MDEV-38868 Assertion `*str != '\0'' failed in my_message_sql on CREATE TABLE

avoid empty error messages in failed CONNECT assisted discovery
Sergei Golubchik
MDEV-39281 CONNECT OEM tables don't check subtype length

copy the coresponding check from OEMColumns()

Reported by Aisle Research