diff --git a/mysql-test/include/get_binlog_dump_thread_id.inc b/mysql-test/include/get_binlog_dump_thread_id.inc index 680807cc3c6..830a88b5db6 100644 --- a/mysql-test/include/get_binlog_dump_thread_id.inc +++ b/mysql-test/include/get_binlog_dump_thread_id.inc @@ -3,9 +3,7 @@ drop table if exists t999; --enable_warnings create temporary table t999 (f int); -### --replace_result $MYSQL_TEST_DIR "." #failed on solaris etc bug#18906 ---disable_query_log +--replace_result $MYSQLTEST_VARDIR "." eval LOAD DATA INFILE "$MYSQLTEST_VARDIR/tmp/bl_dump_thread_id" into table t999; ---enable_query_log let $id = `select f from t999`; drop table t999; diff --git a/mysql-test/r/rpl_temporary.result b/mysql-test/r/rpl_temporary.result index c1b65e7007b..bc5cc262079 100644 --- a/mysql-test/r/rpl_temporary.result +++ b/mysql-test/r/rpl_temporary.result @@ -78,6 +78,7 @@ create temporary table t4 (f int); create table t5 (f int); drop table if exists t999; create temporary table t999 (f int); +LOAD DATA INFILE "./tmp/bl_dump_thread_id" into table t999; drop table t999; insert into t4 values (1); kill `select id from information_schema.processlist where command='Binlog Dump'`; diff --git a/sql/log.cc b/sql/log.cc index b93b5319ffb..5c67443d238 100644 --- a/sql/log.cc +++ b/sql/log.cc @@ -3122,7 +3122,11 @@ DBUG_skip_commit: rotate binlog, if necessary. */ if (commit_event->get_type_code() == XID_EVENT) - thread_safe_increment(prepared_xids, &LOCK_prep_xids); + { + pthread_mutex_lock(&LOCK_prep_xids); + prepared_xids++; + pthread_mutex_unlock(&LOCK_prep_xids); + } else rotate_and_purge(RP_LOCK_LOG_IS_ALREADY_LOCKED); }