mariadb/mysql-test/suite/innodb_plugin/r
Davi Arnaut b0035c76d4 Bug#54453: Failing assertion: trx->active_trans when renaming a
table with active trx

Essentially, the problem is that InnoDB does a implicit commit
when a cursor (table handler) is unlocked/closed, creating
a dissonance between the transaction state within the server
layer and the storage engine layer. Theoretically, a statement
transaction can encompass several table instances in a similar
manner to a multiple statement transaction, hence it does not
make sense to limit a statement transaction to the lifetime of
the table instances (cursors) used within it.

Since this particular instance of the problem is only triggerable
on 5.1 and is masked on 5.5 due 2PC being skipped (assertion is in
the prepare phase of a 2PC), the solution (which is less risky) is
to explicitly end the transaction before the cached table is unlock
on rename table.

The patch is to be null merged into trunk.

mysql-test/include/commit.inc:
  Fix counters, the binlog engine does not get involved anymore.
mysql-test/suite/innodb_plugin/r/innodb_bug54453.result:
  Add test case result for Bug#54453
mysql-test/suite/innodb_plugin/t/innodb_bug54453.test:
  Add test case for Bug#54453
sql/sql_table.cc:
  End transaction as otherwise InnoDB will end it behind our backs.
2010-07-20 14:36:15 -03:00
..
innodb-analyze.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb-autoinc-44030.result Fix a failure of innodb_plugin.innodb-autoinc-44030 now that 2010-04-09 16:29:13 +03:00
innodb-autoinc-optimize.result Copy built-in InnoDB tests to mysql-test/suite/innodb_plugin. 2010-06-03 12:48:59 +03:00
innodb-autoinc.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb-consistent.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb-index.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb-index_ucs2.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb-lock.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb-replace.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb-semi-consistent.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb-timeout.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb-ucs2.result Copy built-in InnoDB tests to mysql-test/suite/innodb_plugin. 2010-06-03 12:48:59 +03:00
innodb-use-sys-malloc.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb-zip.result dict_create_index_step(): Be strict about DYNAMIC and COMPRESSED tables. 2010-04-21 13:27:23 +03:00
innodb.result Factor out innodb_multi_update.test from innodb.test 2010-05-05 13:44:25 +03:00
innodb_autoinc_lock_mode_zero.result Copy built-in InnoDB tests to mysql-test/suite/innodb_plugin. 2010-06-03 12:48:59 +03:00
innodb_bug21704.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug30919.result Copy built-in InnoDB tests to mysql-test/suite/innodb_plugin. 2010-06-03 12:48:59 +03:00
innodb_bug34053.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug34300.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug35220.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug36169.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug36172.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug38231.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug39438.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug40360.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug40565.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug41904.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug42101-nonzero.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug42101.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug42419.result Copy built-in InnoDB tests to mysql-test/suite/innodb_plugin. 2010-06-03 12:48:59 +03:00
innodb_bug44032.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug44369.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug44571.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug45357.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug46000.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug46676.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug47167.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug47621.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug47622.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug47777.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug48024.result Make the InnoDB FOREIGN KEY parser understand multi-statements. (Bug #48024) 2010-05-14 16:08:15 +03:00
innodb_bug49164.result Add an innodb_plugin test case for Bug #49164. 2010-05-10 13:38:25 +02:00
innodb_bug51378.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_bug51920.result mysql-5.1-innodb: add error codes to innodb_bug51920.test 2010-04-22 14:16:14 -05:00
innodb_bug52663.result row_search_for_mysql(): Never try semi-consistent read in unique searches. 2010-04-26 13:27:25 +03:00
innodb_bug52745.result Add a test case for Bug #52745. 2010-04-26 14:08:56 +03:00
innodb_bug53290.result Merge a contribution from Ryan Mack at Facebook: 2010-05-05 15:39:01 +03:00
innodb_bug53591.result ha_innobase::add_index(): Reset trx->error_state in error handling. 2010-05-12 13:42:12 +03:00
innodb_bug53592.result Fix Bug #53592 in plugin code, "crash replacing duplicates into table 2010-05-25 22:31:27 -07:00
innodb_bug53674.result Bug#53674: InnoDB: Error: unlock row could not find a 4 mode lock on the record 2010-06-02 13:37:14 +03:00
innodb_bug54044.result Change the table name in innodb_bug54044 to lower case to avoid 2010-06-29 00:13:18 -07:00
innodb_bug54453.result Bug#54453: Failing assertion: trx->active_trans when renaming a 2010-07-20 14:36:15 -03:00
innodb_bug54679.result Bug#54679: alter table causes compressed row_format to revert to compact 2010-06-24 13:46:20 +03:00
innodb_file_format.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_gis.result Copy built-in InnoDB tests to mysql-test/suite/innodb_plugin. 2010-06-03 12:48:59 +03:00
innodb_information_schema.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00
innodb_lock_wait_timeout_1.result Copy built-in InnoDB tests to mysql-test/suite/innodb_plugin. 2010-06-03 12:48:59 +03:00
innodb_multi_update.result Factor out innodb_multi_update.test from innodb.test 2010-05-05 13:44:25 +03:00
innodb_mysql.result Bug#38999 valgrind warnings for update statement in function compare_record() 2010-06-09 16:17:18 +04:00
innodb_mysql_rbk.result Copy built-in InnoDB tests to mysql-test/suite/innodb_plugin. 2010-06-03 12:48:59 +03:00
innodb_notembedded.result Copy built-in InnoDB tests to mysql-test/suite/innodb_plugin. 2010-06-03 12:48:59 +03:00
innodb_timeout_rollback.result Copy built-in InnoDB tests to mysql-test/suite/innodb_plugin. 2010-06-03 12:48:59 +03:00
innodb_trx_weight.result Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where 2010-04-09 15:56:51 +03:00