- 17 May, 2017 3 commits
-
-
Marko Mäkelä authored
This is a non-functional change to make it slightly easier to read the code. We seem to have some bugs in this IMPORT TABLESPACE code; see MDEV-12396.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Do not silence uncertain cases, or fix any bugs. The only functional change should be that ha_federated::extra() is not calling DBUG_PRINT to report an unhandled case for HA_EXTRA_PREPARE_FOR_DROP.
-
- 12 May, 2017 2 commits
-
-
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.
-
- 09 May, 2017 4 commits
-
-
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.
-
Jan Lindström authored
galera_new_cluster man page and sh typo
-
=Ian Gilfillan authored
-
- 08 May, 2017 5 commits
-
-
Sergei Golubchik authored
extend the fix from 5.5 (in read_sep_field()) to apply to read_xml_field()
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Jan Lindström authored
Actual error number returned from the query depends what point corrupted page is accessed, is it accessed when we read one of the pages for result set or is it accessed during background page read.
-
Jan Lindström authored
Removed creation of unused backup file and unused variables.
-
- 05 May, 2017 6 commits
-
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
-
Monty authored
Problem was two race condtion in Aria page cache: - find_block() didn't inform free_block() that it had released requests - free_block() didn't handle pinned blocks, which could happen if free_block() was called as part of flush. This is fixed by not freeing blocks that are pinned. This is safe as when maria_close() is called when last thread is using a table, there can be no pinned blocks. For other flush calls it's safe to ignore pinned blocks.
-
Monty authored
- Changed to 'strict' - Fixed scope of variables - Made timing smaller for of repair, check, flush and alter to get them to trigger earlier
-
Marko Mäkelä authored
In MariaDB Server before 10.2, InnoDB will not be shut down properly if startup fails. So, Valgrind failures are to be expected. Disable the test under Valgrind. In 10.2, it should pass with Valgrind.
-
Igor Babaev authored
This patch corrects the fix for the bug mdev-10693. It is critical for the function get_best_combination() not to call create_ref_for_key() for constant tables. This bug could manifest itself only in multi-table subqueries where one of the tables is accessed by a constant primary key.
-
- 03 May, 2017 1 commit
-
-
Sergei Golubchik authored
otherwise make didn't know it needs to regenerate lex_hash.h when gen_lex_hash (that is sql_yacc.h, that is sql_yacc.yy) changes.
-
- 02 May, 2017 6 commits
-
-
Daniel Bartholomew authored
-
Daniel Bartholomew authored
-
Jan Lindström authored
MDEV-12522: mysqltest replace regex + sys_vars.sysvars_wsrep test to be version independent
-
Jan Lindström authored
MDEV-12646: wsrep_new_cluster: Add -h and --help options
-
Jan Lindström authored
Remove compile warning - "this" canot be null
-
Jan Lindström authored
This regression was caused by MDEV-12467 encryption.create_or_replace hangs during DROP TABLE, where if table->is_stopping() (i.e. when tablespace is dropped) background key rotation thread calls fil_crypt_complete_rotate_space to release space and stop rotation. However, that function does not decrease number of rotating threads if table->is_stopping() is true.
-
- 30 Apr, 2017 3 commits
-
-
Daniel Black authored
/home/travis/build/MariaDB/server/extra/mysqld_safe_helper.c:62:21: warning: too many arguments in call to 'do_usage' do_usage(argv[0]); ~~~~~~~~ ^ 1 warning generated.
-
Daniel Black authored
/home/travis/build/MariaDB/server/sql/sql_class.cc:1941:15: warning: 'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true [-Wundefined-bool-conversion] if (this && WSREP(this) && wsrep_thd_is_BF(this, FALSE)) ^~~~ ~~
-
- 29 Apr, 2017 2 commits
-
-
Jan Lindström authored
|| kv >= crypt_data->min_key_version, encryption.innodb_encryption_tables failed in buildbot. Now that key_version is not stored when page is read to buf_page_t::key_version but always read from actual page this assertion is not always valid.
-
Elena Stepanova authored
-
- 28 Apr, 2017 2 commits
-
-
Sergei Golubchik authored
-
Marko Mäkelä authored
This fixes a regression caused by MDEV-12428. When we introduced a variant of fil_space_acquire() that could increment space->n_pending_ops after space->stop_new_ops was set, the logic of fil_check_pending_operations() was broken. fil_space_t::n_pending_ios: A new field to track read or write access from the buffer pool routines immediately before a block write or after a block read in the file system. fil_space_acquire_for_io(), fil_space_release_for_io(): Similar to fil_space_acquire_silent() and fil_space_release(), but modify fil_space_t::n_pending_ios instead of fil_space_t::n_pending_ops. Adjust a number of places accordingly, and remove some redundant tablespace lookups. The following parts of this fix differ from the 10.2 version of this fix: buf_page_get_corrupt(): Add a tablespace parameter. In 10.2, we already had a two-phase process of freeing fil_space objects (first, fil_space_detach(), then release fil_system->mutex, and finally free the fil_space and fil_node objects). fil_space_free_and_mutex_exit(): Renamed from fil_space_free(). Detach the tablespace from the fil_system cache, release the fil_system->mutex, and then wait for space->n_pending_ios to reach 0, to avoid accessing freed data in a concurrent thread. During the wait, future calls to fil_space_acquire_for_io() will not find this tablespace, and the count can only be decremented to 0, at which point it is safe to free the objects. fil_node_free_part1(), fil_node_free_part2(): Refactored from fil_node_free().
-
- 27 Apr, 2017 6 commits
-
-
Sergei Golubchik authored
innodb calls sd_notify(), it must be linked with libsystemd
-
Sergei Golubchik authored
use X509_check_host for OpenSSL 1.0.2+ This adds: * support for subjectAltNames * wildcards * sub-domain matching
-
Sergei Golubchik authored
magic--
-
Sergei Golubchik authored
and make sure that private ca key is not deleted at the end of the procedure, so that we could generate additional certificates any time without regenerating everything
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-