summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch '10.4' into 10.5mariadb-10.5.16Sergei Golubchik2022-05-1867-406/+2238
|\
| * Merge branch '10.3' into 10.4mariadb-10.4.25Sergei Golubchik2022-05-1841-321/+2061
| |\
| | * Merge branch '10.2' into 10.3mariadb-10.3.35Sergei Golubchik2022-05-183-2/+121
| | |\ | | | | | | | | | | | | commit 84984b79f27 is null-merged
| | | * Revert "MDEV-27524: Incorrect binlogs after Galera SST using rsync and ↵bb-10.2-sergSergei Golubchik2022-05-1729-1312/+492
| | | | | | | | | | | | | | | | | | | | | | | | mariabackup" This reverts commit 17e0f5224c8339ec08707a6ad0397bbf8c19bbd3.
| | | * MDEV-28550: improper handling of replication event group that contains ↵Brandon Nesterenko2022-05-132-0/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Gtid_log_list_event If a slave received a fake GLLE event after a GTID event it would terminate the group. This adds a test for the previous commit which fixed this issue (939672a). Review by Andrei Elkin <andrei.elkin@mariadb.com>
| | | * MDEV-28550 improper handling of replication event group that containsAndrei2022-05-131-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GTID_LIST_EVENT or INCIDENT_EVENT. It's legal to have either of the two inside a group. E.g Gtid_event, Gtid_log_list_event, Query_1, ... Xid_log_event is permitted. However, the slave IO thread treated both as the terminal even when the group represents a DDL query. That causes a premature Gtid state update so the slave IO would think the whole group has been collected while in fact Query_1 etc are yet to process. Fixed with correcting a condition to compute the terminal event of the group. Tested with rpl_mysqlbinlog_slave_consistency (of 10.9) and rpl_gtid_errorlog.test.
| | * | MDEV-28583: Galera: binlogs disappear after rsync ISTJulius Goryavsky2022-05-189-145/+945
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit sends a flag indicating the presence of the "--bypass" option from the donor node to the joiner nodes during rsync IST, because without such a flag it is impossible to distinguish IST from the SST on the joiner nodes (in IST/SST scripts, because the "--bypass" option is still not passed to scripts from server code). Specifically, this fixes an issue with binary logs disappearing after IST (via rsync). There are also changes to diagnostic messages here that will make it easier to diagnose script-related problems in the future when debugging and when checking the logs. This commit also adds more robust signal handlers - to handle exceptions during script execution. These handlers won't mask some crashes and it also unifies exit codes between different scripts. These changes have already been helpful to debugging "bypass" flag handling.
| | * | MDEV-28423: Galera IST is failing on Joiner nodeJulius Goryavsky2022-05-186-27/+799
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit fixes an issue with IST handling in version 10.9 which is a regression after MDEV-26971 and related to trying to get a non-existent "total" tag on the IST branch (this tag is only defined in SST mode).
| | * | MDEV-28552 Assertion `inited==RND' failed in handler::ha_rnd_endAleksey Midenkov2022-05-184-3/+30
| | | | | | | | | | | | | | | | | | | | We cannot permanently change bits in read_partitions in the middle of processing because ha_rnd_init()/ha_rnd_end() depends on that.
| | * | cleanup:have_log_bin.incSergei Golubchik2022-05-182-6/+3
| | | | | | | | | | | | | | | | | | | | prefer if/skip over require (works better with debugging, not affected by query log)
| | * | fix tests for embeddedSergei Golubchik2022-05-184-15/+18
| | | | | | | | | | | | | | | | followup for c9b5a05341d7
| | * | MDEV-28588 SIGSEGV in __memmove_avx_unaligned_erms, strmake_rootAlexander Barkov2022-05-173-1/+42
| | | |
| | * | MDEV-28541 Unused counter Innodb_encryption_key_rotation_list_lengthMarko Mäkelä2022-05-163-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The counter srv_stats.key_rotation_list_length is never updated, and therefore Innodb_encryption_key_rotation_list_length will always be 0. The view INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION comes close to reporting this information.
| | * | MDEV-28537 Unused or useless InnoDB counters num_index_pages_written, ↵Marko Mäkelä2022-05-168-46/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | num_non_index_pages_written The counters were added in commit 5e55d1ced52c52fb2f0508e1346059901a85960f and any code to update them was inadvertently removed in commit 2e814d4702d71a04388386a9f591d14a35980bfe when applying InnoDB changes from MySQL 5.7. Let us remove these counters that never reported anything useful. If such statistics are really needed in a special case, they can be obtained by instrumenting the code by some means, such as eBPF or a source code patch.
| | * | Code cleanup in/around check_interleaving_with_nj()bb-10.3-spetruniaSergei Petrunia2022-05-151-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - In best_extension_by_limited_search(), do not check for "(remaining_tables & real_table_bit)", it is guaranteed to be true. Make it an assert. - In (!idx || check_interleaving_with_nj())", remove the !idx part. This check made sense only in the original version of this function. - "micro optimization" in check_interleaving_with_nj().
| | * | MDEV-28301 Spider: Fix GCC warnings, comparing the result of pointer ↵Nayuta Yanagisawa2022-05-131-21/+9
| | | | | | | | | | | | | | | | | | | | | | | | addition ... and NULL The condition of the if statements are always true.
| | * | MDEV-19161: Let galera_new_cluster use "restart" instead of "start"Hartmut Holzgraefe2022-05-121-1/+1
| | | | | | | | | | | | | | | | Reviewed-by: Jan Lindström <jan.lindstrom@mariadb.com>
| | * | MDEV-19959 : Galera test failure on galera_binlog_stmt_autoincJan Lindström2022-05-093-61/+102
| | | | | | | | | | | | | | | | | | | | Make sure that nodes have correct auto_increment_offset when they start and when control is turned on.
| * | | MDEV-28546 : Possible to write/update with read_only=ON and not a SUPER ↵Jan Lindström2022-05-173-20/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | privilege Function wsrep_read_only_option was already removed in commit d54bc3c0d1 because it could cause race condition on variable opt_readonly so that value OFF can become permanent. Removed function again and added test case. Note that writes to TEMPORARY tables are still allowed when read_only=ON.
| * | | MDEV-28578 Server crashes in Item_field::fix_outer_field after CREATE SELECTSergei Golubchik2022-05-163-0/+18
| | | | | | | | | | | | | | | | | | | | same as MDEV-26412, but in CREATE...SELECT. fix: apply 39feab3cd31b to create rule too.
| * | | galera.MDEV-26575 and galera_sr.galera_sr_shutdown_slave failuresSergei Golubchik2022-05-164-0/+11
| | | |
| * | | MDEV-28053 Sysbench data load crashes Galera secondary node in async master ↵Daniele Sciascia2022-05-164-0/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | slave setup This patch fixes a problem that arises when a Galera node acts as a replica for native replication. When parallel applying is enabled, it is possible to end up with attempts to write binlog events with gtids out of order. This happens because when multiple events are delivered from the native replication stream and applied in concurrently, it is for them to be replicated to the Galera cluster in an order which is different from the original order in which they were committed in the aync replication master. To correct this behavior we now wait_for_prior_commit() before replicating changes though galera. As a consequence, parallel appliers may apply events in parallel until the galera replication step, which is now serialized.
| * | | Update disabled.defJan Lindström2022-05-161-2/+0
| | | |
| * | | MDEV-23595 : galera_3nodes.galera_wsrep_schema MTR failed: mysql_shutdown failedJan Lindström2022-05-162-0/+6
| | | | | | | | | | | | | | | | Add disconnect.
| * | | MDEV-18182 : Galera test failure on galera.galera_many_tables_nopkJan Lindström2022-05-162-15/+14
| | | | | | | | | | | | | | | | Decrease the number of tables and operations.
| * | | fix occasional failures in --embeddedSergei Golubchik2022-05-151-0/+2
| | | | | | | | | | | | | | | | followup for d16c3aca3c3ecd
| * | | enable -Wenum-compare -Wenum-conversionSergei Golubchik2022-05-156-23/+21
| | | | | | | | | | | | | | | | | | | | to make the all headers -std=c++20 clean for those, who need c++20 (some plugins)
* | | | MDEV-28490 Strange result truncation with group_concat_max_len=1GB.Alexey Botchkov2022-05-153-3/+88
| | | | | | | | | | | | | | | | | | | | | | | | Arythmetic can overrun the uint type when possible group_concat_max_len is multiplied to collation.mbmaxlen (can easily be like 4). So use ulonglong there for calculations.
* | | | MDEV-28473 field_ref_zero is not initialized in xtrabackup_prepare_func()Vlad Lesin2022-05-113-26/+47
| | | | | | | | | | | | | | | | | | | | The solution is to initialize field_ref_zero in main_low() before xtrabackup_backup_func() and xtrabackup_prepare_func() calls.
* | | | MDEV-28534: clang-12 compile warningsDaniel Black2022-05-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Errors where: /buildbot/amd64-ubuntu-2004-msan/build/sql/item.h:6478:12: error: 'val_datetime_packed' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override] longlong val_datetime_packed(THD *thd) ^ /buildbot/amd64-ubuntu-2004-msan/build/sql/item.h:3501:12: note: overridden virtual function is here longlong val_datetime_packed(THD *thd) override; ^ /buildbot/amd64-ubuntu-2004-msan/build/sql/item.h:6480:12: error: 'val_time_packed' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override] longlong val_time_packed(THD *thd) ^ /buildbot/amd64-ubuntu-2004-msan/build/sql/item.h:3502:12: note: overridden virtual function is here longlong val_time_packed(THD *thd) override; ^
* | | | fix plugins.multiauth for AIXSergei Golubchik2022-05-101-1/+2
| | | |
* | | | Merge branch '10.4' into 10.5Sergei Golubchik2022-05-09266-2400/+7703
|\ \ \ \ | |/ / /
| * | | fix plugin.multiauth test for FreeBSDSergei Golubchik2022-05-093-17/+2
| | | | | | | | | | | | | | | | remove AIX support, as 10.4 is not tested on AIX, so cannot test a regex
| * | | 10.4 specific fixes for DEFAULT()Sergei Golubchik2022-05-095-1/+54
| | | |
| * | | cleanup: testSergei Golubchik2022-05-092-23/+35
| | | |
| * | | Merge branch '10.3' into 10.4Sergei Golubchik2022-05-08197-1289/+5208
| |\ \ \ | | |/ /
| | * | can't use Item_default_value as a field if it's an expression OR a blobSergei Golubchik2022-05-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Fixed failing main.default on Windows (to trigger an assert the test needed a debug build without safemalloc, as 0xa5 happened to have the important bit set "correctly")
| | * | these tests need ipv6Sergei Golubchik2022-05-082-2/+4
| | | |
| | * | Merge branch '10.2' into 10.3Sergei Golubchik2022-05-0731-112/+648
| | |\ \ | | | |/
| | | * MDEV-28310 Missing binlog data for INSERT .. ON DUPLICATE KEY UPDATEAndrei2022-05-0610-54/+322
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MDEV-21810 MBR: Unexpected "Unsafe statement" warning for unsafe IODKU MDEV-17614 fixes to replication unsafety for INSERT ON DUP KEY UPDATE on two or more unique key table left a flaw. The fixes checked the safety condition per each inserted record with the idea to catch a user-created value to an autoincrement column and when that succeeds the autoincrement column would become the source of unsafety too. It was not expected that after a duplicate error the next record's write_set may become different and the unsafe decision for that specific record will be computed to screw the Query's binlogging state and when @@binlog_format is MIXED nothing gets bin-logged. This case has been already fixed in 10.5.2 by 91ab42a823 that relocated/optimized THD::decide_logging_format_low() out of the record insert loop. The safety decision is computed once and at the right time. Pertinent parts of the commit are cherry-picked. Also a spurious warning about unsafety is removed when MIXED @@binlog_format; original MDEV-17614 test result corrected. The original test of MDEV-17614 is extended and made more readable.
| | | * MDEV-28402 ASAN heap-use-after-free in create_tmp_table, Assertion `l_offset ↵Oleksandr Byelkin2022-05-063-3/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | >= 0 && table->s->rec_buff_length - l_offset > 0' Make default() function follow Item_field and use get_tmp_table_item() for change_to_use_tmp_fields().
| | | * Update test results after fix for MDEV-19398Sergei Petrunia2022-05-061-0/+42
| | | |
| | | * MDEV-28478: INSERT into SPATIAL INDEX in TEMPORARY table writes logMarko Mäkelä2022-05-066-19/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | row_ins_sec_index_entry_low(): If a separate mini-transaction is needed to adjust the minimum bounding rectangle (MBR) in the parent page, we must disable redo logging if the table is a temporary table. For temporary tables, no log is supposed to be written, because the temporary tablespace will be reinitialized on server restart. rtr_update_mbr_field(): Plug a memory leak.
| | | * MDEV-28437: Assertion `!eliminated' failed: Part #2Sergei Petrunia2022-05-051-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In SELECT_LEX::update_used_tables(), do not run the loop setting tl->table->maybe_null when tl is an eliminated table (Rationale: First, with current table elimination, tl already has maybe_null=1. Second, one should not care what flags eliminated tables had)
| | | * MDEV-28437: Assertion `!eliminated' failed in Item_subselect::execSergei Petrunia2022-05-055-4/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (This is the assert that was added in fix for MDEV-26047) Table elimination may remove an ON expression from an outer join. However SELECT_LEX::update_used_tables() will still call item->walk(&Item::eval_not_null_tables) for eliminated expressions. If the subquery is constant and cheap Item_cond_and will attempt to evaluate it, which will trigger an assert. The fix is not to call update_used_tables() or eval_not_null_tables() for ON expressions that were eliminated.
| | | * MDEV-19398: Assertion `item1->type() == Item::FIELD_ITEM ...Sergei Petrunia2022-05-045-10/+139
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Window Functions code tries to minimize the number of times it needs to sort the select's resultset by finding "compatible" OVER (PARTITION BY ... ORDER BY ...) clauses. This employs compare_order_elements(). That function assumed that the order expressions are Item_field-derived objects (that refer to a temp.table). But this is not always the case: one can construct queries order expressions are arbitrary item expressions. Add handling for such expressions: sort them according to the window specification they appeared in. This means we cannot detect that two compatible PARTITION BY clauses that use expressions can share the sorting step. But at least we won't crash.
| | | * Use proper pid namespaceanel2022-05-042-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: ============== By testing `pgrep` with `--ns` option, introduced with MDEV-21331, commit fb7c1b9415c9a8b0dc2e86ae44f0e7a2634e5d7e, I noted that: a) `--ns` cannot use more than single PID. b) `--ns` is returning the processes of the namespace to which supplied PID belongs to. So by that sense command `pgrep -x --ns $$ mysqld` will always return an error and skip checking of the existing PID of the server. Solution: ============== Suggested solution is to add `--nslist pid`, since `--ns` needs to know in which namespace type it should look for. See `pgrep --help` for different namespace types. Note also that this works *only* if script is run as a `root` (we have that case here). Current PR is a part of: 1. MDEV-21331: sync preinst and postrm script 2. MDEV-15718: check for exact mysqld process This commit: a) fixes fb7c1b9415c9a8b0dc2e86ae44f0e7a2634e5d7e b) Closes PR #2068 (obsolete) c) Closes PR #2069 (obsolete) Thanks Faustin Lammler <faustin@mariadb.org> for testing and verifying Reviewed by <>
| | * | MDEV-27816: Set sql_mode before DROP IF EXISTS already (postfix)Daniel Black2022-05-071-8/+8
| | | | | | | | | | | | | | | | Test compat/oracle.sp-package-mysqldump needed re-record.
| | * | MDEV-4875 Can't restore a mysqldump if --add-drop-database meets general_logDaniel Black2022-05-063-121/+305
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | or slow query log when the log_output=TABLE. When this happens, we temporary disable by changing log_output until we've created the general_log and slow_log tables again. Move </database> in xml mode until after the transaction_registry. General_log and slow_log tables where moved to be first to be dumped so that the disabling of the general/slow queries is minimal.
| | * | MDEV-27816 Set sql_mode before DROP IF EXISTS alreadyHartmut Holzgraefe2022-05-068-49/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the correct SQL mode for a stored routine or package was only set before doing the CREATE part, this worked out for PROCEDUREs and FUNCTIONs, but with ORACLE mode specific PACKAGEs the DROP also only works in ORACLE mode. Moving the setting of the sql_mode a few lines up to happen right before the DROP statement is writen fixes this.