diff options
-rw-r--r-- | mysql-test/suite/galera/r/create.result | 10 | ||||
-rw-r--r-- | mysql-test/suite/galera/suite.pm | 1 | ||||
-rw-r--r-- | mysql-test/suite/galera/t/create.test | 15 | ||||
-rw-r--r-- | sql/handler.cc | 1 |
4 files changed, 26 insertions, 1 deletions
diff --git a/mysql-test/suite/galera/r/create.result b/mysql-test/suite/galera/r/create.result index d8a2db99a68..d23fb186f5e 100644 --- a/mysql-test/suite/galera/r/create.result +++ b/mysql-test/suite/galera/r/create.result @@ -58,4 +58,14 @@ t2 CREATE TABLE `t2` ( KEY `idx` (`i`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 DROP TABLE t1, t2; +# +# MDEV-9853: WSREP says it cannot get fake InnoDB transaction ID +# followed by segmentation fault +# +CREATE TABLE `t1`(`c1` INT) ENGINE=INNODB; +SET autocommit=0; +CREATE TABLE `t2` (`c1` INT) ENGINE=INNODB SELECT * FROM t1; +COMMIT; +SET autocommit=1; +DROP TABLE t1, t2; # End of tests diff --git a/mysql-test/suite/galera/suite.pm b/mysql-test/suite/galera/suite.pm index 2da2b3ad503..b3795b91666 100644 --- a/mysql-test/suite/galera/suite.pm +++ b/mysql-test/suite/galera/suite.pm @@ -67,6 +67,7 @@ push @::global_suppressions, qr|WSREP: gcs_caused\(\) returned .*|, qr|WSREP: Protocol violation. JOIN message sender .* is not in state transfer \(SYNCED\). Message ignored.|, qr(WSREP: Action message in non-primary configuration from member [0-9]*), + qr(WSREP: cannot get fake InnoDB transaction ID), ); diff --git a/mysql-test/suite/galera/t/create.test b/mysql-test/suite/galera/t/create.test index fb9b0935288..9d0ab215cbb 100644 --- a/mysql-test/suite/galera/t/create.test +++ b/mysql-test/suite/galera/t/create.test @@ -54,5 +54,20 @@ SHOW CREATE TABLE t2; # Cleanup DROP TABLE t1, t2; +--echo # +--echo # MDEV-9853: WSREP says it cannot get fake InnoDB transaction ID +--echo # followed by segmentation fault +--echo # +CREATE TABLE `t1`(`c1` INT) ENGINE=INNODB; + +SET autocommit=0; +CREATE TABLE `t2` (`c1` INT) ENGINE=INNODB SELECT * FROM t1; +COMMIT; +SET autocommit=1; + +# Cleanup +DROP TABLE t1, t2; + +--source include/galera_end.inc --echo # End of tests diff --git a/sql/handler.cc b/sql/handler.cc index fb2921f9ba3..1866e1eafbc 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -6121,7 +6121,6 @@ void ha_fake_trx_id(THD *thd) else hton->fake_trx_id(hton, thd); ha_info_next= ha_info->next(); - ha_info->reset(); /* keep it conveniently zero-filled */ } DBUG_VOID_RETURN; } |