- 11 Feb, 2021 2 commits
-
-
Marko Mäkelä authored
-
Daniel Black authored
and S3_HOST_NAME. Required environment variables are now S3_ACCESS_KEY and S3_SECRET_KEY. Or a running minio instance on localhost:9000.
-
- 10 Feb, 2021 2 commits
-
-
Marko Mäkelä authored
A too strict debug assertion was introduced in commit 03ca6495 (MDEV-24142). It turns out that row_ins_sec_index_entry_low() may acquire a stronger latch on the index. The old rw_lock_own(..., RW_LOCK_S) assertion would hold also for the SX (Update) latch mode. btr_cur_search_to_nth_level_func(): Relax the assertion to require that the mini-transaction hold any of S or U latch.
-
Thirunarayanan Balathandayuthapani authored
This failure is caused by commit 43ca6059 (MDEV-24720). InnoDB fails to remove the ahi entries during rollback of bulk insert operation. InnoDB should remove the AHI entries of root page before reinitialising it. Reviewed-by: Marko Mäkelä
-
- 09 Feb, 2021 1 commit
-
-
Daniel Black authored
Was added in 10.5.2 (MDEV-21975)
-
- 08 Feb, 2021 4 commits
-
-
Monty authored
A few of the failures was because of missing sync_slave_to_master in the test suite. However, the biggest reason for most faulures was that in case of ALTER PARTITION the master writes the query to the binary log before it has updated the .frm and .par files. This causes a problem for an S3 slave as it will start execute the ALTER PARTITION but get old .frm and .par files from S3 which causes "open table" to fail, either with an error or in some case with a crash. Fixed
-
Monty authored
This allow one to remove some casts like: maria_data_root= (char *)"."; It also removes warnings from icc.
-
Monty authored
One should not change the program arguments! This change also reduces warnings from the icc compiler. Almost all changes are just syntax changes (adding const to 'get_one_option function' declarations). Other changes: - Added a few cast of 'argument' from 'const char*' to 'char *'. This was mainly in calls to 'external' functions we don't have control of. - Ensure that all reset of 'password command line argument' are similar. (In almost all cases it was just adding a comment and a cast) - In mysqlbinlog.cc and mysqld.cc there was a few cases that changed the command line argument. These places where changed to instead allocate the option in a MEM_ROOT to avoid changing the argument. Some of this code was changed to ensure that different programs did parsing the same way. Added a test case for the changes in mysqlbinlog.cc - Changed a few variables that took their value from command line options from 'char *' to 'const char *'.
-
Monty authored
-
- 07 Feb, 2021 5 commits
-
-
Marko Mäkelä authored
Let us avoid the memory overhead and the dead duplicated code for each use of never-instrumented condition variables in InnoDB.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The condition variables that were introduced in commit 7cffb5f6 (MDEV-23399) are never instrumented with PERFORMANCE_SCHEMA. Let us avoid the storage overhead and dead code.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
- 05 Feb, 2021 7 commits
-
-
Marko Mäkelä authored
When we replaced trx_t::mutex with srw_mutex in commit 38fd7b7d we lost the SAFE_MUTEX instrumentation. Let us introduce a replacement and restore the assertions.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
trx_lock_t::cond: Use pthread_cond_t directly, because no instrumentation will ever be used. This saves sizeof(void*) and removes some duplicated inline code. trx_lock_t::was_chosen_as_wsrep_victim: Fold into trx_lock_t::was_chosen_as_deadlock_victim. trx_lock_t::cancel, trx_lock_t::rec_cached, trx_lock_t::table_cached: Use only one byte of storage, reducing memory alignment waste. On AMD64 GNU/Linux, MDEV-24671 caused a sizeof(trx_lock_t) increase of 48 bytes (plus the PLUGIN_PERFSCHEMA overhead of trx_lock_t::cond). These changes should save 32 bytes.
-
Marko Mäkelä authored
lock_table(): Remove the constant parameter flags=0. lock_table_resurrect(): Merge lock_table_ix_resurrect() and lock_table_x_resurrect(). lock_rec_lock(): Only acquire LockMutexGuard if lock_table_has() does not hold.
-
Marko Mäkelä authored
DeadlockChecker::search(): Move a bogus assertion into a condition. If the current transaction is waiting for a table lock (on something else than an auto-increment lock), it is well possible that other transactions are holding not only a conflicting lock, but also an auto-increment lock. This mistake was noticed during the testing of MDEV-24731, but it was accidentally introduced in commit 5f463857. lock_wait_end(): Remove an unused variable, and add an assertion.
-
Marko Mäkelä authored
Now that an INSERT into an empty table is replicated more efficiently during online ALTER, an old test case started to fail. Let us disable the MDEV-515 logic for the critical INSERT statement.
-
Thirunarayanan Balathandayuthapani authored
MDEV-24781 Assertion `mode == 16 || mode == 12 || fix_block->page.status != buf_page_t::FREED' failed in buf_page_get_low This is caused by commit 3cef4f8f (MDEV-515). dict_table_t::clear() frees all the blob during rollback of bulk insert.But online log tries to read the freed blob while applying the log. It can be fixed if we truncate the online log during rollback of bulk insert operation.
-
- 04 Feb, 2021 1 commit
-
-
Marko Mäkelä authored
The DeadlockChecker expects to be able to freeze the waits-for graph. Hence, it is best executed somewhere where we are not holding any additional mutexes. lock_wait(): Defer the deadlock check to this function, instead of executing it in lock_rec_enqueue_waiting(), lock_table_enqueue_waiting(). DeadlockChecker::trx_rollback(): Merge with the only caller, check_and_resolve(). LockMutexGuard: RAII accessor for lock_sys.mutex. lock_sys.deadlocks: Replaces lock_deadlock_found. trx_t: Clean up some comments.
-
- 03 Feb, 2021 1 commit
-
-
Monty authored
The test case was setting aria_sort_buffer_size to MAX_ULONGLONG-1 which was not handled gracefully by my_malloc() or safemalloc(). Fixed by ensuring that the malloc functions returns 0 if the size is too big. I also added some protection to Aria repair: - Limit sort_buffer_size to 16G (after that a bigger sort buffer will not help that much anyway) - Limit sort_buffer_size also according to sort file size. This will help by not allocating less memory if someone sets the buffer size too high.
-
- 02 Feb, 2021 3 commits
-
-
Thirunarayanan Balathandayuthapani authored
InnoDB fails to remove the ahi entries during rollback of bulk insert operation. InnoDB throws the error when validates the ahi hash tables. InnoDB should remove the ahi entries while freeing the segment only during bulk index rollback operation. Reviewed-by: Marko Mäkelä
-
Marko Mäkelä authored
-
Thirunarayanan Balathandayuthapani authored
This is caused by commit c92f7e28(MDEV-8139). InnoDB fails to set the page status as FREED in buffer pool while freeing the extent.
-
- 01 Feb, 2021 3 commits
-
-
Vladislav Vaintroub authored
With the fix, new connection without THDs will now show NULL in thread_pool_queues.CONNECTION_ID.
-
Sergei Golubchik authored
filter out tpool
-
Marko Mäkelä authored
ha_innobase::commit_inplace_alter_table(): Fix a regression that was introduced in 6d1f1b61 (MDEV-24564).
-
- 30 Jan, 2021 3 commits
-
-
David CARLIER authored
-
FX Coudert authored
-
zhaorenhai authored
MDEV-24647 Columnstore storage engine cannot be compiled with mariadb server on aarch64 platform (#1742)
-
- 29 Jan, 2021 5 commits
-
-
Sergei Petrunia authored
Also update the SEL_ARG graph weight in: - sel_add() - SEL_ARG::clone() Make key_{and,or}_with_limit() to also verify weight for the arguments (There is no single point to verify SEL_ARG graphs constructed from conditions that are not AND-OR formulas, so we hope that those are connected with AND/OR and do it here).
-
Marko Mäkelä authored
The purpose of the test was to ensure that the SX (update) mode of index tree and buffer page latches are being used. The test has become unstable, possibly due to changes related to buf_pool.mutex and buf_pool.page_hash, or to the use of MDL in the purge of transaction history. In 10.6, the test depends on instrumentation that was refactored or removed in MDEV-24142. The use of different latching modes can better be indirectly observed through high-concurrency benchmarks. For MDEV-14637, a performance test was conducted where the finer-grained latching and BTR_CUR_FINE_HISTORY_LENGTH were removed. It caused a 20% performance regression for UPDATE and somewhat smaller for INSERT. Any new problem with latching granularity should be easily caught by performance testing, or by stress tests with Random Query Generator.
-
Vladislav Vaintroub authored
There are no IO threads anymore.
-
Sergei Petrunia authored
(Variant #5, full patch, for 10.5) Do not produce SEL_ARG graphs that would yield huge numbers of ranges. Introduce a concept of SEL_ARG graph's "weight". If we are about to produce a graph whose "weight" exceeds the limit, remove the parts of SEL_ARG graph that represent the biggest key parts. Do so until the graph's is within the limit. Includes - debug code to verify SEL_ARG graph weight - A user-visible @@optimizer_max_sel_arg_weight to control the optimization - Logging the optimization into the optimizer trace.
-
sjaakola authored
The implementation for MDEV-17048 apperas to be direct copy from mysql version. The group commit works differently in mariadb and the assert in wsrep_unregister_from_group_commit() is too strict. The reason is that in: Wsrep_high_priority_service::log_dummy_write_set(), the transaction will undergo full rollback: { cs.before_rollback(); cs.after_rollback(); } After that, the client's transaction state is set to be: wsrep::transaction::s_aborted. The execution then continues execution by: ... wsrep_register_for_group_commit(m_thd); ... wsrep_unregister_from_group_commit(m_thd); The bogus assert in wsrep_unregister_from_group_commit() allows only transactions states of :s_ordered_commit or s_aborting. As the fix, I brought back the same assert as is present in MariaDB 10.4 version.
-
- 28 Jan, 2021 3 commits
-
-
Anel Husakovic authored
a. The change makes `mariadb-upgrade` detect if `MYSQL_JSON` data type is needed. b. Install the data type if it's not installed. c. Uninstalls the data type once finished. d. Create `.opt` and `.inc` files `have_type_mysql_json` and adapt the tests Reviewed by: vicentiu@mariadb.org
-
Marko Mäkelä authored
In commit 3cef4f8f (MDEV-515) we inadvertently broke CREATE TABLE...REPLACE SELECT statements by wrongly disabling row-level undo logging. select_create::prepare(): Only invoke extra(HA_EXTRA_BEGIN_ALTER_COPY) if no special treatment of duplicates is needed.
-
Marko Mäkelä authored
Ever since commit 007f68c3, ALTER TABLE no longer invokes handler::open() after handler::commit_inplace_alter_table(). ha_innobase::reload_statistics(): Reload or recompute statistics after ALTER TABLE. innodb_notify_tabledef_changed(): A new function to invoke ha_innobase::reload_statistics(). handlerton::notify_tabledef_changed(): Add the parameter handler* so that ha_innobase::reload_statistics() can be invoked. ha_partition::notify_tabledef_changed(), partition_notify_tabledef_changed(): Pass through the call to any partitions or subpartitions. This is based on code that was supplied by Monty.
-