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
Daniel Black
innodb: token free of memory before YY_FATAL_ERROR

yy_load_buffer_state(x2) was notionally leaking memory
if the second memory allocation failed. The next
YY_FATAL_ERROR results in exit, so its not saving
much.

This was found by Infer and was corrected to
aid the workflows around it.

The change is a cherry-picked change out of the
Bison-3.8.2 generated files. Other generated
changes where overall not meaningful impacting
on the functionality of the parser or where
potentially much more impacting requiring
extensive validation of this lex parsing which
is intended to be removed.
Aleksey Midenkov
MDEV-38798 Assertion `mdl_key->length() == 3' failed in MDL_map::find_or_insert

Two MDL_EXCLUSIVE was used for pure alias of derived table and its
schema which is empty db name. It is concurrency performance overhead
and there is no obvious reason why such MDL should exist. MDEV-33985
changed pure alias check from `db.str` to `db.length` and that allowed
`empty_c_string` to be pure alias too. It is important for MDEV-33985
fix with sequences. Now such kind of pure alias skips MDL
initialization and thus derived table fails falsely on BACKUP
namespace as it is default namespace for 0-filled structure (see TODO
comments).

The fix a) keeps MDL_NOT_INITIALIZED for uninitialized MDL and that
was the consequence of MDL_INTENTION_EXCLUSIVE value 0 (see TODO
comment).

And b) does not update MDL type for pure alias when view is
initialized, so it is MDL_NOT_INITIALIZED. `lock_table_names()` code
naturally skips such kind of MDL with (mdl_request.type <
MDL_SHARED_UPGRADABLE) condition when processing tables list.
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-39139 InnoDB fails to start up with small RLIMIT_AS

innodb_init_params(): When no innodb_buffer_pool_size_max has been
specified, cap the default to a quarter of the address space limit.

Reviewed by: Vladislav Vaintroub
Marko Mäkelä
Merge 11.4 into 11.8
Daniel Black
Connect: TDBXML::ReadDB - remove deadstore

Remove an assignement that is never read because
the return happens next.
Marko Mäkelä
MDEV-39142 InnoDB fails to start up with CONFIG_ARM64_VA_BITS_39=y

buf_pool_t::create(): If we fail to allocate virtual address space
for the default innodb_buffer_pool_size_max=8TiB on a 64-bit system,
let us retry with 128 GiB or innodb_buffer_pool_size,
whichever is greater.

On AMD64, POWER and SPARC, the size of the virtual address space
should always be at least 47 bits.

For 64-bit ARM, Linux also offers CONFIG_ARM64_VA_BITS_36, which would
limit the virtual address space to 16 GiB. This setting should be rare
even on embedded systems, such as OpenWrt.

For RISC-V, the minimum appears to be CONFIG_VA_BITS_SV39.

On MIPS, the virtual address space could be 40 bits or less, but we
don't know how much less. On the MIPS based LoongArch, the Linux
kernel will read the VALEN bits from the first cpucfg register.

We will assume that 39 bits is a sensible least common denominator for
64-bit ARM, RISC-V, MIPS, and LoongArch.

If this logic fails and InnoDB fails to start up on some 64-bit platform,
it will always be possible to specify a smaller value than the default
innodb_buffer_pool_size_max=8t.
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.
Daniel Black
MDEV-37613 Connect Storage Engine - remove anonymous union

BINCOL::SetEndian can be replaced by using the preprocessor
macro WORDS_BIGENDIAN to determine the endian. After that
the BINCOL::Endian can be declared const.

For other functions, just gave the union a name.
This was to avoid errors in Infer.
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.
bsrikanth-mariadb
MDEV-39159: Disable --view-protocol for main.opt_context_store_sys_vars

Result file mismatch is noticed when the opt_context_sys_vars test is run
with "view protocol" option. With the option, a view is added on top of the
existing query, and that gets stored in the sql dump file.

In the test, dump file gets loaded and read back. But, because the view query
is different from the stored query in the result file, result mismatch
is reported.

We need to disable the test to run with --view option.
Christian Hesse
systemd: add missing quotes in examples

The line is commented, but let's have valid quoting anyway...
Daniel Black
MDEV-39158: Debian dh_installchangelogs parsing timestamp

Per policy[1] the date is meant to be a RFC 5322 type
timestamp.

[1] https://www.debian.org/doc/debian-policy/ch-source.html#debian-changelog-debian-changelog
Vladislav Vaintroub
MDEV-34482 threads running events are not visible for definer

Fixed to additionally show event worker threads, in SHOW PROCESSLIST
and I_S.PROCESSLIST, if event worker runs under current user context.
Marko Mäkelä
Merge 10.11 into 11.4
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
bsrikanth-mariadb
MDEV-39159: disable view protocol for the failing test-suite

Result file mismatch is noticed when the opt_context_sys_vars test is run
with "view protocol" option. With the option, a view is added on top of the
existing query, and that gets stored in the sql dump file.

In the test, dump file gets loaded and read back. But, because the view query
is different from the stored query in the result file, result mismatch
is reported.

We need to disable the test to run with --view option.
Vladislav Vaintroub
MDEV-37256 Add permission check for LOAD INDEX INTO CACHE and CACHE INDEX

Previously, no access check was done for these commands. Now, we require
any table-level permission, which consistent with other admin commands
like CHECKSUM.
Daniel Black
Remove #line preprocessor marks in innodb/mroonga

These confused Infer looking for generated files
in the build directory rather than the source directory.
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
Vladislav Vaintroub
MDEV-37256 Add permission check for LOAD INDEX INTO CACHE and CACHE INDEX

Previously, no access check was done for these commands. Now, we require
any table-level permission, which consistent with other admin commands
like CHECKSUM.
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.
Thirunarayanan Balathandayuthapani
MDEV-24356 InnoDB: Failing assertion: len < sizeof(tmp_buff) in get_foreign_key_info

get_foreign_key_info(): Changed tmp_buff size from NAME_LEN+1
to MAX_DATABASE_NAME_LEN+1 to accommodate encoded database names.
The buffer stores the database name extracted from
referenced_table_name and foreign_table_name, which can contain
encoded special characters (In this case dots encoded as @002e).
With encoding, database names can exceed NAME_LEN (64 bytes) even
if the logical name is within limits.
bsrikanth-mariadb
MDEV-37904: Use of un-initialized value

valgrind reported use of an un-initialized value, when trying to write
analyzed plan to json. Instead of fetching c_str() from the string
object and passing it to the writer object's add_string() method, one could
use an overridden add_string() that accepts a different string object.
This would avoid the valgrind warnings.
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])
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.
Marko Mäkelä
WIP MDEV-14992 BACKUP SERVER

This introduces a basic driver Sql_cmd_backup and storage engine interfaces.

TODO: Fully implement the storage engine interfaces.

TODO: Implement locking.

innodb_log_recovery_start: Make settable, for incremental backup.
Alas, the space.get_create_lsn() < checkpoint logic does not work yet.
Georgi (Joro) Kodinov
MDEV-39123: Replace sprintf with snprintf in the InnoDB
binlog code

sprintf is deprecated (and triggers a deprecation warning) on some platforms,
saying it needs to be replaced with snprintf.
This is a good idea, since sprintf doesn't explicitly check the size of the buffer
it is printing to.
Fixed by adding an extra size argument to the helper function and making sure
this extra argument is passed down from the caller to snprintf.
Marko Mäkelä
Merge MDEV-37949
Aleksey Midenkov
MDEV-38798 Assertion `mdl_key->length() == 3' failed in MDL_map::find_or_insert

Originally two MDL_EXCLUSIVE are used for pure alias of derived table
and its schema which is empty db name. It is concurrency performance
overhead and there is no obvious reason why such MDL should exist.

MDEV-33985 changed pure alias check from `db.str` to `db.length` and
that allowed `empty_c_string` to be pure alias too. It is important
for MDEV-33985 fix with sequences. Now such kind of pure alias skips
MDL initialization and thus derived table fails falsely on BACKUP
namespace as it is default namespace for 0-filled structure (see TODO
comments).

The fix a) keeps MDL_NOT_INITIALIZED for uninitialized MDL and that
was the consequence of MDL_INTENTION_EXCLUSIVE value 0 (see TODO
comment).

And b) does not update MDL type for pure alias when view is
initialized, so it is MDL_NOT_INITIALIZED. `lock_table_names()` code
naturally skips such kind of MDL with (mdl_request.type <
MDL_SHARED_UPGRADABLE) condition when processing tables list.
forkfun
MDEV-30295 mysqldump produces syntactically incorrect statement

Remove version-specific executable comments, that were used for backward compatibility
with old MySQL versions (3.2, 4.0, 4.1, 5.0).
Georgi (Joro) Kodinov
MDEV-39123: Replace sprintf with snprintf in the InnoDB
binlog code

sprintf is deprecated (and triggers a deprecation warning) on some platforms,
saying it needs to be replaced with snprintf.
This is a good idea, since sprintf doesn't explicitly check the size of the buffer
it is printing to.
Fixed by adding an extra size argument to the helper function and making sure
this extra argument is passed down from the caller to snprintf.
Marko Mäkelä
MDEV-39142 InnoDB fails to start up with CONFIG_ARM64_VA_BITS_39=y

buf_pool_t::create(): If we fail to allocate virtual address space
for the default innodb_buffer_pool_size_max=8TiB on a 64-bit system,
let us retry with 128 GiB or innodb_buffer_pool_size,
whichever is greater.

On AMD64, POWER and SPARC, the size of the virtual address space
should always be at least 47 bits.

For 64-bit ARM, Linux also offers CONFIG_ARM64_VA_BITS_36, which would
limit the virtual address space to 16 GiB. This setting should be rare
even on embedded systems, such as OpenWrt.

For RISC-V, the minimum appears to be CONFIG_VA_BITS_SV39.

On MIPS, the virtual address space could be 40 bits or less, but we
don't know how much less. On the MIPS based LoongArch, the Linux
kernel will read the VALEN bits from the first cpucfg register.

We will assume that 39 bits is a sensible least common denominator for
64-bit ARM, RISC-V, MIPS, and LoongArch.

If this logic fails and InnoDB fails to start up on some 64-bit platform,
it will always be possible to specify a smaller value than the default
innodb_buffer_pool_size_max=8t.
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)
Vladislav Vaintroub
Merge branch '10.11' into MDEV-34482
Jan Lindström
MDEV-28750 : Assertion `trans_safe || !updated || thd->transaction->stmt.modified_non_trans_table' failed in virtual bool multi_update::send_eof()

Problem was that in multi-table update that contains tables that are not
transactional and tables that are transactional error handling does not
work correctly if write set size is limited. Because, Galera
replication for MyISAM is experimental it is better to avoid
multi-table updates in this case.

Fixed by not allowing multi-table updates if statement contains
non transactional and transactional tables and write set size
is limited.
Marko Mäkelä
Merge 11.8 into 12.3