diff options
author | Nirbhay Choubey <nirbhay@mariadb.com> | 2016-04-30 21:47:35 -0400 |
---|---|---|
committer | Nirbhay Choubey <nirbhay@mariadb.com> | 2016-04-30 21:47:35 -0400 |
commit | d6ba30890c6ae63b54e7f5321e7174bfbdd85367 (patch) | |
tree | 880b0bdf35137570cf885c2c11de396c500ea4e2 | |
parent | 9f5b285662ed8c13d6e87d8baf2f0ad4484d4a85 (diff) | |
download | mariadb-git-hf-10.1-mdev9853.tar.gz |
MDEV-9853: WSREP says it cannot get fake InnoDB transaction ID followed by segmentation faulthf-10.1-mdev9853
Ha_trx_info should not be reset in ha_fake_trx_id() as it is
later used during commit.
-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; } |