- 24 Feb, 2021 3 commits
-
-
Jan Lindström authored
Problem was that we used heap allocated key using too small array. Fixed by using dynamic memory allocation using actual needed size.
-
Jan Lindström authored
Null poiter reference in case where bf_thd has no trx .e.g. when we have MDL-conflict.
-
Daniel Black authored
filename_hash is a function from libiberty.a from the system but also an expored name in the perf schema static library. We'll use a different name.
-
- 23 Feb, 2021 9 commits
-
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
Introduced by 85828b8f This is running 2 git processes in parallel, which, if unlucky can cause either of them to fail with "File already exists" error.
-
Marko Mäkelä authored
-
Sergei Golubchik authored
-
Robert Bindar authored
Given PASSWORD EXPIRE and PASSWORD EXPIRE [NEVER|INTERVAL x DAY] are two different mechanisms, SHOW CREATE USER should display all the information required to restore the state of an account which includes both a manual expired state and an automatic policy. The solution proposed here keeps a CREATE USER ... PASSWORD EXPIRE statement and adds an aditional ALTER USER .. PASSWORD EXPIRE [NEVER|INTERVAL x DAY] when necessary This way a tool can restore almost the complete state of an account as it was before a dump. The only information left still is the value of the password_last_changed column from mysql.global_priv
-
Marko Mäkelä authored
-
Thirunarayanan Balathandayuthapani authored
- The commit 5fd3c747(MDEV-24709) resets the recv_no_ibuf_operations in recv_recovery_from_checkpoint_start(), but InnoDB fails to reset the variable recv_no_log_write() during that time and that leads to the assert failure.
-
Sergei Golubchik authored
-
- 22 Feb, 2021 20 commits
-
-
Sergei Golubchik authored
-
Monty authored
This was caused by two different bugs: 1) Information_schema tables where not locked by lock_tables, but get_lock_data() was not filtering these out. This caused a crash when mysql_unlock_some_tables() tried to unlock tables early, including not locked information schema tables. Fixed by not locking SYSTEM_TMP_TABLES 2) In some cases the optimizer will notice that we do not need to read the information_schema tables at all. In this case join_tab->read_record is not set, which caused a crash in get_schema_tables_result() Fixed by ignoring const tables in get_schema_tables_result()
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
1. wait for the binlog thread to reach the certain state, don't use a debug_sync that's incorrectly placed to detect the state 2. no need to do a (non-deterministic) `show binlog events` to verify what is guaranteed by the directly preceding line
-
Sergei Golubchik authored
if it's the whole content of a test anyway.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
add a new "debugger" to mtr, that runs the executable under valgrind in gdb. valgrind pid is auto-detected, but the delay (sleep) and vgdb path are hard-coded for now
-
Sergei Golubchik authored
"debugger" is anything that wraps execution of a target binary (mysqld or mysqltest). Currently the list includes: gdb, ddd, dbx, lldb, valgrind, strace, ktrace, rr, devenv, windbg, vsjitdebugger. for every debugger xxx, mtr will recognize four options: --xxx, --boot-xxx, --manual-xxx, --client-xxx. They all support an optional "=string" argument. String being a semicolon-separated list of commands (e.g. for gdb) or one (not semicolon-separated) command line of options (e.g. for valgrind). Or both (e.g. --gdb='-quiet -nh;info files' In embedded both --xxx and --client-xxx work. Functionality changed/removed: * --rr-args is gone * --rr-dir is gone * --manual-debug is gone * --debugger={devenv|vc|windbg|vc_express|vsjitdebugger} is gone * --strace-option is gone * --stracer={strace|ktrace} is gone * --valgrind only enables it for the server, not for everything * --valgrind-all is gone * --valgrind-mysqltest is gone * --valgrind-mysqld is gone * --valgrind-options is gone * --valgrind-option is gone * --valgrind-path is gone * --callgrind is gone * one cannot combine --valgrind --gdb anymore * valgrind report doesn't add a fake test line to the output * vc and vcexpress on windows are no longer supported
-
Sergei Golubchik authored
-
Sergei Golubchik authored
don't allocate Column_statistics_collected objects that won't be used. minor style fixes (StringBuffer<>, etc)
-
Sergei Golubchik authored
only collect persistent stats for columns explicitly listed by the user in the ANALYZE TABLE PERSISTENT FOR COLUMNS (...) clause. The engine can extend table->read_set as much as it wants, it should not affect the collected statistics. Test case from the 3b94309a applies - it used to crash, because ha_partition extended table->read_set after the loop that initialized some objects based on bits in the read_set but before the loop that used these objects based on bits in the read_set.
-
Sergei Golubchik authored
This reverts the commit 3b94309a but keeps the test Because the fix is a hack that isn't supposed to do anything, and relies on a side-effect of rnd_init inside ha_partition. A different fix is coming up.
-
Sergei Golubchik authored
-
Igor Babaev authored
on used subqueries If a query was based on a table value constructor that contained subqueries then EXPLAIN for such query did not contain any lines explaining the execution plans of the subqueries. This happened because - no optimize() method was called for any subquery used by the table value constructor when EXPLAIN command for the query was processed; - EXPLAIN node created for the table value constructor itself did not assume that some child nodes could be attached to it. Approved by Oleksandr Byelkin <sanja@mariadb.com>
-
Daniel Bartholomew authored
-
Daniel Bartholomew authored
-
Daniel Bartholomew authored
-
Thirunarayanan Balathandayuthapani authored
- This is caused by commit ad6171b9 (MDEV-22456). InnoDB reloads the evicted table again from dictionary. In that case, AHI entries and current index object mismatches happens. When index object mismatches then InnoDB should drop the page hash AHI entries for the block. In btr_search_drop_page_hash_index(), InnoDB should take exclusive lock on the AHI latch if index is already freed to avoid the freed memory access during buf_pool_resize()
-
Jan Lindström authored
-
- 21 Feb, 2021 1 commit
-
-
Monty authored
This can cause crashes when accessing already released memory The issue was the Item_default created a internal field, pointing to share->default_values, to be used with the DEFAULT() function. This does not work for BLOB fields as these are freed at end of query. Fixed by storing BLOB field data inside and area allocated by Item_default_value, like we do for nondeterministic default values.
-
- 18 Feb, 2021 4 commits
-
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
this should simplify run-time cluster management
-
Sergei Golubchik authored
-
- 17 Feb, 2021 3 commits
-
-
Sergei Golubchik authored
reset thd->lex->query_tables_own_last, because open_table() uses it and will try to dereference whatever garbage it might have
-
Jan Lindström authored
MDEV-24873 : galera.galera_as_slave_ctas MTR failed: Assertion `(&(&LOCK_thd_data)->m_mutex)->count > 0 && pthread_equal(pthread_self(), (&(&LOCK_thd_data)->m_mutex)->thread)' failed in sql_class.cc on THD::awake(killed_state) Problem was that thd::awake assumes now that you hold THD::LOCK_thd_data so we need to keep it when we call wsrep_thd_awake from wsrep_abort_transaction.
-
Jan Lindström authored
Problem was that we tried to lock THD::LOCK_thd_data after we have acquired lock_sys mutex. This is against mutex ordering rules.
-