Let me explain the bug more verbosely. New code has been added to
MySQL 5.6 to resurrect table locks. This code opens some tables. It
being done before purge_sys initialized and here is where the problem
is.
trx_resurrect_table_locks parses undo log and resurrects locks for
tables in it. It is done while purge_sys is still down. In order to
catch this crash we need to take a backup at the moment when there are
active transactions. Since our test suite communicate with MySQL via
mysql cli tool we cannot produce uncommitted transactions. Only option
for us is to run mysql in parallel and implement some hacks for
synchronization.
Subsequent operations are dict_check_tablespaces_and_store_max_id
invoked from innobase_start_or_create_for_mysql.
Hello Alexey,
Let me explain the bug more verbosely. New code has been added to
MySQL 5.6 to resurrect table locks. This code opens some tables. It
being done before purge_sys initialized and here is where the problem
is.
trx_resurrect_ table_locks parses undo log and resurrects locks for
tables in it. It is done while purge_sys is still down. In order to
catch this crash we need to take a backup at the moment when there are
active transactions. Since our test suite communicate with MySQL via
mysql cli tool we cannot produce uncommitted transactions. Only option
for us is to run mysql in parallel and implement some hacks for
synchronization.
Subsequent operations are dict_check_ tablespaces_ and_store_ max_id start_or_ create_ for_mysql.
invoked from innobase_
Hope this makes more sense.