Console View
|
Categories: connectors experimental galera main |
|
| connectors | experimental | galera | main | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Daniel Black
daniel@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
rocksdb: tests timeout under MSAN+Debug But rocksdb.bulk_load_unsorted_rev and rocksdb.bulk_load_unsorted succeed under non-debug builds, and because it was slow at 87 seconds) there is a --big-test criteria for these tests. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Ruiqiang Hao
Ruiqiang.Hao@windriver.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-35566 Ensure compatibility with ARMv9 by updating .arch directive The pmem_cvap() function currently uses the '.arch armv8.2-a' directive for the 'dc cvap' instruction. This will cause build errors below when compiling for ARMv9 systems. Update the '.arch' directive to 'armv9.4-a' to ensure compatibility with ARMv9 architectures. {standard input}: Assembler messages: {standard input}:169: Error: selected processor does not support `retaa' {standard input}:286: Error: selected processor does not support `retaa' make[2]: *** [storage/innobase/CMakeFiles/innobase_embedded.dir/build.make: 1644: storage/innobase/CMakeFiles/innobase_embedded.dir/sync/cache.cc.o] Error 1 Signed-off-by: Ruiqiang Hao <[email protected]> |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Jan Lindström
jan.lindstrom@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-37497 : galera-new-cluster is installed wrong directory in bintar galera-new-cluster should be installed to INSTALL_BINDIR instead of INSTALL_SCRIPTDIR on bintars. Thanks to Daniel Black <[email protected]> for fix. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Kristian Nielsen
knielsen@knielsen-hq.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Fix sporadic test failure of main.debug_sync The test case was not waiting for a prior --send to have proceeded far enough before attempting to KILL it. This meant the KILL could get lost if timing delayed the connection in --send. Signed-off-by: Kristian Nielsen <[email protected]> |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Monty
monty@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Add statistics usable for feedback plugin Following status variables where added: Feature_vector_index ; Incremented when reading a vector index from a .frm file. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Nikita Malyavin
nikitamalyavin@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Item::eq: transform bool binary_cmp into struct Eq_config Part of MDEV-34033 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Jan Lindström
jan.lindstrom@galeracluster.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-37136 : sql/wsrep_allowlist_service.cc:40:27: runtime error: member call on null pointer of type 'Wsrep_schema' Problem was that we used wsrep_schema pointer before it was initialized. Fix is to allow all connections when wsrep_schema is not yet initialized and check allowed connections only when wsrep_schema has been initialized. Signed-off-by: Julius Goryavsky <[email protected]> |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Marko Mäkelä
marko.makela@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-33817/MDEV-37170 fixup: Remove evex512 It turns out that there is no need to use the evex512 target attribute that had been introduced in GCC 14 and clang 18, and will be removed in GCC 16. At the time when the evex512 attribute was introduced, Intel had plans to release products with AVX10.1-256, supporting the AVX512 instruction set but limited to 256-bit registers. The evex512 attribute would have been needed to "opt in" to the 512-bit instruction variants (using the EVEX instruction prefix). Later on, Intel revised its plans to make AVX10.1 always 512-bit. Reviewed by: Kristian Nielsen |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Daniel Black
daniel@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-37438: UBSAN add_ext_keyuse_for_splitting downcast Item_func_equal -> Item_func_eq add_ext_keyuse_for_splitting assumed the added_key_field->cond was of type Item_func_eq. In 11.8 there are cases where this is actually of type Item_func_equal in some cases which is not a class descendant of Item_func_eq. The only use of this class is accessing its arguments() method which is defined all the way up the hierarchy of both Item_func_equal and Item_func_eq in the class Item_args. To resolve future mis-castings of this method we assume the topmost class of Item_args. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Daniel Black
daniel@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-37411: Clear warnings for io_setup failure Where io_setup fails, this is a serious issue, normally because of the lack of fs.aio-max-nr configured in the kernel. We adjust the error message to be a Warning, because like "native AIO failed: falling back to innodb_use_native_aio=OFF", its user actionable. A default configuation of the server and indeed raising innodb_write_io_threads and innodb_read_io_threads couldn't exceed the default fs.aio-max-nr value. If a user is constructing multipe instances of MariaDB that exceed this value then they should be seeing the warning and taking action. There are CI environments, as Otto points on on Launchpad, that have insufficient fs.aio-max-nr configure to run mtr in parallel. This however a genuine distro problem and to resolve. For us, and our developers, we'd rather see the warning so we can fix CI and dev instances that are insufficiently configured. The io_setup man page as a very short but descript set of causes for the io_setup failures. Its safer to refer to this, now with a strerror description rather than a number. The mtr suppressions are removed because a while ago when the errors where moved out of InnoDB and recently the server could never generate a warning of these forms. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ParadoxV5
paradox.ver5@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| could that be? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Marko Mäkelä
marko.makela@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge 10.6 into 10.11 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Nikita Malyavin
nikitamalyavin@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-34033 Exchange partition with virtual columns fails Extend Item::Eq_config with omit_table_names parameter to compare without table names in Item_field::eq. Tests are re-applied from commit 0cf2176b. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
mariadb-satishkumar
satish.kumar@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MDEV-36993: Format log for srv_mon_reset_all | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Brandon Nesterenko
brandon.nesterenko@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-29981: Replica stops with "Found invalid event in binary log" Replication can stop in error if a Heartbeat log event is sent to a replica during rotation. There are two bugs at play: 1. Prior to MDEV-30128 (added in 11.0), there is a bug when checking legacy events. When the replica rotates its relay logs, it initializes its Format_description_log_event with binlog version 3 (this is hard-coded). So immediately after rotation (and until a new Format_descriptor with binlog_format 4 is sent from the master), the IO thread is expecting binlog_format 3 (i.e. it will call queue_old_event() for incoming events). This invalidates any events that are sent with an event type higher than 14. In theory, we wouldn't expect any events to be sent in-between a rotate and the next format descriptor log event, but if a long enough period of time passes between then, the primary will generate and send a Heartbeat event (of type 27). In such case, the slave will see the heartbeat event of type 27, see it is higher than 14, and result in an error mentioning 'Found invalid event in binary log', with the expected log coordinates of the new log (which is optimistically populated from the Rotate log event, not the new event). 2. In all versions of MariaDB (11.0+), there is a bug when checking the state of a Heartbeat log event, in that it doesn't consider a rotated binary log. The check is meant to ensure that the heartbeat provided by the master (i.e. the state of the master) is greater than or equal to the state of the slave. In other words, it checks that the slave isn't ahead of the master. However, if the filename provided by the master heartbeat event is different than the filename saved for the slave's state, the check always fails. This is broken, because when the master rotates its logs, the new binary log file will have a different filename (i.e. an incremented index counter suffix). For example, if the master rotates its binary logs from master-bin.000002 to master-bin.000003, master-bin.000003 is ahead of master-bin.000002, but the slave will see a difference between the filenames and fail the check. To fix the first problem, this patch disallows passing a heartbeat event into queue_old_event (which is the source of the error, as it tries to parse a heartbeat log event). This function (queue_old_event) was removed with MDEV-30128, so bypassing it for heartbeat events is not consequential (and it is already also done for Format_description_events, which are not supported in old binlog file versions). Note that backporting all of MDEV-30128 was also considered, but this is less risky for GA. To fix the second problem, we simply ignore heartbeat events on the slave if the filenames don't match. This is because during rotation, it can appear that the slave is ahead of the master, which breaks the validity of the check (i.e. the check is to ensure the master is ahead of the slave). Additionally note that this patch restores a heartbeat check that was incorrectly removed in 780db8e25239e5423cfab50c04c60b79ebc0224b Reviewed-by: Andrei Elkin <[email protected]> Signed-off-by: Brandon Nesterenko <[email protected]> |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Aleksey Midenkov
midenok@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-16686 DDL in procedure propagates no locking to tables locked by DML TABLE_LIST parsed from procedure code is transferred into tables to lock for INSERT. The procedure code is CREATE VIEW so its TABLE_LIST is parsed as TL_IGNORE, but same view exists and when existing view is opened mysql_make_view() uses same TABLE_LIST that was initialized from CREATE VIEW and then added as part of prelocking context. So existing view is opened and its table is assigned TL_IGNORE from prelocking context. Finally, INSERT has TABLE_LIST duplication: the one that was parsed from INSERT; the another one came from procedure prelocking, its lock_type came from the procedure code and the real table was found via existing view. The sequence of execution: 1. Procedure p is compiled as part of open_and_process_routine(), its code is parsed and create_or_alter_view_finalize() initializes v TABLE_LIST as TL_IGNORE; 2. Procedure p prelocking adds v to prelocking_ctx with TL_IGNORE; 3. DML prelocking adds v from prelocking_ctx; 4. View is opened, mysql_make_view() assigns t lock_type from v; 5. open_and_lock_tables() attempts to lock t with TL_IGNORE. The fix skips TL_IGNORE at 2. when table list parsed by procedure is added for prelocking: if (my_hash_insert(&m_sptabs, (uchar *)tab)) return FALSE; m_sptabs designation was defined as strictly for prelocking: /** Multi-set representing optimized list of tables to be locked by this routine. Does not include tables which are used by invoked routines. @note For prelocking-free SPs this multiset is constructed too. We do so because the same instance of sp_head may be called both in prelocked mode and in non-prelocked mode. */ HASH m_sptabs; The fix was proposed by Sergei Golubchik <[email protected]>. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Daniel Black
daniel@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-36482: Make liburing work WITH_MSAN=ON (fix) The uring_ member of the aio_uring class needed to be defined to make MSAN happy. To make aio_uring consistent with aio_libaio in the 10.11 branch, added the "using namespace tpool" and removed tpool scoped quantifiers. 10.6 aio_uring is defined in the tpool namespace however changing that would just cause merge conflicts. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Daniel Black
daniel@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-37504 MemorySanitizer: use-of-uninitialized-value myrocks::Rdb_key_def::pack_field m_charset_codec is uninitalized when calling m_make_unpack_info_func. In the cases where m_make_unpack_info_func is one of: * Rdb_key_def::make_unpack_unknown_varchar * Rdb_key_def::make_unpack_unknown * Rdb_key_def::dummy_make_unpack_info the m_charset_coded that forms the first argument to this function is unused. In these limited cases we initialize the m_charset_codec member as the only use is to pass though to the m_make_unpack_info_func Ultimately MemorySanitizer shouldn't error on this as all of these 3 functions clearly have the attribute __unused__ on their first argument where the m_charset_coded is passed. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Rex Johnston
rex.johnston@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-38236 Produce parseable output from unit::print for use in fixing query plans Quick demo hacked together as an example. Have not altered parser to understand what a 'semi join' is, but explain format=sql select ... is working. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Marko Mäkelä
marko.makela@iki.fi |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Work around MDEV-37478 THD::get_net_wait_timeout(): Silence GCC -Wconversion by an explicit conversion from ulong (64 or 32 bits) to uint (32 bits). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Daniel Black
daniel@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV_37504 Rocks replace __unused__ attribute with nameless parameters Per c++98. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Marko Mäkelä
marko.makela@iki.fi |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-37477: decimal_digits_t trips GCC -Wconversion In commit fa7d4abf164b37d0f98012ff7e906ebe7de8f1ed when the 16-bit type alias decimal_digits_t was introduced, some incompatible use of the 32-bit uint data type was overlooked. Only for converting Item_result_field::max_length (uint), we will use explicit conversion. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Marko Mäkelä
marko.makela@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge 10.6 into 10.11 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Kristian Nielsen
knielsen@knielsen-hq.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Fix undefined behaviour in crc32_avx512() The code was mistakenly using _mm512_castsi128_si512() to convert __m128i to __m512i, which leaves the upper bits undefined. Use instead _mm512_zextsi128_si512() which zero-extends as needed. Signed-off-by: Kristian Nielsen <[email protected]> |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ParadoxV5
paradox.ver5@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| this is a temp change for debugging WinDoze | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Marko Mäkelä
marko.makela@iki.fi |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Fix clang-21 -Wuninitialized-const-pointer pfs_get_thread_file_name_locker_v1(): Note that the last parameter is unused. Let us pass it as NULL to avoid the warning. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Marko Mäkelä
marko.makela@iki.fi |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Fix clang-21 -Wignored-attributes void __attribute__((unused)) never made any sense. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Marko Mäkelä
marko.makela@iki.fi |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge 10.6 into 10.11 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ParadoxV5
paradox.ver5@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| WinDoze is cursed. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Marko Mäkelä
marko.makela@iki.fi |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-36159 mariabackup failed after upgrade Ever since commit 685d958e38b825ad9829be311f26729cccf37c46 (MDEV-14425) mariadb-backup --backup had some trouble to keep up with write workloads of the mariadbd server. Debarun Banerjee found out that mariadb-backup --backup was copying the log in the wrong way and not pausing when it made sense to do so. This change includes his fix as well as some dead code removal from xtrabackup_copy_mmap_logfile(). Some earlier changes to the default behaviour of mariadb-backup --backup will be reverted, by making the configuration parameters OFF by default. These parameters were basically working around this bug: * commit 652f33e0a44661d6093993d49d3e83d770904413 (MDEV-30000) introduced --innodb-log-checkpoint-now and made it ON by default. Making the server execute a log checkpoint can be really I/O intensive. * commit 6acada713a95a605b3aa65bd519fbd4532ad23e5 (MDEV-34062) introduced --innodb-log-file-mmap and made it ON by default on Linux and FreeBSD. There are no documented semantics what should happen to a memory mapping when there are concurrent pwrite(2) operations by other processes. While it appears to work, it is safer to default to clearly documented semantics. xtrabackup_copy_logfile(): Add a parameter early_exit. Always read a log snippet to the start of recv_sys.buf and assign recv_sys.len to the read length. We used to shift recv_sys.buf with memmove(). However, on recv_sys_t::PREMATURE_EOF we cannot know which part of the mini-transaction was correctly read, because that part of the ib_logfile0 may be concurrently modified by the server. So, we will reread everything from the start of the mini-transaction. xtrabackup_backup_func(): Invoke xtrabackup_copy_logfile(true), allowing it to stop on every recv_sys_t::PREMATURE_EOF. This will also avoid repeated "Retry" messages when there is no more redo log to copy. get_current_lsn(): Execute FLUSH ENGINE LOGS to ensure that InnoDB will complete any buffered writes to the ib_logfile0 and ensure that everything up to the current LSN has been written. backup_wait_for_commit_lsn(): Wait for as much as is really needed. This avoids an extra 5-second wait at the end of the backup. xtrabackup_copy_mmap_logfile(): Remove some dead code, and add debug assertions to demonstrate that the parser can only return recv_sys_t::OK or recv_sys_t::GOT_EOF. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Yuchen Pei
ycp@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MDEV-9826 Use proper XXH streaming functions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ParadoxV5
paradox.ver5@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| how about this? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Yuchen Pei
ycp@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-9826 Add one-shot hash functions to my_hasher_st for use in binary hash_sort Rename my_hasher_st::hash to my_hasher_st::m_hash_byte for byte streaming. Add my_hasher_st::m_hash_str for one-shot hashing. Automatically convert one-shot to byte-streaming by restricting the former on a string of length one, as before. But now use one-shot functions whenever possible, i.e. in my_hash_sort_*bin functions that apply the byte-streaming function on a contiguous memory interval without transformation. Only xxh is affected as BASE31 and CRC32C are homomorphic. The diff in xxh results shows a slightly more even distribution. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Alexander Barkov
bar@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-37430 sql_mode=ORACLE: TYPE definitions in PACKAGE BODY Adding support for TYPE declarations for RECORDs and assoc arrays. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Daniel Black
daniel@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-36482: Make liburing work WITH_MSAN=ON A read from liburing has its output buffer as defined by the nature of the system call. Instrumenting the library proved difficult as the completion events don't include the opcode or pointers that where there on submission. It was just easier to do this in the application code. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Marko Mäkelä
marko.makela@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-37447: Race condition between buf_pool_t::shrink() and page_guess() buf_pool_t::shrink(): When relocating a buffer page, invalidate the page identifier of the original page so that buf_pool_t::page_guess() will not accidentally match it. Before commit b6923420f326ac030e4f3ef89a2acddb45eccb30 (MDEV-29445) introduced buf_pool_t::page_guess(), the validity of block descriptor pointers was checked by buf_pool_t::is_uncompressed(const buf_block_t*). Therefore, any block descriptors that used to be part of a larger buffer pool would not be accessed at all. This race condition is very hard to reproduce. To reproduce it, an optimistic btr_pcur_t::restore_position() or similar will have to be invoked on a block that has been relocated by buf_pool_t::shrink() and that had not meanwhile been replaced with another page with a different identifier. Reviewed by: Vladislav Lesin |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Marko Mäkelä
marko.makela@iki.fi |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Fix clang-21 -Wunnecessary-virtual-specifier Member functions of a final class cannot be virtual. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Marko Mäkelä
marko.makela@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-36024 preparation: Shrink mtr_buf_t mtr_t::get_log_size(): Remove. mtr_t::crc32c(): New function: compute CRC-32C and determine the size, including the sequence byte and the CRC-32C. mtr_t::encrypt(): Return the size, similar to crc32c(). mtr_t::log_file_op(): Return the size written. fil_name_write(): Remove. Let us invoke mtr_t::log_file_op() directly. fil_names_clear(): Keep track of the available size without invoking mtr_t::get_log_size(). mtr_buf_t::m_size: Remove. mtr_buf_t::list_t: Use ilist instead of sized_ilist. mtr_buf_t::for_each_block(): Remove. Let us allow iteration via begin() and end(), without any lambda function objects. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Nikita Malyavin
nikitamalyavin@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Revert "MDEV-34033 Exchange partition with virtual columns fails" This reverts commit 0cf2176b |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Rex
rex.johnston@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-32294 fix_fields() problem with inconsistent outer context paths As part of optimization, we can simplify queries by merging a derived table into it's parent instead of materializing it. When this happens the context paths, describing how each SELECT_LEX is positioned in our query needs updating. The best place to do this is in the call to SELECT_LEX::exclude_level(). We follow MySQLs example here. Approved by Sanja Byelkin ([email protected]) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||