Commit graph

189,168 commits

Author SHA1 Message Date
Daniele Sciascia
fdf87973cb MDEV-23081 Stray XA transactions at startup, with wsrep_on=OFF
Change xarecover_handlerton so that transaction with WSREP prefixed
xids are rolled back when Galera is disabled.

Reviewd-by: Jan Lindström <jan.lindstrom@mariadb.com>
2020-10-21 16:29:07 +03:00
Aleksey Midenkov
7eda556196 MDEV-23672 Assertion `v.v_indexes.empty()' failed in dict_table_t::instant_column
dict_v_idx_t node was shared between two dict_v_col_t objects because
of wrong object copy. Replace memory plain copy with copy constructor.

Tha patch also removes n_v_indexes property and improves "page full"
judgements for trx_undo_log_v_idx().
2020-10-20 10:57:57 +03:00
Daniel Black
a6f956488c MDEV-22761: innodb row_search_idx_cond_check handle CHECK_ABORTED_BY_USER
Part #3:
Two more cases within row_search_mvcc need to handle the CHECK_ABORTED_BY_USER
and process this as a DB_INTERRUPTED.
2020-10-14 15:14:46 +03:00
Sergei Petrunia
c03885cd9c MDEV-22761: innodb row_search_idx_cond_check handle CHECK_ABORTED_BY_USER
Part #2:
- row_search_mvcc() should return DB_INTERRUPTED when it got
- Move the sync point from innodb internals to
  handler_rowid_filter_check() where other storage engines can use
  it too
- Add a similar syncpoint for the ICP check.
- Add a bigger test and test coverage for Rowid Filter with MyISAM
- Add test coverage for killed-during-ICP-check scenario
2020-10-14 15:14:46 +03:00
Daniel Black
171da6b38b MDEV-22761: innodb row_search_idx_cond_check handle CHECK_ABORTED_BY_USER
handler_rowid_filter_check can return CHECK_ABORTED_BY_USER.

All the functions that call row_search_idx_cond_check handle the
CHECK_ABORTED_BY_USER return value. So return it rather than generating an
error.

This incorrect handling was introduced in MDEV-21794 (8d85715d50).

Reviewer: Marko Mäkelä
2020-10-14 15:14:46 +03:00
Nikita Malyavin
5896a49820 MDEV-19130 Assertion failed in handler::update_auto_increment
add store/restore_auto_increment in period portion insert/update functions
2020-10-14 21:57:58 +10:00
Sergei Golubchik
c2ac0ce1f0 Merge tag 'mariadb-10.4.15' into 10.4 2020-10-07 18:51:11 +02:00
Daniel Bartholomew
232715f506
bump the VERSION 2020-10-07 11:27:00 -04:00
Oleksandr Byelkin
9e100f4b96 Better German Error message. 2020-10-07 11:14:20 +02:00
Jan Lindström
fee807f6d8 MDEV-22148 : Assertion `state_ == s_exec || state_ == s_quitting' failed in optimized builds | SIGABRT in wsrep::client_state::disable_streaming
Actual bug seems to be already fixed, just adding a test case.
2020-10-07 08:10:36 +03:00
Sergei Golubchik
a6e451dc72 Merge branch '10.3' into 10.4 2020-10-05 18:18:05 +02:00
Sergei Golubchik
a707c7f0dd Merge branch '10.2' into 10.3 2020-10-05 18:05:38 +02:00
Sergei Golubchik
a464917766 Merge branch '10.1' into 10.2 2020-10-05 17:53:10 +02:00
Sergei Golubchik
f4c85ef5ed bump VERSION 2020-10-05 17:52:00 +02:00
Sergei Golubchik
418850b2df MDEV-23884 donor uses invalid SST methods 2020-10-05 17:42:00 +02:00
Oleksandr Byelkin
acb0c9e8fd MDEV-23518 Syntax error in ond SP results in misleading message on SHOW CREATE PROCEDURE
Add info to the error message how to get details about error which happened.
2020-10-03 14:38:01 +02:00
Marko Mäkelä
bd64c2e8cc Cleanup: Remove unnecessary trx_i_s_cache_t::last_read_mutex
We can simply use C++11 std::atomic for avoiding undefined behaviour
related to concurrent stores to a shared variable. On most if not all
ISAs, std::memory_order_relaxed loads and stores will not really
differ from non-atomic loads or stores.
2020-10-01 13:51:31 +03:00
Marko Mäkelä
9ae608d24d Merge 10.3 into 10.4 2020-10-01 13:41:36 +03:00
Marko Mäkelä
d99f787244 Merge 10.2 into 10.3 2020-10-01 13:33:51 +03:00
Marko Mäkelä
323500bfa9 Merge 10.2 into 10.3 2020-09-30 16:25:06 +03:00
Thirunarayanan Balathandayuthapani
d6b33ea237 MDEV-23856 fts_optimize_wq accessed after shutdown of FTS Optimize thread
In fts_optimize_remove_table(), InnoDB tries to access the
fts_optimize_wq after shutting down the fts optimize thread.
This issue caused by the commit a41d429765.
Fix should check for fts optimize thread shutdown state
before checking fts_optimize_wq.
2020-09-30 18:02:29 +05:30
Marko Mäkelä
cd5f4d2a59 Cleanup: Remove unused fts_cache_t::optimize_lock
This has been unused from the very beginning
(mysql/mysql-server@d5e512ae7e).
2020-09-30 13:26:46 +03:00
Marko Mäkelä
aa2f263e59 Cleanup: Remove constant parameters async=false, index_name=NULL 2020-09-29 11:07:34 +03:00
Marko Mäkelä
74bd3683ca MDEV-23839 innodb_fast_shutdown=0 hang on change buffer merge
ibuf_merge_or_delete_for_page(): Do not attempt to invoke
ibuf_delete_recs() on a page of the change buffer itself.
The caller could already be holding ibuf->index->lock,
and an attempt to acquire it in S mode would hang the release server
or cause an assertion failure in rw_lock_s_lock_func() in a debug
server.

This problem was reproducible on 1 out of 2 runs of the following:
./mtr --no-reorder \
innodb.innodb-page_compression_default \
innodb.innodb-page_compression_snappy \
innodb.innodb-page_compression_zip \
innodb.innodb_wl6326_big innodb.xa_recovery
2020-09-29 11:04:12 +03:00
Marko Mäkelä
a441b06489 Merge 10.1 into 10.2 2020-09-29 10:04:37 +03:00
Marko Mäkelä
83a520dbbb Cleanup: Remove unused rw_lock_t::writer_is_wait_ex
This was missed in commit 2c252ba96b
(MySQL 5.5.42, MariaDB 5.5.42).
2020-09-29 09:39:08 +03:00
Igor Babaev
79e32e47a1 MDEV-23778 Derived table handler looses data on conversion from HEAP to Aria
This bug happened when the HEAP temporary table used for the derived table
created for a derived handler of a remote engine of the federated type
became full and was converted to an Area table. For this conversion
the tmp_table_param parameter must be always taken from the select_unit
object created for the result of the derived table.
2020-09-28 15:16:28 -07:00
Sujatha
ce845b7a2f Merge branch '10.3' into 10.4 2020-09-28 17:55:39 +05:30
Sujatha
6cbbd6bd96 Merge branch '10.2' into 10.3 2020-09-28 17:27:42 +05:30
Jan Lindström
842616532a MDEV-23659 : Update Galera disabled.def file
Fix typo.
2020-09-28 14:40:00 +03:00
Thirunarayanan Balathandayuthapani
fdb3c64e42 MDEV-22277 LeakSanitizer: detected memory leaks in mem_heap_create_block_func after attempt to create foreign key
- During online DDL, prepare phase error handler fails to remove
the memory allocated for newly created foreign keys.
2020-09-28 17:04:02 +05:30
Daniele Sciascia
7edfb72eff Fix MTR test wsrep.variables
Require galera_have_debug_sync.inc and re-record to include new
variables exposed by latest galera library.
2020-09-28 12:17:05 +03:00
Sujatha
3a5e719e00 Merge branch '10.1' into 10.2 2020-09-28 14:03:46 +05:30
Jan Lindström
c078f55f47 MDEV-23659 : Update Galera disabled.def file
This will update galera_3nodes/disabled.def.
2020-09-28 11:05:09 +03:00
Vladislav Vaintroub
a6987d9fb9 MDEV-23823 Crash in SELECT NEXT VALUE on locked view
Make open_table() fail if sequence should be opened, but it turns out to
be locked view.
2020-09-28 09:49:46 +02:00
Sujatha
15cd919535 MDEV-22330: mysqlbinlog stops with an error Don't know how to handle column type: 255 meta: 4 (0004)
Analysis:
========
"mysqlbinlog -v" option will reconstruct row events and display them as
commented SQL statements. If this option is given twice, the output includes
comments to indicate column data types and some metadata.
`log_event_print_value` is the function reponsible for printing values and
their types. This function doesn't handle GEOMETRY type. Hence the above error
gets printed.

Fix:
===
Add support for GEOMETRY datatype.
2020-09-28 12:52:09 +05:30
Monty
e0f5e7bc9e Reverted wrong patch for mysql_upgrade
The original code was correct. mysql_upgrade calls the mysql client to
talk with MariaDB. It doesn't call itself!
2020-09-26 08:57:56 +10:00
Thirunarayanan Balathandayuthapani
e8b05ce503 MDEV-23675 Assertion `pos < table->n_def' fails in dict_table_get_nth_col
- During insertion of clustered inde, InnoDB does the check for
foreign key constraints. It rebuild the tuple based on foreign
column names when there is no foreign index. While rebuilding,
InnoDB should ignore the dropped columns.
2020-09-25 21:42:24 +05:30
Monty
6a1376252d Reverted wrong patch for mysql_upgrade
The original code was correct. mysql_upgrade calls the mysql client to
talk with MariaDB. It doesn't call itself!
2020-09-25 15:58:08 +03:00
Monty
71a7b79bcb Added asssert to init_of_queries() to make it more safe
Part of review of 10.4 code by Sergei.

Other things:

- Changed return type if is_active() from my_bool to bool as this is
  only used by C++ code.
2020-09-25 13:38:48 +03:00
Monty
bb2c958132 MDEV-23296 Assertion `block->type == PAGECACHE_EMPTY_PAGE.. with aria_max_sort_file_size=0
When maria_drop_all_indexes() reset the key files, it didn't flush
the page cache. This confused the cache as there where old key blocks
marked with LSN in it and repair tried to overwrite these with PLAIN
blocks which is not allowed.
2020-09-25 13:07:04 +03:00
Monty
92b5a8bb65 MDEV-17665 Assertion `!share and other errors on concurrent Aria operations
Fixes also:
MDEV-22674 Server crash in compare_bin ... restore_table_state_after_repair

The bug was that the 'can_enable_index' variable in MyISAM and Aria was
not properly set and reset for bulk insert.
Because of this, insert...select was trying to recreate indexes while
another thread was using it, causing crashes in page cache.
2020-09-25 13:07:04 +03:00
Monty
8819b5eea5 MDEV-23318 Assertion `cache_empty(keycache)' failed in prepare_resize_simple_key_cache
The reason was that during MyISAM parallel repair two threads used the
same changed TABLE object to compute virtual columns

Fixed by adding a mutex in compute_vcols()
2020-09-25 13:07:04 +03:00
Monty
0b73ef0688 MDEV-21470 ASAN heap-use-after-free in my_hash_sort_bin
The problem was that the server was calling virtual functions on a record
that was not initialized with new data.
This happened when fill_record() was aborted in the middle because an
error in save_val() or save_in_field()
2020-09-25 13:07:04 +03:00
Monty
895e9950b2 Fix for timeout in rpl.rpl_parallel_retry
MDEV-17109 rpl.rpl_parallel_retry fails in buildbot with timeout

I was not able to prove that this fix works, but at least it simplifies
the problem as it removes some possible timing issues.
2020-09-25 13:07:04 +03:00
Monty
16ea692ed4 MDEV-23586 Mariabackup: GTID saved for replication in 10.4.14 is wrong
MDEV-21953 deadlock between BACKUP STAGE BLOCK_COMMIT and parallel
replication

Fixed by partly reverting MDEV-21953 to put back MDL_BACKUP_COMMIT locking
before log_and_order.

The original problem for MDEV-21953 was that while a thread was waiting in
for another threads to commit in 'log_and_order', it had the
MDL_BACKUP_COMMIT lock. The backup thread was waiting to get the
MDL_BACKUP_WAIT_COMMIT lock, which blocks all new MDL_BACKUP_COMMIT locks.
This causes a deadlock as the waited-for thread can never get past the
MDL_BACKUP_COMMIT lock in ha_commit_trans.

The main part of the bug fix is to release the MDL_BACKUP_COMMIT lock while
a thread is waiting for other 'previous' threads to commit. This ensures
that no transactional thread keeps MDL_BACKUP_COMMIT while waiting, which
ensures that there are no deadlocks anymore.
2020-09-25 13:07:03 +03:00
Monty
3cdbaa04bd Fixed BUILD script to make plugin-file_key_management DYNAMIC
This ensures that all tests can be run.
Before this patch some encryption test failed
2020-09-25 12:44:04 +03:00
Monty
920824c24e Backported setting of transcation.on=1 in THD::reset_for_reuse()
This is to ensure code in 10.4 and 10.5 is logically identical for this
variable
2020-09-25 12:44:04 +03:00
mkaruza
a50ce94458 MDEV-23559: Galera LeakSanitizer: detected memory leaks in galera.GAL-419
When process is aborted WSREP deinitialization and memory cleanup is not properly handled.  Other reported leaks are in Galera library and should be fixed there.
2020-09-24 12:06:53 +03:00
Daniel Black
1be8ac390d Revert "[MDEV-7978] add show create user"
Appoligies, had a dirty branch before pushing:

This reverts commit 053653a23c.

This reverts commit 0ff897807f.

This reverts commit 85b085972b.

This reverts commit f3f45e46b6.

This reverts commit a470b3570a.

This reverts commit f8b8d202bc.

This reverts commit 6b6f066fdd.

This reverts commit a701e9e6c3.

This reverts commit c169838611.
2020-09-24 13:58:29 +10:00