1. 29 Dec, 2016 5 commits
  2. 28 Dec, 2016 1 commit
  3. 24 Dec, 2016 4 commits
  4. 23 Dec, 2016 1 commit
    • Marko Mäkelä's avatar
      Follow-up for MDEV-11630 Call mutex_free() before freeing the mutex list · bbb3fb31
      Marko Mäkelä authored
      fil_tablespace_iterate(): Call fil_space_destroy_crypt_data() to
      invoke mutex_free() for the mutex_create() that was done in
      fil_space_read_crypt_data(). Also, remember to free
      iter.crypt_io_buffer.
      
      The failure to call mutex_free() would cause sync_latch_meta_destroy()
      to access freed memory on shutdown. This affected the IMPORT of
      encrypted tablespaces.
      bbb3fb31
  5. 22 Dec, 2016 4 commits
    • Marko Mäkelä's avatar
      MDEV-11635 innodb.innodb_mysql test hangs · 08f79bde
      Marko Mäkelä authored
      Copy and adapt the test from MySQL 5.7.17.
      08f79bde
    • Marko Mäkelä's avatar
      MDEV-11630 Call mutex_free() before freeing the mutex list · d6a1f9f1
      Marko Mäkelä authored
      fil_space_crypt_cleanup(): Call mutex_free() to pair with
      fil_space_crypt_init().
      
      fil_space_destroy_crypt_data(): Call mutex_free() to pair with
      fil_space_create_crypt_data() and fil_space_read_crypt_data().
      
      fil_crypt_threads_cleanup(): Call mutex_free() to pair with
      fil_crypt_threads_init().
      
      fil_space_free_low(): Invoke fil_space_destroy_crypt_data().
      
      fil_close(): Invoke fil_space_crypt_cleanup(), just like
      fil_init() invoked fil_space_crypt_init().
      
      Datafile::shutdown(): Set m_crypt_info=NULL without dereferencing
      the pointer. The object will be freed along with the fil_space_t
      in fil_space_free_low().
      Remove some unnecessary conditions (ut_free(NULL) is OK).
      
      srv_shutdown_all_bg_threads(): Shut down the encryption threads
      by calling fil_crypt_threads_end().
      
      srv_shutdown_bg_undo_sources(): Do not prematurely call
      fil_crypt_threads_end(). Many pages can still be written by
      change buffer merge, rollback of incomplete transactions, and
      purge, especially in slow shutdown (innodb_fast_shutdown=0).
      
      innobase_shutdown_for_mysql(): Call fil_crypt_threads_cleanup()
      also when innodb_read_only=1, because the threads will have been
      created also in that case.
      
      sync_check_close(): Re-enable the invocation of sync_latch_meta_destroy()
      to free the mutex list.
      d6a1f9f1
    • Sergey Vojtovich's avatar
      MDEV-11227 - mysqlimport -l doesn't issue UNLOCK TABLES · 0c3791ca
      Sergey Vojtovich authored
      Merged fix for innodb_mysql from 5.7.
      0c3791ca
    • Vladislav Vaintroub's avatar
  6. 21 Dec, 2016 2 commits
    • Sergey Vojtovich's avatar
      Updated test results · 27f20d19
      Sergey Vojtovich authored
      27f20d19
    • Sergey Vojtovich's avatar
      MDEV-11227 - mysqlimport -l doesn't issue UNLOCK TABLES · 8774a023
      Sergey Vojtovich authored
      Implementation of MDEV-7660 introduced unwanted incompatible change:
      modifications under LOCK TABLES with autocommit enabled are rolled back on
      disconnect. Previously everything was committed, because LOCK TABLES didn't
      adjust autocommit setting.
      
      This patch restores original behavior by reverting some changes done in
      MDEV-7660:
      - sql/sql_parse.cc: do not reset autocommit on LOCK TABLES
      - sql/sql_base.cc: do not set autocommit on UNLOCK TABLES
      - test cases: main.lock_tables_lost_commit, main.partition_explicit_prune,
        rpl.rpl_switch_stm_row_mixed, tokudb.nested_txn_implicit_commit,
        tokudb_bugs.db806
      
      But it makes InnoDB tables under LOCK TABLES ... READ [LOCAL] not protected
      against DML. To restore protection some changes from WL#6671 were merged,
      specifically MDL_SHARED_READ_ONLY and test cases.
      
      WL#6671 merge highlights:
      - Not all tests merged.
      - In MySQL LOCK TABLES ... READ acquires MDL_SHARED_READ_ONLY for all engines,
        in MariaDB MDL_SHARED_READ is always acquired first and then upgraded to
        MDL_SHARED_READ_ONLY for InnoDB only.
      - The above allows us to omit MDL_SHARED_WRITE_LOW_PRIO implementation in
        MariaDB, which is rather useless with InnoDB. In MySQL it is needed to
        preserve locking behavior between low priority writes and LOCK TABLES ... READ
        for non-InnoDB engines (covered by sys_vars.sql_low_priority_updates_func).
      - Omitted HA_NO_READ_LOCAL_LOCK, we rely on lock_count() instead.
      - Omitted "piglets": in MariaDB stream of DML against InnoDB table may lead to
        concurrent LOCK TABLES ... READ starvation.
      - HANDLER ... OPEN acquires MDL_SHARED_READ instead of MDL_SHARED in MariaDB.
      - Omitted SNRW->X MDL lock upgrade for IMPORT/DISCARD TABLESPAECE under LOCK
        TABLES.
      - Omitted strong locks for views, triggers and SP under LOCK TABLES.
      - Omitted IX schema lock for LOCK TABLES READ.
      - Omitted deadlock weight juggling for LOCK TABLES.
      
      Full WL#6671 merge status:
      - innodb.innodb-lock: fully merged
      - main.alter_table: not merged due to different HANDLER solution
      - main.debug_sync: fully merged
      - main.handler_innodb: not merged due to different HANDLER solution
      - main.handler_myisam: not merged due to different HANDLER solution
      - main.innodb_mysql_lock: fully merged
      - main.insert_notembedded: fully merged
      - main.lock: not merged (due to no strong locks for views)
      - main.lock_multi: not merged
      - main.lock_sync: fully merged (partially in MDEV-7660)
      - main.mdl_sync: not merged
      - main.partition_debug_sync: not merged due to different HANDLER solution
      - main.status: fully merged
      - main.view: fully merged
      - perfschema.mdl_func: not merged (no such test in MariaDB)
      - perfschema.table_aggregate_global_2u_2t: not merged (didn't fail in MariaDB)
      - perfschema.table_aggregate_global_2u_3t: not merged (didn't fail in MariaDB)
      - perfschema.table_aggregate_global_4u_2t: not merged (didn't fail in MariaDB)
      - perfschema.table_aggregate_global_4u_3t: not merged (didn't fail in MariaDB)
      - perfschema.table_aggregate_hist_2u_2t: not merged (didn't fail in MariaDB)
      - perfschema.table_aggregate_hist_2u_3t: not merged (didn't fail in MariaDB)
      - perfschema.table_aggregate_hist_4u_2t: not merged (didn't fail in MariaDB)
      - perfschema.table_aggregate_hist_4u_3t: not merged (didn't fail in MariaDB)
      - perfschema.table_aggregate_thread_2u_2t: not merged (didn't fail in MariaDB)
      - perfschema.table_aggregate_thread_2u_3t: not merged (didn't fail in MariaDB)
      - perfschema.table_aggregate_thread_4u_2t: not merged (didn't fail in MariaDB)
      - perfschema.table_aggregate_thread_4u_3t: not merged (didn't fail in MariaDB)
      - perfschema.table_lock_aggregate_global_2u_2t: not merged (didn't fail in MariaDB)
      - perfschema.table_lock_aggregate_global_2u_3t: not merged (didn't fail in MariaDB)
      - perfschema.table_lock_aggregate_global_4u_2t: not merged (didn't fail in MariaDB)
      - perfschema.table_lock_aggregate_global_4u_3t: not merged (didn't fail in MariaDB)
      - perfschema.table_lock_aggregate_hist_2u_2t: not merged (didn't fail in MariaDB)
      - perfschema.table_lock_aggregate_hist_2u_3t: not merged (didn't fail in MariaDB)
      - perfschema.table_lock_aggregate_hist_4u_2t: not merged (didn't fail in MariaDB)
      - perfschema.table_lock_aggregate_hist_4u_3t: not merged (didn't fail in MariaDB)
      - perfschema.table_lock_aggregate_thread_2u_2t: not merged (didn't fail in MariaDB)
      - perfschema.table_lock_aggregate_thread_2u_3t: not merged (didn't fail in MariaDB)
      - perfschema.table_lock_aggregate_thread_4u_2t: not merged (didn't fail in MariaDB)
      - perfschema.table_lock_aggregate_thread_4u_3t: not merged (didn't fail in MariaDB)
      - sys_vars.sql_low_priority_updates_func: not merged
      - include/thr_rwlock.h: not merged, rw_pr_lock_assert_write_owner and
        rw_pr_lock_assert_not_write_owner are macros in MariaDB
      - sql/handler.h: not merged (HA_NO_READ_LOCAL_LOCK)
      - sql/mdl.cc: partially merged (MDL_SHARED_READ_ONLY only)
      - sql/mdl.h: partially merged (MDL_SHARED_READ_ONLY only)
      - sql/lock.cc: fully merged
      - sql/sp_head.cc: not merged
      - sql/sp_head.h: not merged
      - sql/sql_base.cc: partially merged (MDL_SHARED_READ_ONLY only)
      - sql/sql_base.h: not merged
      - sql/sql_class.cc: fully merged
      - sql/sql_class.h: fully merged
      - sql/sql_handler.cc: merged partially (different solution in MariaDB)
      - sql/sql_parse.cc: partially merged, mostly omitted low priority write part
      - sql/sql_reload.cc: not merged comment change
      - sql/sql_table.cc: not merged SNRW->X upgrade for IMPORT/DISCARD TABLESPACE
      - sql/sql_view.cc: not merged
      - sql/sql_yacc.yy: not merged (MDL_SHARED_WRITE_LOW_PRIO, MDL_SHARED_READ_ONLY)
      - sql/table.cc: not merged (MDL_SHARED_WRITE_LOW_PRIO)
      - sql/table.h: not merged (MDL_SHARED_WRITE_LOW_PRIO)
      - sql/trigger.cc: not merged
      - storage/innobase/handler/ha_innodb.cc: merged store_lock()/lock_count()
        changes (in MDEV-7660), didn't merge HA_NO_READ_LOCAL_LOCK
      - storage/innobase/handler/ha_innodb.h: fully merged in MDEV-7660
      - storage/myisammrg/ha_myisammrg.cc: not merged comment change
      - storage/perfschema/table_helper.cc: not merged (no MDL support in MariaDB PFS)
      - unittest/gunit/mdl-t.cc: not merged
      - unittest/gunit/mdl_sync-t.cc: not merged
      
      MariaDB specific changes:
      - handler.heap: different HANDLER solution, MDEV-7660
      - handler.innodb: different HANDLER solution, MDEV-7660
      - handler.interface: different HANDLER solution, MDEV-7660
      - handler.myisam: different HANDLER solution, MDEV-7660
      - main.mdl_sync: MDEV-7660 specific changes
      - main.partition_debug_sync: removed test due to different HANDLER solution,
        MDEV-7660
      - main.truncate_coverage: removed test due to different HANDLER solution,
        MDEV-7660
      - mysql-test/include/mtr_warnings.sql: additional cleanup, MDEV-7660
      - mysql-test/lib/v1/mtr_report.pl: additional cleanup, MDEV-7660
      - plugin/metadata_lock_info/metadata_lock_info.cc: not in MySQL
      - sql/sql_handler.cc: MariaDB specific fix for mysql_ha_read(), MDEV-7660
      8774a023
  7. 20 Dec, 2016 7 commits
  8. 19 Dec, 2016 7 commits
  9. 17 Dec, 2016 1 commit
  10. 16 Dec, 2016 4 commits
  11. 15 Dec, 2016 4 commits