Commit a537c106 authored by Mikael Ronström's avatar Mikael Ronström

merge

parents 43c55e9a e9b8feef
...@@ -59,3 +59,20 @@ show binlog events from <binlog_start>; ...@@ -59,3 +59,20 @@ show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # use `test`; DROP TEMPORARY TABLE IF EXISTS `t1` /* generated by server */ master-bin.000001 # Query # # use `test`; DROP TEMPORARY TABLE IF EXISTS `t1` /* generated by server */
############################################### ###############################################
#
# Bug#12346411 SQL/LOG.CC:6509: ASSERTION `PREPARED_XIDS > 0' FAILED
#
DROP TABLE IF EXISTS t1, t2;
CREATE TABLE t1(a INT PRIMARY KEY) engine=innodb;
CREATE TABLE t2(a INT) engine=myisam;
INSERT INTO t1 VALUES (1);
START TRANSACTION;
INSERT INTO t2 VALUES (1);
INSERT IGNORE INTO t1 VALUES (1);
COMMIT;
INSERT INTO t1 VALUES (2);
START TRANSACTION;
INSERT INTO t2 VALUES (2);
UPDATE IGNORE t1 SET a=1 WHERE a=2;
COMMIT;
DROP TABLE t1, t2;
...@@ -77,3 +77,29 @@ DROP TEMPORARY TABLE t1; ...@@ -77,3 +77,29 @@ DROP TEMPORARY TABLE t1;
-- echo ############################################### -- echo ###############################################
-- source include/show_binlog_events.inc -- source include/show_binlog_events.inc
-- echo ############################################### -- echo ###############################################
--echo #
--echo # Bug#12346411 SQL/LOG.CC:6509: ASSERTION `PREPARED_XIDS > 0' FAILED
--echo #
--disable_warnings
DROP TABLE IF EXISTS t1, t2;
--enable_warnings
CREATE TABLE t1(a INT PRIMARY KEY) engine=innodb;
CREATE TABLE t2(a INT) engine=myisam;
INSERT INTO t1 VALUES (1);
START TRANSACTION;
INSERT INTO t2 VALUES (1);
INSERT IGNORE INTO t1 VALUES (1);
COMMIT;
INSERT INTO t1 VALUES (2);
START TRANSACTION;
INSERT INTO t2 VALUES (2);
UPDATE IGNORE t1 SET a=1 WHERE a=2;
COMMIT;
DROP TABLE t1, t2;
...@@ -6506,8 +6506,11 @@ int TC_LOG_BINLOG::unlog(ulong cookie, my_xid xid) ...@@ -6506,8 +6506,11 @@ int TC_LOG_BINLOG::unlog(ulong cookie, my_xid xid)
{ {
DBUG_ENTER("TC_LOG_BINLOG::unlog"); DBUG_ENTER("TC_LOG_BINLOG::unlog");
mysql_mutex_lock(&LOCK_prep_xids); mysql_mutex_lock(&LOCK_prep_xids);
DBUG_ASSERT(prepared_xids > 0); // prepared_xids can be 0 if the transaction had ignorable errors.
if (--prepared_xids == 0) { DBUG_ASSERT(prepared_xids >= 0);
if (prepared_xids > 0)
prepared_xids--;
if (prepared_xids == 0) {
DBUG_PRINT("info", ("prepared_xids=%lu", prepared_xids)); DBUG_PRINT("info", ("prepared_xids=%lu", prepared_xids));
mysql_cond_signal(&COND_prep_xids); mysql_cond_signal(&COND_prep_xids);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment