[MDEV-13438] Assertion `(&(&LOCK_log)->m_mutex)->count > 0 && pthread_equal(pthread_self(), (&(&LOCK_log)->m_mutex)->thread)' failed in MYSQL_BIN_LOG::open or Assertion `info.dry_run || total_ha_2pc>(ulong)opt_bin_log' failed in ha_recover Created: 2017-08-03  Updated: 2017-08-29  Resolved: 2017-08-29

Status: Closed
Project: MariaDB Server
Component/s: XA
Affects Version/s: 10.0, 10.1, 10.2
Fix Version/s: 10.0.33, 10.1.27, 10.2.9, 10.3.2

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Andrei Elkin
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Relates
relates to MDEV-13269 Upgrade tests for InnoDB undo log Closed
relates to MDEV-13437 InnoDB fails to return error for XA C... Closed

 Description   

Note: The test case is similar to MDEV-13437, but the assertion failure is different, so I'm filing it separately.

--source include/have_innodb.inc
--source include/have_binlog_format_mixed.inc
CREATE TABLE t1 (i INT) ENGINE=InnoDB;
INSERT IGNORE INTO t1 VALUES (1);
--let $shutdown_timeout= 0
--let $restart_parameters= --innodb-force-recovery=0 --innodb-read-only=1 --tc-heuristic-recover=ROLLBACK
--source include/restart_mysqld.inc

On 10.1 and 10.2:

10.2 bcc10a5a447805ce64aa13ee6a037c1618219616

2017-08-03 17:30:32 140312487288896 [Note] Heuristic crash recovery mode
2017-08-03 17:30:32 140312487288896 [Note] Please restart mysqld without --tc-heuristic-recover
mysqld: /data/src/10.2/sql/log.cc:3364: bool MYSQL_BIN_LOG::open(const char*, enum_log_type, const char*, ulong, cache_type, ulong, bool, bool): Assertion `(&(&LOCK_log)->m_mutex)->count > 0 && pthread_equal(pthread_self(), (&(&LOCK_log)->m_mutex)->thread)' failed.
170803 17:30:32 [ERROR] mysqld got signal 6 ;
 
#7  0x00007f9d09c07ee2 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
#8  0x00005626af024a51 in MYSQL_BIN_LOG::open (this=0x5626b0222300 <mysql_bin_log>, log_name=0x5626b2422690 "master-bin", log_type_arg=LOG_BIN, new_name=0x0, next_log_number=0, io_cache_type_arg=WRITE_CACHE, max_size_arg=1073741824, null_created_arg=false, need_mutex=true) at /data/src/10.2/sql/log.cc:3364
#9  0x00005626af033daa in MYSQL_BIN_LOG::open (this=0x5626b0222300 <mysql_bin_log>, opt_name=0x5626b2422690 "master-bin") at /data/src/10.2/sql/log.cc:9321
#10 0x00005626aebdb594 in init_server_components () at /data/src/10.2/sql/mysqld.cc:5400
#11 0x00005626aebdc0e7 in mysqld_main (argc=149, argv=0x5626b22ec370) at /data/src/10.2/sql/mysqld.cc:5845
#12 0x00005626aebd0fc0 in main (argc=27, argv=0x7fff8d466c28) at /data/src/10.2/sql/main.cc:25

On 10.0:

10.0 60c9485a8e5ebf410d9fa60caa7937f3fe3ca9b8

mysqld: /data/src/10.0/sql/handler.cc:1877: int ha_recover(HASH*): Assertion `info.dry_run || total_ha_2pc>(ulong)opt_bin_log' failed.
170803 17:38:56 [ERROR] mysqld got signal 6 ;
 
#7  0x00007f0d09553ee2 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
#8  0x000000000083b3f8 in ha_recover (commit_list=0x0) at /data/src/10.0/sql/handler.cc:1877
#9  0x0000000000592617 in init_server_components () at /data/src/10.0/sql/mysqld.cc:4911
#10 0x0000000000593167 in mysqld_main (argc=138, argv=0x7f0d08c78ac0) at /data/src/10.0/sql/mysqld.cc:5371
#11 0x0000000000589c76 in main (argc=23, argv=0x7ffd9e2f6378) at /data/src/10.0/sql/main.cc:25


Generated at Thu Feb 08 08:05:36 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.