summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* MDEV-22554: galera_sst_mariabackup fails with "Failed to start mysqld.2"10.5-MDEV-22554Julius Goryavsky2020-05-151-1/+5
| | | | | | | The problem is caused by the operation of netcat streamer and does not appear on systems where socat is installed. We need to add the "-N" option for netcat to call shutdown() on the socket when receiving EOF from STDIN.
* MDEV-22578 thread_pool_info crashes with clang6, using SSE instructions on ↵Vladislav Vaintroub2020-05-151-1/+2
| | | | | | | | | | | | | | | | | | | | unaligned memory Apparently, in stats_reset_table(), the innocuous memset(&group->counters, 0, sizeof(group->counters)); is converted by clang to SSE2 instructions. The problem is that "group" is not correctly aligned, despite MY_ALIGNED(CPU_LEVEL1_DCACHE_LINESIZE) in the thread_group_t declaration. It is not aligned because it was allocated with my_malloc, since commit fd9f1638, MDEV-5205. Previously all_groups was a statically allocated array. Fix is to remove MY_ALIGNED, and pad the struct instead.
* Merge 10.4 into 10.5Aleksey Midenkov2020-05-1518-97/+453
|\
| * MDEV-22563 Segfault on duplicate free of Item_func_in::arrayAleksey Midenkov2020-05-154-1/+76
| | | | | | | | | | | | | | | | | | | | Same array instance in two Item_func_in instances. First Item_func_in instance is freed on table close. Second one is freed on cleanup_after_query(). get_copy() depends on copy ctor for copying an item and hence does shallow copy for default copy ctor. Use build_clone() for deep copy of Item_func_in.
| * Fixed access to not initalized memoryMonty2020-05-151-0/+2
| | | | | | | | | | Most of the volations came from: sel_arg_range_seq_next(void*, st_key_multi_range*) (opt_range_mrr.cc:342)
| * MDEV-22494 : Galera assertion lock_sys.mutex.is_owned() at ↵Jan Lindström2020-05-1513-111/+372
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lock_trx_handle_wait_low Problem was that trx->lock.was_chosen_as_wsrep_victim variable was not set back to false after it was set true. wsrep_thd_bf_abort Add assertions for correct mutex status and take necessary mutexes before calling thd->awake_no_mutex(). innobase_rollback_trx() Reset trx->lock.was_chosen_as_wsrep_victim wsrep_abort_slave_trx() Removed unused function. wsrep_innobase_kill_one_trx() Added function comment, removed unnecessary parameters and added debug assertions to enforce correct usage. Added more debug output to help out on error analysis. wsrep_abort_transaction() Added debug assertions and removed unused variables. trx0trx.h Removed assert_trx_is_free macro and replaced it with assert_freed() member function. trx_create() Use above assert_free() and initialize wsrep variables. trx_free() Use assert_free() trx_t::commit_in_memory() Reset lock.was_chosen_as_wsrep_victim trx_rollback_for_mysql() Reset trx->lock.was_chosen_as_wsrep_victim Add test case galera_bf_kill
| * MDEV-22555 Windows, packaging: binaries depend on vcruntime140_1.dll, which ↵Vladislav Vaintroub2020-05-141-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | is not in MSI When server is compiled with recent VS2019, then executables, have dependency on vcruntime140_1.dll While we include the VC redistributable merge modules into our MSI package, those merge modules were stale (taken from older VS version, 2017) Since VS2019 brough new DLL dependency by introducing new exception handling https://devblogs.microsoft.com/cppblog/making-cpp-exception-handling-smaller-x64 thus the old MSMs were not enough. The fix is to change logic in win/packaging/CMakeLists.txt to look up for the correct, new MSMs. The bug only affects 10.4,as we compile with static CRT before 10.4, and partly-statically(just vcruntime stub is statically linked, but not UCRT) after 10.4 For the fix to work, it required also some changes on the build machine (vs_installer, modify VS2019 installation, add Individual Component "C++ 2019 Redistributable MSMs")
* | Revert "Added --titlebar option to enable/disable the titlebar"Sergei Golubchik2020-05-131-5/+2
| | | | | | | | | | | | | | | | | | This reverts commit c675886dcdecd29571bd08605a409325ee81004c. The bug was introduced in e3f5789ac0b and fixed in 1af74d523a7 The option was introduced between those two commits and now it's redundant again.
* | Merge 10.4 into 10.5Marko Mäkelä2020-05-1353-759/+841
|\ \ | |/
| * Merge 10.3 into 10.4Marko Mäkelä2020-05-1344-309/+212
| |\
| | * Merge 10.2 into 10.3Marko Mäkelä2020-05-1339-266/+193
| | |\
| | | * Merge 10.1 into 10.2Marko Mäkelä2020-05-1310-95/+65
| | | |\
| | | | * Merge branch '10.1-release' into 10.1Oleksandr Byelkin2020-05-1113-348/+436
| | | | |\
| | | | * | bump the VERSIONDaniel Bartholomew2020-05-111-1/+1
| | | | | |
| | | | * | MDEV-22501 Various issues when using --innodb-data-file-size-debug=-1Marko Mäkelä2020-05-083-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Let us limit the maximum value of the debug parameter innodb_data_file_size to 256 MiB. It is only being used in the test innodb.log_data_file_size, and the size of the system tablespace should never exceed some 70 MiB in ./mtr. Thus, 256 MiB should be a reasonable limit. The fact that negative values that are passed to unsigned parameters wrap around to the maximum value appears to be a regression due to commit 18ef02b04dfae21148c7397d088c7ffdfcd23c4e and has been filed as bug MDEV-22219.
| | | | * | MDEV-22497 [ERROR] InnoDB: Unable to purge a recordMarko Mäkelä2020-05-072-82/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The InnoDB insert buffer was upgraded in MySQL 5.5 into a change buffer that also covers delete-mark and delete (purge) operations. There is an important constraint for delete operations: a B-tree leaf page must not become empty unless the entire tree becomes empty, consisting of an empty root page. Because change buffer merges only occur on a single leaf page at a time, delete operations must not be buffered if it is possible that the last record of the page could be deleted. (In that case, we would refuse to use the change buffer, and if we really delete the last record, we would shrink the index tree.) The function ibuf_get_volume_buffered_hash() is part of our insurance that the page would not become empty. It is supposed to map each buffered INSERT or DELETE_MARK record payload into a hash value. We will only count each such record as a distinct key if there is no hash collision. DELETE operations will always decrement the predicted number fo records in the page. Due to a bug in the function, we would actually compute the hash value not only on the record payload, but also on some following bytes, in case the record contains NULL values. In MySQL Bug #61104, we had some examples of this dating back to 2012. But back then, we failed to reproduce the bug, and in commit d84c95579ba1eca2f9bf5b0be9f14040e4441227 we simply demoted the hard assertion to a message printout and a debug assertion failure. ibuf_get_volume_buffered_hash(): Correctly compute the hash value of the payload bytes only. Note: we will consider ('foo','bar'),(NULL,'foobar'),('foob','ar') to be equal, but this is not a problem, because in case of a hash collision, we could also consider ('boo','far') to be equal, and underestimate the number of records in the page, leading to refusing to buffer a DELETE.
| | | | * | Windows, mtr : Fix "Subroutine HAVE_WIN32_CONSOLE redefined at (eval 25) ↵Vladislav Vaintroub2020-05-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | line 1."
| | | | * | MDEV-22344: Fix typos in commentsAnel Husakovic2020-05-063-4/+4
| | | | | |
| | | | * | postfix after e3f5789ac0b2 - var/log/stdout.log contains escape sequences.Vladislav Vaintroub2020-05-051-1/+1
| | | | | |
| | | | * | MDEV-22273 jUnit patch: xml test result differs from MTR output in case if retryRasmus Johansson2020-05-042-4/+8
| | | | | |
| | | | * | MDEV-22270 JUnit patch: test name contains classnameRasmus Johansson2020-05-041-0/+1
| | | | | |
| | | * | | MDEV-22398: mariabackup.innodb_xa_rollback fails on repeatVlad Lesin2020-05-121-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Flush LSN to system tablespace on innodb shutdown if XA is rolled back by mariabackup.
| | | * | | Cleanup: Remove InnoDB wrappers of thd_charset(), thd_query_safe()Marko Mäkelä2020-05-125-58/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | innobase_get_charset(), innobase_get_stmt_safe(): Remove. It is more efficient and readable to invoke thd_charset() and thd_query_safe() directly, without a non-inlined wrapper function.
| | | * | | MDEV-22529 thd_query_safe() isn’t, causing InnoDB to hangMarko Mäkelä2020-05-121-4/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The function thd_query_safe() is used in the implementation of the following INFORMATION_SCHEMA views: information_schema.innodb_trx information_schema.innodb_locks information_schema.innodb_lock_waits information_schema.rocksdb_trx The implementation of the InnoDB views is in trx_i_s_common_fill_table(). This function invokes trx_i_s_possibly_fetch_data_into_cache(), which will acquire lock_sys->mutex and trx_sys->mutex in order to protect the set of active transactions and explicit locks. While holding those mutexes, it will traverse the collection of InnoDB transactions. For each transaction, thd_query_safe() will be invoked. When called via trx_i_s_common_fill_table(), thd_query_safe() is acquiring THD::LOCK_thd_data while holding the InnoDB locks. This will cause a deadlock with THD::awake() (such as executing KILL QUERY), because THD::awake() could invoke lock_trx_handle_wait(), which attempts to acquire lock_sys->mutex while already holding THD::lock_thd_data. thd_query_safe(): Invoke mysql_mutex_trylock() instead of mysql_mutex_lock(). Return the empty string if the mutex cannot be acquired without waiting.
| | | * | | Merge branch '10.2-release' into 10.2Oleksandr Byelkin2020-05-1115-181/+770
| | | |\ \ \
| | | * | | | bump the VERSIONDaniel Bartholomew2020-05-111-1/+1
| | | | | | |
| | | * | | | MDEV-22523 index->rtr_ssn.mutex is wasting memoryMarko Mäkelä2020-05-1110-40/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As part of the SPATIAL INDEX implementation in InnoDB, dict_index_t was expanded by a rtr_ssn_t field. There are only 3 operations for this field, all protected by rtr_ssn_t::mutex: * btr_cur_search_to_nth_level() stores the least significant 32 bits of the 64-bit value that is stored in the index root page. (This would better be done when the table is opened for the very first time.) * rtr_get_new_ssn_id() increments the value by 1. * rtr_get_current_ssn_id() reads the current value. All these operations can be implemented equally safely by using atomic memory access operations.
| | | * | | | innodb: add space between thread name and "to exit" textPetr Vaněk2020-05-091-1/+1
| | | | | | |
| | | * | | | Add global suppression for connectivity problems.Jan Lindström2020-05-081-0/+1
| | | | | | |
| | | * | | | MDEV-22483 mysql_upgrade does not use current user as default for connecting ↵Sergei Golubchik2020-05-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to server correct the help text
| | | * | | | MDEV-21483 : Galera MTR tests failed: galera.MW-328A galera.MW-328BJan Lindström2020-05-085-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enable tests with additional galera output to find out actual reason for test failures.
| | | * | | | MDEV-21421 : Galera test sporadic failure on ↵Jan Lindström2020-05-082-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | galera.galera_as_slave_gtid_myisam: Result length mismatch Add wait_condition so that drop table has time to replicate to Galera cluster.
| | | * | | | MDEV-19344 innodb.innodb-change-buffer-recovery failsMarko Mäkelä2020-05-071-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The test was incompatible with ./mtr --repeat=2 until commit 2d6719d7ee92843d5b0b9a27c7deaff5cacd4745 fixed that. It turns out that the failing assertion that we disabled in commit 3db94d2403c1f2791bddd43656d7b0d6320b453d is bogus and can fail when the change buffer is emptied during the last batch of crash recovery. The reason for this is the condition around the page_create_empty() call in page_cur_delete_rec(). The condition was removed in MariaDB Server 10.5 as part of MDEV-12353, in commit 7ae21b18a6b73bbc3bf1ff448faf60c29ac1d386 and commit f8a9f906679e1d1ab026c245f7d24c652050d8b3. The bug that the assertion aimed to catch is MDEV-22497, which was fixed in commit 26aab96ecfc9eca647ab9d5b4be3ba5823df4cde.
| | | * | | | MDEV-21515 : Galera test sporadic failure on ↵Jan Lindström2020-05-062-60/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | galera.galera_wsrep_new_cluster: Result content mismatch Test starts two servers and we do not know order they really start, thus wsrep_local_index can be 1 or 2.
| | | * | | | MDEV-19741 : Galera test failure on galera.galera_sst_mariabackup_table_optionsJan Lindström2020-05-061-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Test seems to work.
| | | * | | | MDEV-13266: Race condition in ANALYZE TABLE / statistics collectionVarun Gupta2020-05-051-25/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixing a race condition while collecting the engine independent statistics. Thread1> 1) start running "ANALYZE TABLE t PERISTENT FOR COLUMNS (..) INDEXES ($list)" 2) Walk through $list and save it in TABLE::keys_in_use_for_query 3) Close/re-open tables Thread2> 1) Make some use of table t. This involves taking table t from the table cache, and putting it back (with TABLE::keys_in_use_for_query reset to 0) Thread1> continue collecting EITS stats. Since TABLE::keys_in_use_for_query is set to 0 we will not collect statistics for indexes in $list.
| | | * | | | MDEV-11254 cleanup: Remove buf_page_t::write_sizeMarko Mäkelä2020-05-052-12/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 6495806e59cc27313375fa8d431b7b8e777f73ff removed all reads of buf_page_t::write_size. Let us remove the field altogether.
| | * | | | | Merge branch '10.3-release' into 10.3Oleksandr Byelkin2020-05-1117-214/+850
| | |\ \ \ \ \
| | * | | | | | bump the VERSIONDaniel Bartholomew2020-05-111-1/+1
| | | | | | | |
| | * | | | | | MDEV-17568: LATERAL DERIVED is not clearly visible in EXPLAIN FORMAT=JSONSergei Petrunia2020-05-064-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make LATERAL DERIVED tables visible in EXPLAIN FORMAT=JSON output.
| * | | | | | | MDEV-20261 NULL passed to String::eq, SEGV, server crash, regression in 10.4Alexander Barkov2020-05-122-2/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Type_handler_xxx::Item_const_eq() can handle only non-NULL values. The code in Item_basic_value::eq() did not take this into account. Adding a test to detect three different combinations: - Both values are NULLs, return true. - Only one value is NULL, return false. - Both values are not NULL, call Type_handler::Item_const_eq() to check equality.
| * | | | | | | Merge branch '10.4-release' into 10.4Oleksandr Byelkin2020-05-11103-706/+2072
| |\ \ \ \ \ \ \
| | * | | | | | | MDEV-21965 main.tls_version and main.tls_version1 fail in buildbot on Ubuntu ↵Sergei Golubchik2020-05-112-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Focal Not only Ubuntu Focal builds openssl with OPENSSL_TLS_SECURITY_LEVEL=2, but for some unfathomable reason it patches openssl sources to disable TLS < 1.2 at security level 2, even though openssl manual says it should only happen at level 4: https://www.openssl.org/docs/man1.1.0/man3/SSL_CTX_set_security_level.html We test TLSv1.1 and TLSv1, so we have to override Focal defaults in mtr.
| | * | | | | | | List of unstable tests for 10.4.13 releasemariadb-10.4.13Elena Stepanova2020-05-091-420/+494
| | | | | | | | |
| * | | | | | | | bump the VERSIONDaniel Bartholomew2020-05-111-1/+1
| | | | | | | | |
| * | | | | | | | MDEV-22459 pam v2 should log an error if auth_pam_tool exec failsSergei Golubchik2020-05-081-0/+2
| | | | | | | | |
| * | | | | | | | MDEV-21421 : Galera test sporadic failure on ↵Jan Lindström2020-05-082-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | galera.galera_as_slave_gtid_myisam: Result length mismatch Add wait_condition so that drop table has time to replicate to Galera cluster.
| * | | | | | | | MDEV-22466 : Galera missing .test or .result filesJan Lindström2020-05-074-25/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add missing .test and .result files.
| * | | | | | | | MDEV-22487 WolfSSL - server prints "Please supply a buffer for error string"Vladislav Vaintroub2020-05-071-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Supplied buffer for error string, on WolfSSL's request.
* | | | | | | | | Merge mariadb-10.5.3 into 10.5Marko Mäkelä2020-05-12100-286/+1568
|\ \ \ \ \ \ \ \ \