- 04 Aug, 2022 1 commit
-
-
Marko Mäkelä authored
The test mariabackup.mdev-14447 is inserting relatively much data while concurrently backing up the data. The test often fails on CI systems, possibly due to an inherent race condition between the producer (server) and consumer (backup) that would be solved if the backup was being produced by the server (MDEV-14992). The written data volume was increased somewhat by commit 4179f93d (MDEV-18976). Let us trim the log volume by not writing PAGE_CHECKSUM records or row-level undo log records, and make the test cover what was intended to cover by creating the table in the system tablespace.
-
- 03 Aug, 2022 3 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
- 02 Aug, 2022 11 commits
-
-
Sergei Golubchik authored
MDEV-29078 For old binary logs explicit_defaults_for_timestamp presumed to be OFF, server value ignored don't assume anymore that OPTIONS_WRITTEN_TO_BIN_LOG is fixed once and forever. Instead, deduct master's OPTIONS_WRITTEN_TO_BIN_LOG from the master's version in binlog.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
save it in binlog, so that CREATE TABLE could be replayed correctly on the slave
-
Sergei Golubchik authored
make @@explicit_defaults_for_timestamp session variable
-
Sergei Golubchik authored
print "Defaults to on" not only for GET_BOOL, but also for GET_BIT
-
Sergei Golubchik authored
list ${OPENSSL_ROOT_DIR}/lib64 explicitly, because cmake below version 3.23.0 won't search there.
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Ian Gilfillan authored
Bootstrap size increase and error fix by Daniel Black.
-
Daniel Black authored
The "used" attribute seems to do this ref: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#Common-Function-Attributes
-
- 01 Aug, 2022 12 commits
-
-
Aleksey Midenkov authored
MDEV-20704 changed the rules of how (HA_BINARY_PACK_KEY | HA_VAR_LENGTH_KEY) flags are added. Older FRMs before that fix had these flags for DOUBLE index. After that fix when ALTER sees such old FRM it thinks it cannot do instant alter because of failed compare_keys_but_name(): it compares flags against tmp table created by ALTER. MDEV-20704 fix was actually not about DOUBLE type but about FIELDFLAG_BLOB which affected DOUBLE. So there is no direct knowledge that any other types were not affected. The proposed fix under CHECK TABLE checks if FRM has (HA_BINARY_PACK_KEY | HA_VAR_LENGTH_KEY) flags and was created prior MDEV-20704 and if so issues "needs upgrade". When mysqlcheck and mysql_upgrade see such status they issue ALTER TABLE FORCE and upgrade the table to the version of server.
-
Aleksey Midenkov authored
Handler for existing partition was already index-inited at the beginning of copy_partitions(). In the case of REORGANIZE PARTITION we fill new partition by calling its ha_write_row() (handler is storage engine of new partition). From that we go through the below conditions: if (this->inited == RND) table->clone_handler_for_update(); handler *h= table->update_handler ? table->update_handler : table->file; First, the above misses the meaning of this->inited check. Now it is new partition and this handler is not inited. So, we assign table->file which is ha_partition and is really not known to be inited or not. It is supposed (this == table->file), otherwise we are out of the logic for using update_handler. This patch adds DBUG_ASSERT for that. Second, we call check_duplicate_long_entries() for table->file and that calls ha_partition::index_init() which calls index_init() for each partition's handler. But the existing parititions' handlers was already inited in copy_partitions() and we fail on assertion. The fix implies that we don't need check_duplicate_long_entries() per-partition as we've already done check_duplicate_long_entries() for ha_partition. For REORGANIZE PARTITION that means existing row was already checked at previous INSERT/UPDATE commands, so no need to check it again (see NOTE in handler::ha_write_row()). The fix also optimizes ha_update_row() so check_duplicate_long_entries_update() is not called per-partition considering it was already called for ha_partition. Besides, per-partition duplicate check is not really usable.
-
Julius Goryavsky authored
This commit restores defaults and functionality regarding binlogs to the way it was prior to MDEV-27524. The mariabackup utility no longer saves binlogs files as part of a backup without the --galera-info option. However, since we use --galera-info during SST, the behavior of mariabackup changes and, in combination with GTIDs support enabled, mariabackup transfers one (most recent) binlog file obtained after FLUSH BINARY LOGS. In other cases, binlogs are not transferred during SST in mariabackup mode. As for SST in the rsync mode, it works the same way as before MDEV-27524 - by default it transfers one last binlog file. The --sst-max-binlogs option for mariabackup and the sst_max_binlogs parameter in the [sst] / server sections are no longer supported for SST via mariabackup.
-
Sergei Golubchik authored
and then only into the default name, so that the joiner could find it
-
Sergei Golubchik authored
-
Marko Mäkelä authored
fil_name_process(): Upon processing a new file name for FILE_RENAME, rename the tablespace in deferred_spaces. recv_sys_t::parse(): Rearrange some code to slightly improve the locality of reference. Invoke fil_name_process() with FILE_MODIFY, FILE_DELETE or the new case FILE_RENAME, for the new file name of the file. This should be a regression due to commit 86dc7b4d (MDEV-24626) and it might also affect the crash recovery of DDL operations.
-
Marko Mäkelä authored
btr_page_reorganize_low(): Restore mtr->set_log_mode() before returning. innobase_instant_try(): Do not invoke rec_get_offsets() if btr_cur_pessimistic_update() failed. The cursor position may be invalid.
-
Marko Mäkelä authored
Let simplify the test. The update_time is stored in the table metadata (dict_table_t); it has nothing to do with buffer pool page eviction or replacement.
-
Sergei Petrunia authored
(addressed review input) The issue was introduced by @@optimizer_max_sel_arg_weight code. key_or() calls SEL_ARG::update_weight_locally(). That function takes O(tree->elements) time. Without that call, key_or(big_tree, one_element_tree) would take O(log(big_tree)) when one_element_tree doesn't overlap with elements of big_tree. This means, update_weight_locally() can cause a big slowdown. The fix: 1. key_or() actually doesn't need to call update_weight_locally(). It calls SEL_ARG::tree_delete() and SEL_ARG::insert(). These functions update SEL_ARG::weight. It also manipulates the SEL_ARG objects directly, but these modifications do not change the weight of the tree. I've just removed the update_weight_locally() call. 2. and_all_keys() also calls update_weight_locally(). It manipulates the SEL_ARG graph directly. Removed that call and added the code to update the SEL_ARG graph weight. Tests main.range and main.range_not_embedded already contain the queries that have test coverage for the affected code.
-
Norio Akagi authored
Starting since this commit 36cdd5c3 there is an ASAN stack-buffer-overflow error because we append a NULL terminator beyond the length of memory allocated. Reviewed by: Monty and Nayuta Yanagisawa
-
Sergei Golubchik authored
look for an installed plugin with the same name _and the same type_ (in case there are many plugins with the same name and different type, which is, technically, possible for built-in plugins).
-
Marko Mäkelä authored
The function rec_get_offsets_func() used to hit ut_error due to an invalid rec_get_status() value of a ROW_FORMAT!=REDUNDANT record. This fix is twofold: We will not only avoid a crash on corruption in this case, but we will also make more effort to validate each record every time we are iterating over index page records. rec_get_offsets_func(): Do not crash on a corrupted record. page_rec_get_nth(): Return nullptr on error. page_dir_slot_get_rec_validate(): Like page_dir_slot_get_rec(), but validate the pointer and return nullptr on error. page_cur_search_with_match(), page_cur_search_with_match_bytes(), page_dir_split_slot(), page_cur_move_to_next(): Indicate failure in a return value. page_cur_search(): Replaced with page_cur_search_with_match(). rec_get_next_ptr_const(), rec_get_next_ptr(): Replaced with page_rec_get_next_low(). TODO: rtr_page_split_initialize_nodes(), rtr_update_mbr_field(), and possibly other SPATIAL INDEX functions fail to properly handle errors. Reviewed by: Thirunarayanan Balathandayuthapani Tested by: Matthias Leich Performance tested by: Axel Schwenke
-
- 29 Jul, 2022 7 commits
-
-
Sergei Golubchik authored
if mysql.roles_mapping table doesn't exist (it's optional, after all), we still update in-memory structures to keep them consistent
-
Sergei Golubchik authored
it's not "non deterministic", it's completely defined by @@rand_seed1 and @@rand_seed2. And as a session func it needs to be re-fixed at the beginning of every statement.
-
Rucha Deodhar authored
Fixup to MDEV-28762. Fixes warnings about unused variable "stack_used_up" during building with RelWithDebInfo
-
Oleksandr Byelkin authored
-
Georg Richter authored
Test fixes: Since fix for CONC-603 (wrong error handling in TLS read/write) in case of a read/write error client doesn't return always error 2013 (server has gone away), so in addition we need to check for error 2026 (TLS/SSL error) and 5014 (write error).
-
Rucha Deodhar authored
Fixup to MDEV-28762. Fixes warnings about unused variable "stack_used_up" during building with RelWithDebInfo
-
Oleksandr Byelkin authored
If we have null_value set then decimal/string value/result shoud be 0 pointer.
-
- 28 Jul, 2022 4 commits
-
-
Daniel Lenski authored
MDEV-28782: modify mariadb-tzinfo-to-sql to set 'wsrep*' variables appropriately in cases where Galera is not compiled in In 3b662c6e, it was discovered that the values of the 'wsrep_is_on' and 'wsrep_cannot_replicate_tz' variables need to be overridden for embedded builds to pass However, there are other build configurations where these variables also have NULL values. The mariadb-tzinfo-to-sql script (implemented in sql/tztime.cc) can be slightly modified to set its 'wsrep_is_on' and 'wsrep_cannot_replicate_tz' variables more predictably in all such cases, thus allowing the mysql_tzinfo_to_sql_symlink.test test to pass without any special-casing for particular build types. See comments: - https://github.com/MariaDB/server/commit/3b662c6ebd26b54ce534d9e7451cdc31e6c0046c#r78994411 - https://jira.mariadb.org/browse/MDEV-28782?focusedCommentId=230038&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-230038 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.
-
Thirunarayanan Balathandayuthapani authored
loss of debug sync signal
-
Daniel Black authored
At some point the incrementing of the transaction counter got dropped. Thanks Agustin for the bug report.
-
Marko Mäkelä authored
-
- 27 Jul, 2022 2 commits
-
-
Marko Mäkelä authored
-
Oleksandr Byelkin authored
-