- 24 Mar, 2022 1 commit
-
-
Daniel Black authored
-
- 23 Mar, 2022 3 commits
-
-
Tuukka Pasanen authored
Lintian uses objdump-command to determine is share object linked against C-libary. Compression provider shared objects does not have any symbols from C-library they only depend compression library and MariaDB libaries. This is false-positive as Lintian error itself is correct as shared object does not share any symbols from for example Glibc. Added overrides suppress Lintian errors: * E: mariadb-plugin-provider-bzip2: library-not-linked-against-libc usr/lib/mysql/plugin/provider_bzip2.so * E: mariadb-plugin-provider-lz4: library-not-linked-against-libc usr/lib/mysql/plugin/provider_lz4.so * E: mariadb-plugin-provider-lzma: library-not-linked-against-libc usr/lib/mysql/plugin/provider_lzma.so * E: mariadb-plugin-provider-lzo: library-not-linked-against-libc usr/lib/mysql/plugin/provider_lzo.so * E: mariadb-plugin-provider-snappy: library-not-linked-against-libc usr/lib/mysql/plugin/provider_snappy.so
-
Tuukka Pasanen authored
There is missing conflict and breaks for MariaDB 10.6 which can cause upgrading from 10.6 not be clean and end up with errors on Debian.
-
Tuukka Pasanen authored
Fix Debian lintian errors: E: mariadb-plugin-provider-bzip2: extended-description-is-empty E: mariadb-plugin-provider-lz4: extended-description-is-empty E: mariadb-plugin-provider-lzma: extended-description-is-empty E: mariadb-plugin-provider-lzo: extended-description-is-empty E: mariadb-plugin-provider-snappy: extended-description-is-empty by adding Debian Policy Manual section 3.4 (The description of a package) extended descriptions to mariadb-plugin-provide-* packages
-
- 22 Mar, 2022 2 commits
-
-
Andrei authored
MDEV-21117 had to relax own events acceptance condition for a case when a former semisync master server recovers after crash as the semisync slave. That however admitted a possibility for endless event "orbiting" in the non-strict slave gtid mode of semisync circular setup. The same server-id event termination is restored now for the non-strict gtid mode to follow regular rules (that is it's ignored unless @@global.replicate_same_server_id allows it in). To address MDEV-21117 recovery agenda, in the strict gtid mode and the transaction's gtid ordered strictly greater than the current slave gtid state, the same server-id transaction is accepted. The gtid strict mode is safe to accept transactions even if the slave state were not set correct by the user, e.g at the former master. An added test shows a typical out-of-order error at execution so no data corruption is guaranteed in such a case.
-
Julius Goryavsky authored
-
- 18 Mar, 2022 2 commits
-
-
Marko Mäkelä authored
The fix in commit 6e390a62 (MDEV-26772) was a step to the right direction, but implemented incorrectly. When an InnoDB persistent statistics table cannot be locked immediately, we must not let row_mysql_handle_errors() to roll back the transaction. lock_table_for_trx(): Add the parameter no_wait (default false) for an immediate return of DB_LOCK_WAIT in case of a conflict. ha_innobase::delete_table(), ha_innobase::rename_table(): Pass no_wait=true to lock_table_for_trx() when needed, instead of temporarily setting THDVAR(thd, lock_wait_timeout) to 0.
-
Daniel Black authored
-
- 17 Mar, 2022 3 commits
-
-
Sergei Golubchik authored
normally, one has to include my_global.h before including psi/psi*.h files. ColumnStore cannot do it, so it needs a workaround.
-
Marko Mäkelä authored
In commit ab38b751 an added "goto err" would seemingly cause a read of an uninitialized variable old_info if errpos>=5. However, because we would have errpos=0 at that point, there was no real error.
-
Daniel Black authored
-
- 16 Mar, 2022 5 commits
-
-
Marko Mäkelä authored
dict_get_and_save_data_dir_path(): Protect the operation with dict_table_t::lock_mutex and avoid unnecessary memory allocation.
-
Thirunarayanan Balathandayuthapani authored
- InnoDB purge waits at resume_FTS() while shutting down. This happens after altering the FTS innodb partition table. stop_FTS() has been called for each partition, but it calls resume_FTS() only once and it leads to hang during shutdown. This issue was introduced by commit 1bd681c8(MDEV-25506).
-
Daniel Black authored
extra2_read_len resolved by keeping the implementation in sql/table.cc by exposed it for use by ha_partition.cc Remove identical implementation in unireg.h (ref: bfed2c7d)
-
Daniel Black authored
-
Alexander Barkov authored
-
- 15 Mar, 2022 12 commits
-
-
Daniel Black authored
Uses 500M+ of memory by repeating an 8 byte sequence 62.5M times. Reduce the number of repeats on string reduced by 100 times. Tested by applying against the reverted MDEV-24909 code. 1000 times reduction was too much, but 100 still managed to trigger the bug.
-
Daniel Black authored
Per Marko's comment in JIRA, sql_kill is passing the thread id as long long. We change the format of the error messages to match, and cast the thread id to long long in sql_kill_user.
-
Daniel Black authored
The 10.5 test error main.grant_kill showed up a incorrect thread id on a big endian architecture. The cause of this is the sql_kill_user function assumed the error was ER_OUT_OF_RESOURCES, when the the actual error was ER_KILL_DENIED_ERROR. ER_KILL_DENIED_ERROR as an error message requires a thread id to be passed as unsigned long, however a user/host was passed. ER_OUT_OF_RESOURCES doesn't even take a user/host, despite the optimistic comment. We remove this being passed as an argument to the function so that when MDEV-21978 is implemented one less compiler format warning is generated (which would have caught this error sooner). Thanks Otto for reporting and Marko for analysis.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
buf_flush_freed_pages(): Assert that neither buf_pool.mutex nor buf_pool.flush_list_mutex are held. Simplify the loops. Return the tablespace and the number of pages written or punched. buf_flush_LRU_list_batch(), buf_do_flush_list_batch(): Release buf_pool.mutex before invoking buf_flush_space(). buf_flush_list_space(): Acquire the mutexes only after invoking buf_flush_freed_pages(). Reviewed by: Thirunarayanan Balathandayuthapani
-
Marko Mäkelä authored
Include my_global.h before mysql.h so that the latter will not redefine my_socket and my_ulonglong. Fixup for commit 77c184df
-
Marko Mäkelä authored
fil_space_t::try_to_close(): Tolerate a tablespace that has no data files attached. The function fil_ibd_create() initially creates and attaches a tablespace with no files, and invokes fil_space_t::add() later. fil_node_open_file(): After releasing and reacquiring fil_system.mutex, check if the file was already opened by another thread. This avoids an assertion failure !node->is_open() in fil_node_open_file_low(). These failures were reproduced with the test innodb.table_definition_cache_debug and the fix of MDEV-27985.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Daniel Black authored
commit '6de482a6' 10.3 no longer errors in truncate_notembedded.test but per comments, a non-crash is all that we are after.
-
Hugo Wen authored
Commit 6c39eaeb made the crash recovery dependent on server_id. The crash recovery could fail when restoring a new instance from original crashed data directory USING A NEW SERVER ID. The issue doesn't exist in previous major versions before 10.6. Root cause is when generating the input XID to be searched in the hash, server id is populated with the current server id. So if the server id changed when recovering, the XID couldn't be found in the hash due to server id doesn't match. This fix is to use original server id when creating the input XID object in function `xarecover_do_commit_or_rollback`. 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.
-
- 14 Mar, 2022 12 commits
-
-
Thirunarayanan Balathandayuthapani authored
- InnoDB fails to skip newly created column while checking for change column when table is in redundant row format. This issue is caused the MDEV-18035 (ccb1acbd)
-
Alexander Barkov authored
MDEV-23210 Assertion `(length % 4) == 0' failed in my_lengthsp_utf32 on ALTER TABLE, SELECT and INSERT Problem: Parse-time conversion from binary to tricky character sets like utf32 produced ill-formed strings. So, later a chash happened in debug builds, or a wrong SHOW CREATE TABLE was returned in release builds. Fix: 1. Backporting a few methods from 10.3: - THD::check_string_for_wellformedness() - THD::convert_string() overloads - THD::make_text_string_connection() 2. Adding a new method THD::reinterpret_string_from_binary(), which makes sure to either returns a well-formed string (optionally prepending with zero bytes), or returns an error.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Let us remove the redundant typedef. This problem was revealed by commit 77c184df
-
Marko Mäkelä authored
For some reason, the tests of the MemorySanitizer build on 10.5 failed with both clang 13 and clang 14 with SIGSEGV. On 10.6 where it worked better, some more places to work around were identified.
-
Sergei Golubchik authored
mysqltest allows leading spaces before `--`, so mtr should too
-
Sergei Golubchik authored
whenever possible, partitioning should use the full partition plugin name, not the one byte legacy code. Normally, ha_partition can get the engine plugin from table_share->default_part_plugin. But in some cases, e.g. in DROP TABLE, the table isn't opened, table_share is NULL, and ha_partition has to parse the frm, much like dd_frm_type() does. temporary_tables.cc, sql_table.cc: When dropping a table, it must be deleted in the engine first, then frm file. Because frm can be the only true source of metadata that the engine might need for DROP. table.cc: when opening a partitioned table, if the engine for partitions is not found, do not fallback to MyISAM.
-
Marko Mäkelä authored
The MemorySanitizer implementation in clang includes some built-in instrumentation (interceptors) for GNU libc. In GNU libc 2.33, the interface to the stat() family of functions was changed. Until the MemorySanitizer interceptors are adjusted, any MSAN code builds will act as if that the stat() family of functions failed to initialize the struct stat. A fix was applied in https://reviews.llvm.org/rG4e1a6c07052b466a2a1cd0c3ff150e4e89a6d87a but it fails to cover the 64-bit variants of the calls. For now, let us work around the MemorySanitizer bug by defining and using the macro MSAN_STAT_WORKAROUND().
-
Marko Mäkelä authored
In commit 83212632 the trx_rseg_latch was instrumented for performance_schema, but some acqusitions of rd_lock() were not adjusted. Thus, the build would fail on platforms where a futex-based rw-lock is not available (SUX_LOCK_GENERIC) unless the code was built with cmake -DPLUGIN_PERFSCHEMA=NO.
-
Nayuta Yanagisawa authored
Some Spider table options introduces an unnecessary complication to Spider settings. For example, the default value of the plugin variable spider_auto_increment_mode is -1 (use table value) and the default table option value is 0 (normal mode). Thus, the virtual default value of the variable is 0. This kind of indirection is confusing. In order to delete such confusing table options in a future release, we first change the default values of some Spider plugin variables from -1 (use table value) to the corresponding default table values. The default table values are defined in spider_set_connect_info_default(). At the same time, we also deprecate the option value -1 (use table value).
-
Nayuta Yanagisawa authored
Deprecate the plugin variable spider_use_handler and the corresponding table parameters "uhd" and "use_handler". Passing a Handler statement to data nodes, without converting it to SQL sometimes, might improve the performance, while this introduces some complication to the implementation. In the first place, only a few people use Handler statements and the performance gain seems not to be very significant. Further, setting spider_use_handler > 0 disables the GROUP BY handler. So, we decided to deprecate the variable.
-