- 16 Mar, 2017 2 commits
-
-
Jan Lindström authored
-
=Ian Gilfillan authored
-
- 14 Mar, 2017 3 commits
-
-
Vladislav Vaintroub authored
Do not include base64.h, it was recently removed.
-
Jan Lindström authored
MDEV-11581: Mariadb starts InnoDB encryption threads when key has not changed or data scrubbing turned off Background: Key rotation is based on background threads (innodb-encryption-threads) periodically going through all tablespaces on fil_system. For each tablespace current used key version is compared to max key age (innodb-encryption-rotate-key-age). This process naturally takes CPU. Similarly, in same time need for scrubbing is investigated. Currently, key rotation is fully supported on Amazon AWS key management plugin only but InnoDB does not have knowledge what key management plugin is used. This patch re-purposes innodb-encryption-rotate-key-age=0 to disable key rotation and background data scrubbing. All new tables are added to special list for key rotation and key rotation is based on sending a event to background encryption threads instead of using periodic checking (i.e. timeout). fil0fil.cc: Added functions fil_space_acquire_low() to acquire a tablespace when it could be dropped concurrently. This function is used from fil_space_acquire() or fil_space_acquire_silent() that will not print any messages if we try to acquire space that does not exist. fil_space_release() to release a acquired tablespace. fil_space_next() to iterate tablespaces in fil_system using fil_space_acquire() and fil_space_release(). Similarly, fil_space_keyrotation_next() to iterate new list fil_system->rotation_list where new tables. are added if key rotation is disabled. Removed unnecessary functions fil_get_first_space_safe() fil_get_next_space_safe() fil_node_open_file(): After page 0 is read read also crypt_info if it is not yet read. btr_scrub_lock_dict_func() buf_page_check_corrupt() buf_page_encrypt_before_write() buf_merge_or_delete_for_page() lock_print_info_all_transactions() row_fts_psort_info_init() row_truncate_table_for_mysql() row_drop_table_for_mysql() Use fil_space_acquire()/release() to access fil_space_t. buf_page_decrypt_after_read(): Use fil_space_get_crypt_data() because at this point we might not yet have read page 0. fil0crypt.cc/fil0fil.h: Lot of changes. Pass fil_space_t* directly to functions needing it and store fil_space_t* to rotation state. Use fil_space_acquire()/release() when iterating tablespaces and removed unnecessary is_closing from fil_crypt_t. Use fil_space_t::is_stopping() to detect when access to tablespace should be stopped. Removed unnecessary fil_space_get_crypt_data(). fil_space_create(): Inform key rotation that there could be something to do if key rotation is disabled and new table with encryption enabled is created. Remove unnecessary functions fil_get_first_space_safe() and fil_get_next_space_safe(). fil_space_acquire() and fil_space_release() are used instead. Moved fil_space_get_crypt_data() and fil_space_set_crypt_data() to fil0crypt.cc. fsp_header_init(): Acquire fil_space_t*, write crypt_data and release space. check_table_options() Renamed FIL_SPACE_ENCRYPTION_* TO FIL_ENCRYPTION_* i_s.cc: Added ROTATING_OR_FLUSHING field to information_schema.innodb_tablespace_encryption to show current status of key rotation.
-
Daniel Bartholomew authored
-
- 13 Mar, 2017 2 commits
-
-
Vladislav Vaintroub authored
-
Marko Mäkelä authored
-
- 11 Mar, 2017 2 commits
-
-
Elena Stepanova authored
-
Sergei Golubchik authored
-
- 10 Mar, 2017 30 commits
-
-
iangilfillan authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
assert that strmov() cannot be used on overlapping strings. (because strpcpy cannot)
-
Sergei Golubchik authored
various ed25519/ref10 api simplifications for our specific use case
-
Sergei Golubchik authored
ED25519 authentication plugin
-
Sergei Golubchik authored
* define MYSQL_DYNAMIC_PLUGIN only for server plugins * don't typedef my_bool in mysql.h if plugin.h has already done it * fix the include guard in plugin.h
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
so that auth plugins could use various thd services
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
move most of the code into my_sha.ic, making it independent from the actual SHAx variant.
-
Sergei Golubchik authored
just as sql_plugin.cc does
-
Sergei Golubchik authored
-
Sergei Golubchik authored
-
Sergei Golubchik authored
because FLUSH STATUS does not reset them, so their values are affected by previously run tests since the last server restart.
-
Sergei Golubchik authored
MDEV-11942 BLACKHOLE is no longer active in 10.1 by default, mysql_upgrade not handling the situation fix the patch. add tests
-
Hartmut Holzgraefe authored
-
Sergei Golubchik authored
Try harder to show the table's engine. If the table's engine is not loaded, the table won't open. But we can still read the engine name from frm as a string.
-
Sergei Golubchik authored
Make SELECT <columns> FROM I_S.TABLES behave identically independently from whether <columns> require opening the table in engine or <columns> can be filled with only opening the frm. In particular, fill_schema_table_from_frm() should not silently skip frms with unknown engine, but should fill the I_S.TABLES row with NULLs just like fill_schema_table_by_open() does.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
this simplifies the code and avoids unnecessary conversions back and forth. and it works even if the engine is not installed.
-
Sergei Golubchik authored
this fixes the crash of innodb.innodb-blob --ps-protocol
-
Sergei Golubchik authored
has_no_default_value() should only fail the insert in the strict mode. Additionally, don't check for "all fields are given values" twice, it'll produce duplicate warnings.
-
Sergei Golubchik authored
-
Marko Mäkelä authored
In the 10.1 InnoDB Plugin, a call os_event_free(buf_flush_event) was misplaced. The event could be signalled by rollback of resurrected transactions while shutdown was in progress. This bug was caught by cmake -DWITH_ASAN testing. This call was only present in the 10.1 InnoDB Plugin, not in other versions, or in XtraDB. That said, the bug affects all InnoDB versions. Shutdown assumes the cessation of any page-dirtying activity, including the activity of the background rollback thread. InnoDB only waited for the background rollback to finish as part of a slow shutdown (innodb_fast_shutdown=0). The default is a clean shutdown (innodb_fast_shutdown=1). In a scenario where InnoDB is killed, restarted, and shut down soon enough, the data files could become corrupted. logs_empty_and_mark_files_at_shutdown(): Wait for the rollback to finish, except if innodb_fast_shutdown=2 (crash-like shutdown) was requested. trx_rollback_or_clean_recovered(): Before choosing the next recovered transaction to roll back, terminate early if non-slow shutdown was initiated. Roll back everything on slow shutdown (innodb_fast_shutdown=0). srv_innodb_monitor_mutex: Declare as static, because the mutex is only used within one module. After each call to os_event_free(), ensure that the freed event is not reachable via global variables, by setting the relevant variables to NULL.
-
Marko Mäkelä authored
-
Vicențiu Ciorbaru authored
If openat is present on the system and it tries to open a symlink with O_NOFOLLOW, we get errno 40. If openat is not present on the system, we use the alternative open call, with slightly different logic. IF the symlink doesn't point to a valid file, we get errno 20. This test uses an invalid symlink on the table t1.MYD.
-
iangilfillan authored
-
- 09 Mar, 2017 1 commit
-
-
Vicențiu Ciorbaru authored
-