- 18 May, 2017 1 commit
-
-
Marko Mäkelä authored
Issue FLUSH TABLES to prevent unintended corruption of crash-unsafe tables when the server is killed.
-
- 17 May, 2017 1 commit
-
-
Sergei Petrunia authored
-
- 16 May, 2017 1 commit
-
-
Monty authored
The issue was that my_errno was not set properly when a repair was killed, which confused the rpl_killed_ddl script. I also added an extra test line in varchar.inc to ensure we don't give duplicate error rows.
-
- 14 May, 2017 1 commit
-
-
Elena Stepanova authored
-
- 12 May, 2017 4 commits
-
-
Marko Mäkelä authored
In 10.2, the definition of simple_counter resides in the file sync0types.h, not in the file os0sync.h which has been removed.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
There is a race condition related to the variable srv_stats.n_lock_wait_current_count, which is only incremented and decremented by the function lock_wait_suspend_thread(), The incrementing is protected by lock_sys->wait_mutex, but the decrementing does not appear to be protected by anything. This mismatch could allow the counter to be corrupted when a transactional InnoDB table or record lock wait is terminating roughly at the same time with the start of a wait on a (possibly different) lock. ib_counter_t: Remove some unused methods. Prevent instantiation for N=1. Add an inc() method that takes a slot index as a parameter. single_indexer_t: Remove. simple_counter<typename Type, bool atomic=false>: A new counter wrapper. Optionally use atomic memory operations for modifying the counter. Aligned to the cache line size. lsn_ctr_1_t, ulint_ctr_1_t, int64_ctr_1_t: Define as simple_counter<Type>. These counters are either only incremented (and we do not care about losing some increment operations), or the increment/decrement operations are protected by some mutex. srv_stats_t::os_log_pending_writes: Document that the number is protected by log_sys->mutex. srv_stats_t::n_lock_wait_current_count: Use simple_counter<ulint, true>, that is, atomic inc() and dec() operations. lock_wait_suspend_thread(): Release the mutexes before incrementing the counters. Avoid acquiring the lock mutex if the lock wait has already been resolved. Atomically increment and decrement srv_stats.n_lock_wait_current_count. row_insert_for_mysql(), row_update_for_mysql(), row_update_cascade_for_mysql(): Use the inc() method with the trx->id as the slot index. This is a non-functional change, just using inc() instead of add(1). buf_LRU_get_free_block(): Replace the method add(index, n) with inc(). There is no slot index in the simple_counter.
-
- 11 May, 2017 2 commits
-
-
Michael Widenius authored
This was because of two issues: - thr_multi_lock_after_thr_lock needed to be hit 3 times before go2 could be signaled, because 2 of these happened before statistics_update_start was reached. - The original code didn't take into accunt that thr_locks can be executed in any random order, which caused sporadic failures when waiting for 1 lock of 3, as if the locks where in different order, there would be a dead-lock. Fixed by introducing thr_multi_lock_before_thr_lock which is deterministic. - Some of the test failures where not noticed as the DEBUG_SYNC timeout would cause the test to pass (after 300 seconds).
-
Michael Widenius authored
-
- 10 May, 2017 11 commits
-
-
Jan Lindström authored
MDEV-11197: TrxInInnoDB::is_aborted(const trx_t*): Assertion `srv_read_only_mode || trx->in_depth > 0' failed TrxInInnoDB should be constructed to track if a transaction is executing inside InnoDB code i.e. it is like a gate between Server and InnoDB ::rnd_next() is called from Server and thus construct TrxInInnoDB also there. Applied suggested clean-up to TrxInInnoDB class functions enter() and exit(). Note that exactly original did not work for enter().
-
Marko Mäkelä authored
The InnoDB temporary tablespace is only usable if innodb_read_only=OFF. It is useless to create the tablespace in read-only mode, because CREATE TEMPORARY TABLE is disallowed if innodb_read_only, and nothing can we written to the temporary tablespace if no temporary tables can be created.
-
Sergei Golubchik authored
fix sporadic innodb.truncate_purge_debug failures
-
Oleksandr Byelkin authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
because it tests for variables that aren't compiled for Windows, like --innodb-priority-cleaner
-
Marko Mäkelä authored
The latest attempted fix for MDEV-11802 InnoDB purge fails to start when there is work to do is not complete. For now, work around the issue by making SHOW ENGINE INNODB STATUS call srv_wake_purge_thread_if_not_active() to wake up the purge.
-
Marko Mäkelä authored
MDEV-12679 purge_sys_t::~purge_sys_t(): Assertion `latch.magic_n == 0' failed on --bootstrap (CMAKE_BUILD_TYPE=Debug) rw_lock_free_func(): Assign lock->magic_n = 0 in debug builds, because sometimes, the assignment in the explicit destructor call is being optimized away. This was verified when using GCC 6.3.0 with -O3 -g -mtune=native on a Debian GNU/Linux 9.0 system on AMD64.
-
Marko Mäkelä authored
Use uint32_t for the encryption key_id. When filling unsigned integer values into INFORMATION_SCHEMA tables, use the method Field::store(longlong, bool unsigned) instead of using Field::store(double). Fix also some miscellanous type mismatch related to ulint (size_t).
-
Oleksandr Byelkin authored
-
Marko Mäkelä authored
The issue was a bad merge of MDEV-12253 from 10.1 to 10.2 in commit f9cc3918. In that merge, I wrongly assumed that all test file conflicts for mysql-test/suite/encryption had been properly resolved in bb-10.2-MDEV-12253 (commit 76aa6be77635c7017459ce33b41c837c9acb606d) while in fact, some files there had been copied from the 10.1 branch. This commit is based on a manually done conflict resolution of the mysql-test/suite/encryption on the same merge, applied to the current 10.2 branch. As part of this commit, the test encryption.innodb-bad-key-change4 which was shortly disabled due to MDEV-11336 will be re-enabled again. (While the test enables innodb_defragment, it does not fail even though enabling innodb_defragment currently has no effect.)
-
- 09 May, 2017 19 commits
-
-
Sergei Golubchik authored
Apparently openssl ignores CRYPTO_set_mem_functions() in fips mode, so we cannot detect structure sizes. Don't freak out when no mallocs were detected.
-
Elena Stepanova authored
-
Elena Stepanova authored
Tests which fail on Xenial fulltest
-
Vladislav Vaintroub authored
-
Marko Mäkelä authored
When MySQL 5.7.9 was merged to MariaDB 10.2.2, an important debug assertion was omitted from mlog_write_initial_log_record_low(). mlog_write_initial_log_record_low(): Put back the assertion mtr_t::is_named_space(). fil_crypt_start_encrypting_space(), fil_crypt_rotate_page(): Call mtr_t::set_named_space() before modifying any pages. fsp_flags_try_adjust(): Call mtr_t::set_named_space(). This additional breakage was introduced in the merge of MDEV-11623 from 10.1. It was not caught because of the missing debug assertion in mlog_write_initial_log_record_low(). Remove some suppressions from the encryption.innodb-redo-badkey test.
-
Jan Lindström authored
Added a new file ha_xtradb.h where XtraDB parameters are defined. This file is included in two places to avoid too intrusive change to ha_innodb.cc that would make future merges harder. innodb_show_locks_held and innodb_show_verbose_locks should be implemented (but on different commit).
-
Jan Lindström authored
-
Sergei Golubchik authored
post-review fixes: * move all ssl implementation related ifdefs/defines to one file (ssl_compat.h) * work around OpenSSL-1.1 desire to malloc every EVP context by run-time checking that context allocated on the stack is big enough (openssl.c) * use newer version of the AWS SDK for OpenSSL 1.1 * use get_dh2048() function as generated by openssl 1.1 (viosslfactories.c)
-
Georg Richter authored
Initial support tested against OpenSSL 1.0.1, 1.0.2, 1.1.0, Yassl and LibreSSL not working on Windows with native SChannel support, due to wrong cipher mapping: Latter one requires push of CONC-241 fixes. Please note that OpenSSL 0.9.8 and OpenSSL 1.1.0 will not work: Even if the build succeeds, test cases will fail with various errors, especially when using different tls libraries or versions for client and server.
-
Sergei Golubchik authored
-
Jan Lindström authored
In windows error message contains .exe.
-
Sachin Setiya authored
Reason for this crash is that table->rpl_write_set is NULL. In Rows_log_event::do_apply_event we set table->rpl_write_set equal to table->write_set. But we do not set table->rpl_write_set in Old_rows_log_event::do_apply_event.
-
Marko Mäkelä authored
This is a backport from 10.2 where it fixes the cmake -DWITH_ASAN test failure that was mentioned in commit f9cc3918 (merging MDEV-12253 from 10.1 to 10.2). fil_parse_write_crypt_data(): If the tablespace is not found, invoke fil_space_destroy_crypt_data(&crypt_data) to properly free the created object.
-
Marko Mäkelä authored
The function buf_read_page_low() invokes fil_io(), which can return DB_ERROR when the requested page is out of bounds (such as when restoring a buffer pool dump). The callers should be handling that.
-
Sergei Golubchik authored
Revert commit db0917f6, because the fix for MDEV-12696 is coming from 5.5 and 10.1 in this merge.
-
Marko Mäkelä authored
This fixes the cmake -DWITH_ASAN test failure that was mentioned in commit f9cc3918 (merging MDEV-12253 from 10.1 to 10.2). fil_parse_write_crypt_data(): If the tablespace is not found, invoke fil_space_destroy_crypt_data(&crypt_data) to properly free the created object. With this, the test encryption.innodb-redo-badkey still reports "Missing MLOG_FILE_NAME or MLOG_FILE_DELETE before MLOG_CHECKPOINT" but does not fail. The misleading message should be corrected, maybe as part of MDEV-12699.
-
Jan Lindström authored
galera_new_cluster man page and sh typo
-
=Ian Gilfillan authored
-
Sachin Setiya authored
Binlog_background_thread does not make a call to set_time(), And when we call binlog_checkpoint_log_event->write() , we write the wrong timestamp. In this patch we correct this by calling thd->set_time().
-