- 25 Nov, 2021 9 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
This fixes up 4489a89c and the test binlog.binlog_truncate_multi_engine that indirectly invokes the DBUG_SUICIDE.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Occasionally, the test would fail with a result difference for ddl_log_file_alter_table (0 instead of 1) due to some nondeterminism in the test. Let us remove that nondeterminism.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
- 24 Nov, 2021 12 commits
-
-
Marko Mäkelä authored
In commit 1193a793 we set innodb_use_native_aio=OFF when using io_uring on a kernel where write requests could potentially be lost. The last reproducible issue was fixed in Linux 5.16-rc1 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v5.16-rc1&id=d3e3c102d107bb84251455a298cf475f24bab995 and the fix was backported to 5.15.3. Hence, using a 5.16 or later kernel should be fine. The Debian kernel 5.15.0-1-amd64 (5.15.3-1) was tested. On Debian, utsname::release or uname -r does not reflect the exact minor version while utsname::version and uname -v does. On Fedora however the utsname::version is rather different: $ uname -r 5.14.20-200.fc34.x86_64 $ uname -v #1 SMP Thu Nov 18 22:03:20 UTC 2021 As such we use the version, but fall back to the release if there isn't the beginnings of a kernel version in the version. Thanks to Daniel Black for reporting the Linux kernel bug and Jens Axboe for actually fixing it. Co-Authored-By: Daniel Black <daniel@mariadb.org> Closes: #1953
-
Robert Bindar authored
-
Eric Herman authored
The DYNAMIC_ARRAY copies values in and copies values out. Without a comparitor function, get_index_dynamic() does not make sense. This function is not used. If we have a need for a function like it in the future, I propose we write a new one with unit tests showing how it is used and demostrating that it behaves as expected.
-
Sergei Krivonos authored
-
Sergei Krivonos authored
-
Marko Mäkelä authored
Sys_lc_messages, Sys_lc_time_names: Use offsetof(MY_LOCALE, ...) because the type has standard layout.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The macro my_offsetof() performs pointer arithmetics that may be undefined behavior. As reported in MDEV-26272, it may cause clang -fsanitize=undefined to generate invalid memory references. struct PFS_events_statements: Convert to std::is_standard_layout by encapsulating the standard-layout struct PFS_events instead of deriving from it, so that the standard macro offsetof() can be used. PFS_events_statements::copy(): Renamed from copy_events_statements(). A cast to void* is now needed in memcpy() to avoid GCC -Wclass-memaccess "writing to an object ... leaves 64 bytes unchanged".
-
Alexander Barkov authored
The weight scanner routine scanner_next() did not properly handle the cases when a contraction produces no weights (is ignorable). Adding a helper routine my_uca_scanner_set_weight() and using it in all cases: - A single ASCII character - A contraction starting with an ASCII character - A multi-byte character - A contraction starting with a multi-byte character Also adding two other helper routines: - my_uca_scanner_next_expansion_weight() - my_uca_scanner_set_weight_outside_maxchar() to avoid using scanner->wbeg directly inside scanner_next(). This reduces the probability of similar future bugs.
-
Alexander Barkov authored
This patch prepares the code for upcoming changes: MDEV-27009 Add UCA-14.0.0 collations MDEV-27042 UCA: Resetting contractions to ignorable does not work well 1. Adding "const" qualifiers to return type and parameters in functions: - my_uca_contraction2_weight() - my_wmemcmp() - my_uca_contraction_weight() - my_uca_scanner_contraction_find() - my_uca_previous_context_find() - my_uca_context_weight_find() 2. Adding a helper function my_uca_true_contraction_eq() 3. Changing the way how scanner->wbeg is set during context weight handling. It was previously set inside functions: - my_uca_scanner_contraction_find() - my_uca_previous_context_find() Now it's set inside scanner_next(), which makes the code more symmetric for context-free and context-dependent sequences. This makes then upcoming fix for MDEV-27042 simpler.
-
Marko Mäkelä authored
mdl_hash_function(): Use plain offsetof; MDL_key has standard layout.
-
Daniel Black authored
There's no need for Debian to set config items to their default. Left commented user, datadir and tmpdir as these may want to be changed. lc-messages and skip-external-locks are so infrequently set even listing them looks overly verbose. socket left uncommented in [client-server] as various client implementations may have different defaults compiled in.
-
- 23 Nov, 2021 3 commits
-
-
Julius Goryavsky authored
-
Julius Goryavsky authored
Currently, SST scripts assume that the filename specified in the --log-bin-index argument either does not contain an extension or uses the standard ".index" extension. Similar assumptions are used for the log_bin_index parameter read from the configuration file. This commit adds support for arbitrary extensions for the index file paths.
-
Julius Goryavsky authored
If the server is started with the --innodb-force-recovery argument on the command line, then during SST this argument can be passed to mariabackup only at the --prepare stage, and accordingly it must be removed from the --mysqld-args list (and it is not should be passed to mariabackup otherwise). This commit fixes a flaw in the SST scripts and add a test that checks the ability to run the joiner node in a configuration that uses --innodb-force-recovery=1.
-
- 20 Nov, 2021 1 commit
-
-
Marko Mäkelä authored
buf_LRU_scan_and_free_block(): It turns out that even with -fno-expensive-optimizations, GCC 4.8.5 may fail to split an instruction. For the non-embedded server, -O1 would fail and -Og would seem to work, while the embedded server build seems to require -O0. buf_block_init(): Correct the MemorySanitizer instrumentation. buf_page_get_low(): Do not read dirty data from read-fixed blocks. These data races were identified by MemorySanitizer. If a read-fixed block is being accessed, we must acquire and release a page latch, so that the read-fix (and the exclusive page latch) will be released and it will be safe to read the page frame contents if needed, even before acquiring the final page latch. We do that in buf_read_ahead_linear() and for the allow_ibuf_merge check. mtr_t::page_lock(): Assert that the block is not read-fixed.
-
- 19 Nov, 2021 9 commits
-
-
Marko Mäkelä authored
buf_page_get_low(): When we are creating an uncompressed page frame for a ROW_FORMAT=COMPRESSED page, we must release the buf_pool.page_hash latch and buf_pool.mutex while waiting for other threads to release their fixes on the block. This was caught by an occasional hang of the test innodb_zip.bug56680.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The following options were introduced in commit 2e814d47 (mariadb-10.2.2) and have little use: innodb_disable_resize_buffer_pool_debug had no effect even in MariaDB 10.2.2 or MySQL 5.7.9. It was introduced in mysql/mysql-server@5c4094cf4971eebab89da4ee4ae92c71f69cd524 to work around a problem that was fixed in mysql/mysql-server@2957ae4f990bf3aed25822b0ce15d3ccad0b54b6 (but the parameter was not removed). innodb_page_cleaner_disabled_debug and innodb_master_thread_disabled_debug are only used by the test innodb.redo_log_during_checkpoint that will be removed as part of this commit. innodb_dict_stats_disabled_debug is only used by that test, and it is redundant because one could simply use innodb_stats_persistent=OFF or the STATS_PERSISTENT=0 attribute of the table in the test to achieve the same effect.
-
Marko Mäkelä authored
-
Aleksey Midenkov authored
32-bit variable must be expanded to 64-bit before shift left.
-
Aleksey Midenkov authored
32-bit variable must be expanded to 64-bit before shift left.
-
Vladislav Vaintroub authored
This reverts commit several commits pushed by mistake.
-
Marko Mäkelä authored
-
- 18 Nov, 2021 6 commits
-
-
Sergei Krivonos authored
-
Sergei Krivonos authored
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
Workaround Windows' bug in services "ANSI" when process ANSI codepage is UTF8. They turn out to work unlike any other API . Expected behavior : strings be converted from GetACP() to Unicode, and "wide" function would be then called. Actual current behavior : it seems to handle strings as-if they would be encoded in system-default ACP, rather than process-specific GetACP() Fix: redefine the OpenService,CreateService and ChangeServiceConfig and do ANSI-Wide conversion outselves. Tell compiler to deprecate some ANSI service functions. xxx
-
Vladislav Vaintroub authored
- allow utf8 datadir, and password - mysql_install_db.exe does not send clear password to mysqld --bootstrap subprocess anymore, but hash, as server makes incorrect assumption about character encoding in case it is UTF8. - use CreateServiceW to create service, due to some Windows bug, the ANSI version does not currently work well with strings outside of ASCII range.
-
Vladislav Vaintroub authored
-