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
Rex Johnston
MDEV-38070 wrong resultset with having and or condition

During join execution of a query involving an aggregation,
ref items pointing to types that call Item_ref::val_native
(which includes TIMESTAMP fields) will return a value from
Item_field::field, rather than Item_field::result_field.
This will result in a potentially incorrect grouping comparison
and an incorrect result.

Affected statements will involve a derived grouped table with
an aggregation function TIMESTAMP field and outer having clause.
Marko Mäkelä
MDEV-39087 os_file_set_size() may behave inconsistently during shutdown

os_file_set_size(): Ignore srv_shutdown_state and consistently extend
the file to completion. If someone is in a hurry, they can forcibly
kill the mariadbd process and test the crash recovery.
Hemant Dangi
MDEV-36621: galera.GCF-360 test: IST failure

Removed redundant per-node wsrep_provider_options overrides that
were dropping all timeout settings.
Abdelrahman Hedia
MDEV-37842 Skip implicit Using_Gtid warning when value is unchanged

When a replica already has Using_Gtid=No and a CHANGE MASTER TO is
issued with log coordinates (e.g. relay_log_pos, master_log_file),
the server emits a spurious warning:

  Note 4190 CHANGE MASTER TO is implicitly changing the value of
  'Using_Gtid' from 'No' to 'No'

The value isn't actually changing, so the warning is misleading.

In change_master() (sql/sql_repl.cc), when log coordinates are specified
without an explicit master_use_gtid, the code implicitly sets Using_Gtid
to No and emits a warning. The condition only checks whether
master_use_gtid=No was explicitly given but does not check whether
Using_Gtid is already No.

Added a check that the current Using_Gtid value differs from
USE_GTID_NO before emitting the warning. The warning now only fires
when the value actually changes.

Re-recorded rpl.rpl_from_mysql80 which previously expected the
spurious No-to-No warning.

Reviewed-by: Georgi Kodinov <[email protected]>
Reviewed-by: Brandon Nesterenko <[email protected]>

https://github.com/MariaDB/server/pull/4678
Geng Tian
MDEV-38454 CHANGE MASTER TO master_heartbeat_period does not accept numbers with `+` sign

Fixed parser inconsistency where CHANGE MASTER TO master_heartbeat_period
rejected numeric values with an explicit '+' sign, while other parameters
like master_connect_retry accepted them.

The issue was in sql/sql_yacc.yy where master_heartbeat_period used
NUM_literal (which doesn't accept '+'), while other parameters used
ulong_num (which includes opt_plus).

Solution: Added opt_plus before NUM_literal in the master_heartbeat_period
grammar rule, making it consistent with other numeric parameters.

Added test case to verify:
- master_heartbeat_period=+60 now works (was broken)
- master_heartbeat_period=60 still works (backward compatible)

All new code of the whole pull request, including one or several files
that are either new files or modified ones, are contributed under the
BSD-new license. I am contributing on behalf of my employer Amazon Web
Services, Inc.
Christian Hesse
systemd: add missing quotes in examples

The line is commented, but let's have valid quoting anyway...
Sergei Golubchik
MDEV-38892 not all SRCDEF sprintfs were removed

fix as in 2925d0f2ee98

Discovered by: Aakash Adhikari
Marko Mäkelä
Merge 10.11 into 11.4
Daniel Black
MDEV-39086 MSAN/UBSAN/ASAN builds run without basic optimization

MSAN/UBSAN/ASAN/TSAN builds are preforming addition runtime
checks requiring additional CPU to do so. To help the test
systems of these run with a bit faster, but still be debuggable,
we should add -Og where another C/CXX optimization flag isn't
specified.

Gcc/Clang environment that support these range of sanitizers
use -O followed by 0-3, g, s, z, and apparently "fast". These
are the flags matched by the regex.
Varun Deep Saini
MDEV-33070 Thread pool starvation at oversubscribe

Allow one more worker at the oversubscribe threshold so a group
only becomes oversubscribed after it exceeds the configured
limit.

Add a regression test that reproduces the starvation case in the
generic thread pool and verifies queued work still drains.

Signed-off-by: Varun Deep Saini <[email protected]>
Denis Protivensky
MDEV-39011: Fix THD leak in async slave error path with wsrep_restart_slave

- fix the leak by properly releasing resources before repeat
- rework the error path handling to wait for Wsrep readiness state
  instead of repeating endlessly
- improve Wsrep readiness state by also singlaing node's shutdown
Sergei Golubchik
MDEV-38806 Non-debug assertion failure in btr_pcur_t::restore_position upon HANDLER operations

amend the fix from MDEV-37832 to include HANDLER
and CHECKSUM/ANALYZE to work as before, even if they aren't "updating"
commands.
Sergei Golubchik
tests
Yuchen Pei
MDEV-38732 Correctly construct queries with NULL uservar values in spider

The subsequent assertion failure in end_statement is likely caused by
HA_ERR_OUT_OF_MEM not correctly handled, but it should not return an
HA_ERR_OUT_OF_MEM here in the first place.
Marko Mäkelä
MDEV-39040 log_sys.latch performance lost to PERFORMANCE_SCHEMA

log_sys.latch: Remove the PERFORMANCE_SCHEMA instrumentation.
We already know that this is a very busy latch. All code paths
where a shared log_sys.latch is being held should already be
highly optimized. The few paths where an exclusive log_sys.latch
is being held are known to be potentially problematic, but rare.

Removing the PERFORMANCE_SCHEMA instrumentation for this latch
is expected to improve performance. On a quick Sysbench run with

performance_schema_instrument=wait/synch/rwlock/%=on

I observed an 2.9% improvement on throughput.

srw_lock_debug_simple: A non-instrumented version of srw_lock_debug,
to allow PERFORMANCE_SCHEMA to work WITH_INNODB_EXTRA_DEBUG=ON.

Reviewed by: Alessandro Vetere
Sutou Kouhei
MDEV-39098: UBSAN: insufficient-object-size in mroonga groonga/lib/db.c:10882

The incorrect destructor was used in delete_reference_records_in_index
Sergei Golubchik
enable connect.jdbc test
Anway Durge
MDEV-XXXXX: Fix Mroonga post-install script path

Update legacy /usr/share/mysql path to /usr/share/mariadb in the debian postinst script for the mroonga plugin.
Sergei Golubchik
MDEV-38777 mariadb-test Build regression in FreeBSD - 2026Q1 releases
Daniel Black
MDEV-39109 main.sp-error stack overflow debug, MSAN and ASAN

MSAN seems error on stack depth 39 so set limit to 20.

ASAN error-ed on stack depth 248 so set limit to 200.

The actua;ly depth wasn't important for the purposes
of the fatal error handling in MySQL bug #15192
from which this test originates.

Reviewed/Approved by: Oleksandr "Sanja" Byelkin ([email protected])
Rex Johnston
MDEV-29360 Crash when pushing condition with always false IS NULL into derived

When a condition containing an always FALSE range part is pushed
down into a derived table, an enclosed outer reference can cause
a null pointer crash.  An example

SELECT * FROM (SELECT id  FROM t1 GROUP BY id) dt1, (SELECT id FROM t2) dt2, t3
  WHERE dt2.id = t3.id AND dt1.id BETWEEN 0 AND (dt2.id IS NULL);

is considered as one that can be pushed into the derived table dt1
because the expression (dt2.id IS NULL) is identified as always false.
On the on other hand the condition still contains a reference to a
column of the table dt2. When pushing the condition to the where clause
of the derived table dt1 a copy of it is created and this copy is
transformed to be used in the new where clause. When the transformation
procedure encounters a reference dt2.id it crashes the server as only
the references to the columns used in the group by list of the
specification of dt1 or those equal to them are expected in the
condition that can be pushed into the where clause of the derived table.

The fix here is transform the argument to the function Item_func_isnull
from something that may be a column reference, but cannot be null to
an Item_literal that also cannot be null (1).

Based on patch by Igor Babaev.
Fariha Shaikh
MDEV-36725 Fix innodb_ctype_ldml test in view-protocol mode

The test innodb.innodb_ctype_ldml was failing in view-protocol mode due
to different column naming behavior for complex expressions.

Without explicit column aliases, view-protocol mode generates automatic
names (Name_exp_1, Name_exp_2) while normal mode uses the full
expression as the column name.

Add explicit column aliases to SELECT statements in innodb_ctype_ldml to
ensure consistent column names across both normal and view-protocol
modes.

All new code of the whole pull request, including one or several files
that are either new files or modified ones, are contributed under the
BSD-new license. I am contributing on behalf of my employer Amazon Web
Services, Inc.
Vladislav Vaintroub
MDEV-38954 - do not use any charset conversions for session tracker info.

MySQL converts neither variables nor database name in session tracker info.
And hence we should not do any conversions, in order to keep protocol
compatible.

De-facto though, strings in session tracker are always UTF8,  more
exactly, character_set_system=utf8mb3, which is both schema name and
system variables are encoded in.
Mohamed
MDEV-38494 .mariadb_history rename race condition

When multiple mariadb sessions exit at the same time, they all write
to the same $HISTFILE.TMP then rename it to $HISTFILE.  The second
rename fails with Errcode 2 because the first already moved the file.

Fix: include the process PID in the temp file name so each session
uses its own unique path and no rename collision can occur.
Thirunarayanan Balathandayuthapani
MDEV-19574: Refactor index statistics calculation and fix critical bugs

Problem:
=======
When persistent statistics are enabled (innodb_stats_persistent=ON),
the innodb_stats_method setting is not properly utilized during
statistics calculation.

The statistics collection functions always use a hardcoded default
behavior for NULL value comparison instead of respecting the
configured stats method (NULLS_EQUAL, NULLS_UNEQUAL, or
NULLS_IGNORED). This affects the accuracy of n_diff_key_vals
(distinct key count) and n_non_null_key_val estimates, particularly
for indexes with nullable columns containing NULL values. This
impacts the query optimizer makes decisions based on inaccurate
cardinality and estimates.

Solution:
========
Introduced IndexLevelStats which is to collect statistics
at a specific B-tree level during index analysis

Introduced LeafPageStats which is to collect statistics
for leaf page analysis

Refactored the following functions:
dict_stats_analyze_index_level() to IndexLevelStats::analyze_level()
dict_stats_analyze_index_for_n_prefix() to IndexLevelStats::sample_leaf_pages()
dict_stats_analyze_index_below_cur() to LeafPageStats::scan_below()
dict_stats_scan_page() to LeafPageStats::scan()

Add stats method name to stat_description in case of non
default innodb_stats_method variable value

Added the new stat name like n_nonnull_fld01, n_nonull_fld02 etc
with stats description to indicate how many non-nulls value exist
for nth field of the index. This value is properly retrieved and
stored in index statistics in dict_stats_fetch_index_stats_step().

rec_get_n_blob_pages(): Calculate the number of externally
stored pages for a record. It uses ceiling division with actual
usable blob page space(blob_part_size) and now correctly handles for
both compressed and uncompressed table formats for
accurate BLOB page counting.

When InnoDB scan the leaf page directly, assign leaf page
count as number of pages scanned in case of multi-level index.
For single page indexes, use 1. This change leads to multiple
changes in existing test case.

n_non_null_key_vals calculation:
Only leaf pages have actual null/non-null distinction that
matters for statistics.
For NOT NULL columns, n_non_null_key_vals = n_diff_key_vals
For nullable columns, n_non_null_key_vals is calculated using

n_ordinary_leaf_pages * (n_non_null_all_analyzed_pages
                        / n_leaf_pages_to_analyze)
Marko Mäkelä
Merge 10.11 into 11.4
Daniel Black
Bump columnstore to latest stable-23.10
Marko Mäkelä
MDEV-39104 Hang in the test innodb.log_file_size,debug

srv_prepare_to_delete_redo_log_file(), srv_start(): When injecting a
failure, resume the ability to write a checkpoint, so that the
shutdown will not hang. Also, adjust the test so that it tolerates
the checkpoint during shutdown.

Fixes up commit bf363a573ab8f96657545de97ead568d09a9f1a0 (MDEV-38968)
luckyxhq
MDEV-38915 Fix signed/unsigned type mismatch in setval() for GET_ULONG
Vladislav Vaintroub
MDEV-28115 Hashicorp MTR tests aren't runnable on WIndows

- Fixed detection of "vault" utility
- Removed include/not_windows.inc from common include
- On Windows, skip 2 tests that rely on "grep"
Vladislav Vaintroub
MDEV-28115 Hashicorp MTR tests aren't runnable on WIndows

- Fixed detection of "vault" utility
- Removed include/not_windows.inc from common include
- On Windows, skip 2 tests that rely on "grep"
- in mtr, set PATH to include mtr plugin directory (this is necessary
  to load vcpkg dependencies)
Alexey Botchkov
MDEV-37262 XMLTYPE: validation.
Marko Mäkelä
Merge 10.6 into 10.11
Denis Protivensky
MDEV-30612: Fix usage of lex->definer in wsrep_create_trigger_query

Setting thd->lex->definer is excessive as it's only used within the
function call.
Moreover, it would lead to a use-after-free on the second execution
of a CREATE TRIGGER prepared statement.
Sergei Golubchik
MDEV-23507 Wrong duplicate key value printed in ER_DUP_ENTRY

repair_by_sort() does not use table->record[0]
but print_keydup_error() expects to see the conflicting row there.
hadeer
Mroonga: fix SIGSEGV on NULL mroonga_log_file

Add mrn_log_file_check() to validate that
mroonga_log_file is not set to NULL or an empty
string, which previously caused a segfault.
Alexey Yurchenko
MDEV-38383 Fix MDEV-38073 MTR test warning

MDEV-38073 MTR test started to fail with a warning after upstream merge
from 11.4 a7528a6190807281d3224e4e67a9b76083a202a6 because THD responsible
for creating SST user became read-only when the server was started with
--transaction-read-only=TRUE.
make sure the readonly flag on THDs created for wsp::thd utility class is
cleared regardless of the --transaction-read-only value as it is intended
only for client-facing THDs.
sjaakola
supporting virtual columns
A table with no primary nor unique keys and having indexed virtual
column can cause replication failure (see: rpl.rpl_row_vcol_crash)
Thirunarayanan Balathandayuthapani
MDEV-19574: innodb_stats_method is not honored when innodb_stats_persistent=ON

Problem:
=======
When persistent statistics are enabled (innodb_stats_persistent=ON),
the innodb_stats_method setting is not properly utilized during
statistics calculation.

The statistics collection functions always use a hardcoded default
behavior for NULL value comparison instead of respecting the
configured stats method (NULLS_EQUAL, NULLS_UNEQUAL, or
NULLS_IGNORED). This affects the accuracy of n_diff_key_vals
(distinct key count) and n_non_null_key_val estimates, particularly
for indexes with nullable columns containing NULL values. This
impacts the query optimizer makes decisions based on inaccurate
cardinality and estimates.

Solution:
========
Introduced IndexLevelStats which is to collect statistics
at a specific B-tree level during index analysis

Introduced LeafPageStats which is to collect statistics
for leaf page analysis

Refactored the following functions:
dict_stats_analyze_index_level() to IndexLevelStats::analyze_level()
dict_stats_analyze_index_for_n_prefix() to IndexLevelStats::sample_leaf_pages()
dict_stats_analyze_index_below_cur() to LeafPageStats::scan_below()
dict_stats_scan_page() to LeafPageStats::scan()

Add stats method name to stat_description in case of non
default innodb_stats_method variable value

Added the new stat name like n_nonnull_fld01, n_nonull_fld02 etc
with stats description to indicate how many non-nulls value exist
for nth field of the index. This value is properly retrieved and
stored in index statistics in dict_stats_fetch_index_stats_step().

rec_get_n_blob_pages(): Calculate the number of externally
stored pages for a record. It uses ceiling division with actual
usable blob page space(blob_part_size) and now correctly handles for
both compressed and uncompressed table formats for
accurate BLOB page counting.

When InnoDB scan the leaf page directly, assign leaf page
count as number of pages scanned in case of multi-level index.
For single page indexes, use 1. This change leads to multiple
changes in existing test case.

n_non_null_key_vals calculation:
Only leaf pages have actual null/non-null distinction that
matters for statistics.
For NOT NULL columns, n_non_null_key_vals = n_diff_key_vals
For nullable columns, n_non_null_key_vals is calculated using

n_ordinary_leaf_pages * (n_non_null_all_analyzed_pages
                        / n_leaf_pages_to_analyze)