summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Cleanup: Remove a startup messagebb-10.5-MDEV-22669Marko Mäkelä2020-05-221-5/+0
| | | | | | | The GCC __atomic_ functions were removed already in commit 2b47f8ff03845f7ffe2fa3bd583dd4123dae2b61, and starting with MariaDB Server 10.4, InnoDB relies mostly on C++11 std::atomic.
* MDEV-22669 InnoDB lacks CRC-32C acceleration on IA-32Marko Mäkelä2020-05-221-338/+152
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In mysql/mysql-server@17e497bdb793bc6b8360aa1c626dcd8bb5cfad1b MySQL 5.6.3 introduced innodb_checksum_algorithm=crc32 and implemented it for AMD64 using the SSE 4.2 instructions (incorrectly advertised as "SSE2" in a startup message). It was not implemented on IA-32 or on Windows. Since MariaDB 10.2.11 commit 2401d14e6b4449dd6181f728e160eb7c8f23bd40 we make use of the SSE4.2 CRC-32C instructions on Windows on both IA-32 and AMD64. Let us be consistent and implement CRC-32C for IA-32 on all available platforms. GCC 4.8.2 and GCC 4.8.5 complain "error: PIC register clobbered by 'ebx' in 'asm'" so we will only enable this code for IA-32 starting with GCC 5. Also, we will clean up the implementation further after commit 1312b4ebb652bf5eb9e97292ca62f0de3b0ff243. has_sse4_2(): Replaces ut_cpuid(). ut_crc32c_8(): Replaces ut_crc32_8_hw(). ut_crc32c_64(): Replaces ut_crc32_64_low_hw(), ut_crc32_64_hw(). ut_crc32_hw(): Rewrite. ut_crc32c_8_sw(): Replaces ut_crc32_8_sw(). ut_crc32c_64_sw(): Replaces ut_crc32_64_low_sw(), ut_crc32_64_sw(). ut_crc32_sw(): Rewrite. Avoid code bloat and do not unroll the ut_crc32c_64_sw() loop, because no benefit has been demonstrated. ut_crc32_init(): Only invoke ut_crc32_slice8_table_init() if no acceleration is available.
* MDEV-7318: Fix a test caseMarko Mäkelä2020-05-222-5/+5
|
* compilation failureSergei Golubchik2020-05-211-1/+1
|
* Merge branch '10.4' into 10.5Sujatha2020-05-206-1/+134
|\
| * MDEV-22451: SIGSEGV in __memmove_avx_unaligned_erms/memcpy from _my_b_write ↵Sujatha2020-05-206-1/+134
| |\ | | | | | | | | | | | | | | | on CREATE after RESET MASTER Merge branch '10.3' into 10.4
| | * MDEV-22451: SIGSEGV in __memmove_avx_unaligned_erms/memcpy from _my_b_write ↵Sujatha2020-05-206-1/+133
| | |\ | | | | | | | | | | | | | | | | | | | | on CREATE after RESET MASTER Merge branch '10.2' into 10.3
| | | * MDEV-22451: SIGSEGV in __memmove_avx_unaligned_erms/memcpy from _my_b_write ↵Sujatha2020-05-206-1/+133
| | | |\ | | | | | | | | | | | | | | | | | | | | | | | | | on CREATE after RESET MASTER Merge branch '10.1' into 10.2
| | | | * MDEV-22451: SIGSEGV in __memmove_avx_unaligned_erms/memcpy from _my_b_write ↵Sujatha2020-05-206-1/+135
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | on CREATE after RESET MASTER Analysis: ======== RESET MASTER TO # command deletes all binary log files listed in the index file, resets the binary log index file to be empty, and creates a new binary log with number #. When the user provided binary log number is greater than the max allowed value '2147483647' server fails to generate a new binary log. The RESET MASTER statement marks the binlog closure status as 'LOG_CLOSE_TO_BE_OPENED' and exits. Statements which follow RESET MASTER try to write to binary log they find the log_state != LOG_CLOSED and proceed to write to binary log cache and it results in crash. Fix: === During MYSQL_BIN_LOG open, if generation of new binary log name fails then the "log_state" needs to be marked as "LOG_CLOSED". With this further statements will find binary log as closed and they will skip writing to the binary log.
| | | | * MDEV-22631 fixRasmus Johansson2020-05-201-1/+11
| | | | |
* | | | | Merge 10.4 into 10.5Marko Mäkelä2020-05-2037-316/+470
|\ \ \ \ \ | |/ / / /
| * | | | Merge 10.3 into 10.4Marko Mäkelä2020-05-201-28/+15
| |\ \ \ \ | | |/ / /
| | * | | Merge 10.2 into 10.3Marko Mäkelä2020-05-201-28/+15
| | |\ \ \ | | | |/ /
| | | * | MDEV-19114 post-push fix: SIGSEGV on INSERTMarko Mäkelä2020-05-201-28/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ins_node_create_entry_list(): Create dummy empty tuples for corrupted or incomplete indexes, to avoid dereferencing a NULL dict_field_t::col pointer in row_build_index_entry_low(). This issue was found by a crash in the test gcol.innodb_virtual_basic when merging the fix to 10.5.
| | | * | MDEV-22631 fixRasmus Johansson2020-05-201-1/+11
| | | | |
| | * | | MDEV-22631 fixRasmus Johansson2020-05-201-1/+11
| | | | |
| * | | | MDEV-22631 fixRasmus Johansson2020-05-201-1/+11
| | | | |
| * | | | Merge 10.3 into 10.4Marko Mäkelä2020-05-2020-112/+174
| |\ \ \ \ | | |/ / /
| | * | | Merge 10.2 into 10.3Marko Mäkelä2020-05-2015-112/+92
| | |\ \ \ | | | |/ /
| | | * | Merge 10.1 into 10.2Marko Mäkelä2020-05-206-8/+15
| | | |\ \ | | | | |/
| | | | * MDEV-22258 Limit innodb_encryption_threads to 255Marko Mäkelä2020-05-203-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For no good reason, innodb_encryption_threads was limited to 4,294,967,295. Expectedly, the server would crash if such an insane value was specified. Let us limit the maximum to 255. The encryption threads are not doing much useful work. They are basically only dirtying pages by performing dummy writes via the redo log. The encryption key rotation or the in-place addition or removal of encryption will take place in the page cleaner. In a quick test on a 20-core CPU (40 threads in total), the sweet spot on an otherwise idle server seemed to be innodb_encryption_threads=16 for the test encryption.encrypt_and_grep. The new limit 255 should be more than enough for even bigger servers.
| | | | * MDEV-22472 rpl.rpl_fail_register failed in buildbot with wrong resultAndrei Elkin2020-05-191-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a new test from upstream that did not expect the correct value of the command slot of the Dump thread when the latter gets killed. The test is made to expect "Killed" string as the command in show-processlist as it is supposed to when a thread gets killed.
| | | | * MDEV-22636 XML output for mtr doesn't work with valgrind optionRasmus Johansson2020-05-191-0/+1
| | | | |
| | | | * MDEV-22631 some test causes MTR interruption without generating summary and XMLRasmus Johansson2020-05-192-3/+11
| | | | |
| | | * | MDEV-22633 Assertion failed in prepare_inplace_alter_table_dictThirunarayanan Balathandayuthapani2020-05-201-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | prepare_inplace_alter_table_dict(): In the error handling, relax a debug assertion for the case that we did not execute dict_stats_wait_bg_to_stop_using_table() yet.
| | | * | MDEV-22629 Remove fts_indexes field from struct fts_update_t (#1537)Yury Kurlykov2020-05-206-72/+55
| | | | | | | | | | | | | | | | | | | | fts_indexes field in fts_update_t never used. So replace fts_update_t with doc_id_t in the code
| | | * | MDEV-22456 post-fix: Remove unused variableMarko Mäkelä2020-05-201-4/+1
| | | | |
| | | * | MDEV-18838 : galera.galera_toi_truncate: Test failure: mysqltest: query ↵Jan Lindström2020-05-202-28/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'reap' succeeded - should have failed with errno 1213 Test cleanup.
| | | * | MDEV-22636 XML output for mtr doesn't work with valgrind optionRasmus Johansson2020-05-191-0/+1
| | | | |
| | * | | MDEV-22391 Assertion `0' failed in Item_type_holder::val_str on utf16 ↵Alexander Barkov2020-05-205-0/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | charset table query Problem: When handling a query like this: VALUES ('') UNION SELECT _utf16 0x0020 COLLATE utf16_bin; Type_handler_string_result::Item_hybrid_func_fix_attributes() tried to apply character set conversion Item_type_holder, which causes a crash on DBUG_ASSERT(0) inside Item_type_holder::val_str(). Fix: Overriding Item_type_holder's methods to avoid this, as follows: bool const_item() const { return false; } bool is_expensive() { return true; }
| * | | | Merge 10.3 into 10.4Marko Mäkelä2020-05-1917-177/+282
| |\ \ \ \ | | |/ / /
| | * | | MDEV-22636 XML output for mtr doesn't work with valgrind optionRasmus Johansson2020-05-191-0/+1
| | | | |
| | * | | Merge 10.2 into 10.3Marko Mäkelä2020-05-1917-109/+227
| | |\ \ \ | | | |/ /
| | | * | MDEV-22456: Fix cmake -DWITH_INNODB_AHI=OFFMarko Mäkelä2020-05-191-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | dict_index_remove_from_cache_low(): Add a missing #ifdef around dict_index_t::freed().
| | | * | MDEV-19114 gcol.innodb_virtual_debug: Assertion n_fields>0 failedMarko Mäkelä2020-05-193-42/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a regression due to MDEV-16376 commit 8dc70c862b8ec115fd9a3c2b37c746ffc4f0d3cc. To make dict_index_t::detach_columns() idempotent, we cleared dict_index_t::n_fields. But, this could cause trouble with purge after a secondary index creation failed (not even involving virtual columns). A better way is to clear the dict_field_t::col pointers that point to virtual columns that are being freed due to aborting index creation on an index that depends on a virtual column. Note: the v_cols[] of an existing dict_table_t object will never be modified. If any virtual columns are added or removed, ha_innobase::commit_inplace_alter_table() would invoke dict_table_remove_from_cache() and reload the table to dict_sys. Index creation is a special case where the dict_index_t points to virtual columns that do not yet exist in dict_table_t.
| | | * | Don't run main.sp2 in emebedded serverMonty2020-05-191-0/+2
| | | | |
| | | * | MDEV-22591 Debug build crashes on EXECUTE IMMEDIATE '... WHERE ?' USING IGNOREAlexander Barkov2020-05-193-1/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removing a wrong DBUG_ASSERT: When Item_param gets "unfixed" in cleanup(), its "fixed" gets assigned to false, while item_item keeps the value. So the assert was wrong. Perhaps, instead of removing the assert, it was possible to reset item_type to NO_VALUE in cleanup. But this is not very important: it's implemented in 10.4 in a better way: Item_param::is_fixed() always returns true and it does not need to be "unfixed".
| | | * | MDEV-22554: "mariabackup --prepare" exits with code 0 even though innodbVlad Lesin2020-05-194-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | error is logged The fix is to set flag in ib::error::~error() and check it in mariabackup. ib::error::error() is replaced with ib::warn::warn() in AIO::linux_create_io_ctx() because of two reasons: 1) if we leave it as is, then mariabackup MTR tests will fail with --mem option, because Linux AIO can not be used on tmpfs, 2) when Linux AIO can not be initialized, InnoDB falls back to simulated AIO, so such sutiation is not fatal error, it should be treated as warning.
| | | * | Merge 10.1 into 10.2Marko Mäkelä2020-05-193-1/+10
| | | |\ \ | | | | |/
| | | | * MDEV-22520 Assertion `gathered_length == thd->lex->comment.length` failed in ↵Andrei Elkin2020-05-183-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | binlog_defragment The assert was caused by early cleanup of a user variable participant in BINLOG @var,@var where it plays twice. That was unexpected by the base code to clear its value prematurely. Fixed with relocating the user var destruction after operations with its value is over.
| | | * | MDEV-22618 Assertion !dict_index_is_online_ddl ... in lock_table_locks_lookupMarko Mäkelä2020-05-191-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lock_table_locks_lookup(): Relax the assertion. Locks must not exist while online secondary index creation is in progress. However, if CREATE UNIQUE INDEX has not been committed yet, but the index creation has been completed, concurrent DML transactions may acquire record locks on the index. Furthermore, such concurrent DML may cause duplicate key violation, causing the DDL operation to be rolled back. After that, the online_status may be ONLINE_INDEX_ABORTED or ONLINE_INDEX_ABORTED_DROPPED. So, the debug assertion may only forbid the state ONLINE_INDEX_CREATION.
| | | * | Fixed assert in Aria on SHOW PROCEDURE STATUSMonty2020-05-193-0/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MDEV-18457 Assertion `(bitmap->map + (bitmap->full_head_size/6*6)) <= full_head_end failed The problem was that full_head_size was not calculated correctly in the case when insert_order was inforced, which is the case for SHOW commands.
| | * | | MDEV-21936 Assertion !btr_search_own... in btr_search_drop_page_hash_indexMarko Mäkelä2020-05-191-17/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a regression due to the cleanup commit 12f804acfa45dac5af04dd7da37670c50f4d8a90. row_sel_open_pcur(): Remove the unnecessary parameter. It suffices for us to acquire the adaptive hash index latch only when btr_search_guess_on_hash() is called by btr_cur_search_to_nth_level_func(), in btr_pcur_open_with_no_init(). This code seems to be a relic from the times when there was only one btr_search_latch, which was held in shared mode for longer periods of time. Another relic of that era was removed in commit e5980bf1b12f6dc4fa4ab44feb1b6a734dcc84d3. This clean-up was missed when the btr_search_latch was split in mysql/mysql-server/commit@ab17ab91ce18a47bb6c5c49e4dc0505ad488a448 (MySQL 5.7.8).
| * | | | MDEV-22636 XML output for mtr doesn't work with valgrind optionRasmus Johansson2020-05-191-0/+1
| | | | |
* | | | | MDEV-22631 fixRasmus Johansson2020-05-201-1/+11
| | | | |
* | | | | MDEV-22636 XML output for mtr doesn't work with valgrind optionRasmus Johansson2020-05-191-0/+1
| | | | |
* | | | | Merge 10.4 into 10.5Marko Mäkelä2020-05-195-45/+88
|\ \ \ \ \ | |/ / / /
| * | | | Move c++ code from my_atomic.h to my_atomic_wrapper.hMonty2020-05-193-45/+59
| | | | | | | | | | | | | | | | | | | | | | | | | This is because it breaks code that is using extern "C" when including my_atomic, which is the case with ha_s3.cc
| * | | | MDEV-22610 Crash in INSERT INTO t1 (VALUES (DEFAULT) UNION VALUES (DEFAULT))Alexander Barkov2020-05-192-0/+29
| | | | | | | | | | | | | | | | | | | | The fix for MDEV-21995 earlier fixed MDEV-22610. Adding tests only.
* | | | | Merge remote-tracking branch 'origin/10.4' into 10.5Alexander Barkov2020-05-198-100/+190
|\ \ \ \ \ | |/ / / /