- 03 Aug, 2020 2 commits
-
-
Sachin authored
Remove rpl_parallel2 from disabled.def
-
Sachin authored
Problem:- rpl_parallel2 was failing non-deterministically Analysis:- When FLUSH TABLES WITH READ LOCK is executed, it will allow all worker threads to complete their ongoing transactions and then it will pause them. At this state FTWRL will proceed to acquire global read lock. FTWRL first blocks threads from starting new commits, then upgrades the lock to block commit of existing transactions. Step1: FLUSH TABLES WITH READ LOCK - Blocks new commits Step2: * STOP SLAVE command enables 'force_abort=1' which unblocks workers, they continue to execute events. * T1: Waits in 'record_gtid' call to update 'gtid_slave_pos' table with its current GTID, but it is blocked becuase of Step1. * T2: Holds COMMIT lock and waits for T1 to commit. Step3: FLUSH TABLES WITH READ LOCK - Waiting to get BLOCK_COMMIT. This results in deadlock. When STOP SLAVE command allows paused workers to proceed, workers should skip the execution of all further events, similar to 'conservative' parallel mode. Solution:- We will assign 1 to skip_event_group when we are aborted in do_ftwrl_wait. rpl_parallel_entry->pause_sub_id is only reset when force_abort is off in rpl_pause_after_ftwrl.
-
- 08 Jul, 2020 2 commits
-
-
Otto Kekäläinen authored
Based on output of 'aria_s3_copy --help'. Also fix a typo in command help.
-
Eugene Kosov authored
1. Do not initialize dict_table_t::stats_latch in ibuf 2. Remove overengineering in GenericPolicy to speed up things dict_mem_table_create(): add new argument init_stats_latch ibuf_dummy_index_create(): do not initialize dict_table_t::stats_latch GenericPolicy: add new members m_filename and m_line sync_file_create_register() sync_file_created_deregister() sync_file_created_get() CreateTracker: remove rw_lock_t::created: a new debug member
-
- 07 Jul, 2020 1 commit
-
-
Eugene Kosov authored
-
- 06 Jul, 2020 2 commits
-
-
Eugene Kosov authored
-
Oleksandr Byelkin authored
Remove types casting with a help of virtual functions.
-
- 05 Jul, 2020 2 commits
-
-
Marko Mäkelä authored
commit ab406990 accidentally misplaced #endif directives.
-
Marko Mäkelä authored
The merge commit 0fd89a1a of commit b6ec1e8b seems to cause occasional MemorySanitizer failures, because it failed to replace some MEM_UNDEFINED() calls with MEM_MAKE_ADDRESSABLE(). my_large_free(): Correctly invoke MEM_MAKE_ADDRESSABLE() after freeing memory. Failure to do so could cause bogus AddressSanitizer failures for memory allocated by my_large_malloc(). On MemorySanitizer, we will do nothing. buf_pool_t::chunk_t::create(): Replace the MEM_MAKE_ADDRESSABLE() that had been added in commit 48493132 to work around the issue.
-
- 04 Jul, 2020 5 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
commit 48493132 was a necessary fix for the buffer pool resizing tests in 10.5 in AddressSanitizer. However, that change would break the tests innodb.innodb_buffer_pool_resize and innodb.innodb_buffer_pool_resize_with_chunks when run in MemorySanitizer, or presumably in Valgrind as well. (Those tests run "forever" in Valgrind.) buf_pool_resize(): Cancel the effect of MEM_NOACCESS() in Valgrind and ASAN. In MSAN, MEM_NOACCESS() is a no-op, and hence we must do nothing special here. MEM_MAKE_ADDRESSABLE() would declare the memory contents undefined. In this particular case, we must actually declare the contents defined for Valgrind.
-
Marko Mäkelä authored
Let us avoid any overhead in release builds, for an empty function.
-
Marko Mäkelä authored
The merge commit 0fd89a1a of commit b6ec1e8b was slightly incomplete. ReadView::mem_valid(): Use the correct primitive MEM_MAKE_ADDRESSABLE(), because MEM_UNDEFINED() now has no effect on ASAN. recv_sys_t::alloc(), recv_sys_t::add(): Use MEM_MAKE_ADDRESSABLE() instead of MEM_UNDEFINED(), to get the correct behaviour for ASAN. For Valgrind and MSAN, there is no change in behaviour. recv_sys_t::free(), recv_sys_t::clear(): Before freeing memory to buf_pool.free_list, invoke MEM_MAKE_ADDRESSABLE() on the entire buf_block_t::frame, to cancel the effect of MEM_NOACCESS() in recv_sys_t::alloc().
-
- 03 Jul, 2020 20 commits
-
-
Sergei Golubchik authored
first try discovering engines, then the rest. otherwise every DROP TABLE non_existent; will do lots of i/o trying to remove .MYI/.MYD/.MAI/.MAD/.CSV/etc files this matches the old behavior where DROP TABLE always tried to discover the table before dropping.
-
Sergei Golubchik authored
normal DROP TABLE with many tables continues after an error, trying to drop as many tables as possible. But DROP TEMPORARY TABLE was aborting on the first error. Change it to behave as DROP TABLE does.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
don't do table discovery on DROP. DROP falls back to "force" approach when a table isn't found and will try to drop in all engines anyway. That is, trying to discover in all engines before the drop is redundant and may be expensive.
-
Sergei Golubchik authored
drop-no_root needs DROP DATABASE to fail. But `chmod 000` is not reliable after drop table force anymore. Make DROP DATABASE to fail by creating an extra file in the db dir
-
Sergei Golubchik authored
-
Sergei Golubchik authored
remove redundant argument, return all possible enum values
-
Sergei Golubchik authored
minor post-review fixes * remove duplicate tests * first file indicates table existance even with discovery * don't duplicate trigger dropping code
-
Sergei Golubchik authored
-
Sergei Golubchik authored
first step in moving drop table out of the handler. todo: other methods that don't need an open table for now hton->drop_table is optional, for backward compatibility reasons
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Monty authored
-
Monty authored
-
Qi Wu authored
-
Monty authored
-
Monty authored
-
-
Sergei Golubchik authored
include/my_valgrind.h:88:112: error: ‘void* memset(void*, int, size_t)’ writing to an object of non-trivial type ‘key_map’ {aka ‘class Bitmap<64>’}; use assignment instead [-Werror=class-memaccess] in this case it's safe, Bitmap<> is trivial enough
-
- 02 Jul, 2020 6 commits
-
-
Monty authored
-
Monty authored
-
Monty authored
-
Monty authored
-
Marko Mäkelä authored
In AddressSanitizer, we only want memory poisoning to happen in connection with custom memory allocation or freeing. The primary use of MEM_UNDEFINED is for declaring memory uninitialized in Valgrind or MemorySanitizer. We do not want MEM_UNDEFINED to have the unwanted side effect that AddressSanitizer would no longer be able to complain about accessing unallocated memory. MEM_UNDEFINED(): Define as no-op for AddressSanitizer. MEM_MAKE_ADDRESSABLE(): Define as MEM_UNDEFINED() or ASAN_UNPOISON_MEMORY_REGION(). MEM_CHECK_ADDRESSABLE(): Wrap also __asan_region_is_poisoned().
-
Monty authored
- Some of the bug fixes are backports from 10.5! - The fix in innobase/fil/fil0fil.cc is just a backport to get less error messages in mysqld.1.err when running with valgrind. - Renamed HAVE_valgrind_or_MSAN to HAVE_valgrind
-