- 16 May, 2020 3 commits
-
-
Otto Kekäläinen authored
We can't expect that users want to always convert their mysqld_safe settings on an upgrade. In its current form it will always run, and that seems unnecessary on every single installation. Also the script is buggy, leaks mysqld_safe output into the written file and since it gets syntax errors the whole mariadb.service will fail to work.
-
Otto Kekäläinen authored
These do now show up automatically due to init and systemd customizations, so the handiest fix is to add them manually. This has been the praxis in downstream MariaDB packaging for a couple years now, and works fine. - Ensure service is loaded and started after installation, (fixes service start issues in Debian/Ubuntu upgrades where otherwise service mysql status stayed stopped) - Ensure service stopped before removal/purge (fixes unstopped processes detected by piuparts) - Ensure systemd daemon is reloaded after removal/purge when service has been removed
-
Otto Kekäläinen authored
Partially reverts commit a4cc6fb9. While all current versions of Linux have systemd, support for traditional init.d is still needed e.g. on Linux subsystem on Windows, kFreeBSD and special variants of Debian/Ubuntu that for other reasons don't have systemd. Thus, re-introduce the init file that was remove, but this time with then name 'mariadb'. Supporting traditional sysv init in paraller with systemd is easy, since Debian has facilities for it. Also simplify and update salsa-ci.yml install/upgrade testing works for all previous MariaDB and MySQL releases without any excess quirks. Note that in fresh installs the salsa-ci.yml needs to run command 'service mariadb status' to control the service, while on upgrades it is enough to run 'service mysql status', since the init.d/mysql file is left behind from previous install, along with some other config files such as /etc/default/mysql and /etc/mysql/* stuff.
-
- 15 May, 2020 5 commits
-
-
Vladislav Vaintroub authored
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.
-
Aleksey Midenkov authored
-
Aleksey Midenkov authored
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.
-
Monty authored
Most of the volations came from: sel_arg_range_seq_next(void*, st_key_multi_range*) (opt_range_mrr.cc:342)
-
Jan Lindström authored
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
-
- 14 May, 2020 1 commit
-
-
Vladislav Vaintroub authored
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")
-
- 13 May, 2020 5 commits
-
-
Sergei Golubchik authored
This reverts commit c675886d. The bug was introduced in e3f5789a and fixed in 1af74d52 The option was introduced between those two commits and now it's redundant again.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
- 12 May, 2020 6 commits
-
-
Alexander Barkov authored
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.
-
Vlad Lesin authored
Flush LSN to system tablespace on innodb shutdown if XA is rolled back by mariabackup.
-
Marko Mäkelä authored
-
Daniel Bartholomew authored
-
Marko Mäkelä authored
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.
-
Marko Mäkelä authored
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.
-
- 11 May, 2020 11 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Daniel Bartholomew authored
-
Daniel Bartholomew authored
-
Daniel Bartholomew authored
-
Daniel Bartholomew authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
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.
-
Marko Mäkelä authored
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.
-
- 09 May, 2020 9 commits
-
-
Elena Stepanova authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Elena Stepanova authored
-
Elena Stepanova authored
-
Sergei Golubchik authored
setup alternative name for rhel8/centos8 use correct C/C version when providing mariadb-connector-c and other changes for installation over distro packages to work: dnf install mariadb-server dnf install --allowerasing MariaDB-{server,common,client,shared}*.rpm
-
Petr Vaněk authored
-
Alexander Barkov authored
The code did not take into account that: - U+005C (backslash) can occupy more than mbminlen characters (e.g. in sjis) - Some character sets do not have a code for U+005C (e.g. swe7) Adding a new function my_wc_to_printable into MY_CHARSET_HANDLER to cover all special cases easier.
-