[MDEV-22607] Assertion `ha_info->ht() != binlog_hton' failed in MYSQL_BIN_LOG::unlog_xa_prepare Created: 2020-05-17  Updated: 2020-05-26  Resolved: 2020-05-26

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - Aria, XA
Affects Version/s: N/A
Fix Version/s: 10.5.4

Type: Bug Priority: Critical
Reporter: Elena Stepanova Assignee: Michael Widenius
Resolution: Fixed Votes: 0
Labels: None
Environment:

bb-10.5-aria de554b8781


Issue Links:
Relates
relates to MDEV-22430 Assertion `ha_info->ht() != binlog_ht... Closed

 Description   

--source include/have_innodb.inc
--source include/have_log_bin.inc
 
CREATE TABLE t1 (a INT) ENGINE=Aria;
INSERT INTO t1 VALUES (1),(2);
XA BEGIN 'x';
DELETE FROM t1;
XA END 'x';
XA PREPARE 'x';
 
# Cleanup
XA COMMIT 'x';
DROP TABLE t1;

bb-10.5-aria de554b8781

mariadbd: /data/src/bb-10.5-aria-clean/sql/log.cc:10134: virtual int MYSQL_BIN_LOG::unlog_xa_prepare(THD*, bool): Assertion `ha_info->ht() != binlog_hton' failed.
200518  0:08:27 [ERROR] mysqld got signal 6 ;
 
#7  0x00007f4bb73aaf12 in __GI___assert_fail (assertion=0x55d44ad2dcd6 "ha_info->ht() != binlog_hton", file=0x55d44ad29df0 "/data/src/bb-10.5-aria-clean/sql/log.cc", line=10134, function=0x55d44ad30500 <MYSQL_BIN_LOG::unlog_xa_prepare(THD*, bool)::__PRETTY_FUNCTION__> "virtual int MYSQL_BIN_LOG::unlog_xa_prepare(THD*, bool)") at assert.c:101
#8  0x000055d44a206096 in MYSQL_BIN_LOG::unlog_xa_prepare (this=0x55d44b91f120 <mysql_bin_log>, thd=0x7f4b78000b18, all=true) at /data/src/bb-10.5-aria-clean/sql/log.cc:10134
#9  0x000055d44a0c2a1d in ha_prepare (thd=0x7f4b78000b18) at /data/src/bb-10.5-aria-clean/sql/handler.cc:1377
#10 0x000055d449ff87fe in trans_xa_prepare (thd=0x7f4b78000b18) at /data/src/bb-10.5-aria-clean/sql/xa.cc:531
#11 0x000055d449d74602 in mysql_execute_command (thd=0x7f4b78000b18) at /data/src/bb-10.5-aria-clean/sql/sql_parse.cc:5802
#12 0x000055d449d7b1cb in mysql_parse (thd=0x7f4b78000b18, rawbuf=0x7f4b78013a70 "XA PREPARE 'x'", length=14, parser_state=0x7f4bb08e6520, is_com_multi=false, is_next_command=false) at /data/src/bb-10.5-aria-clean/sql/sql_parse.cc:7991
#13 0x000055d449d67577 in dispatch_command (command=COM_QUERY, thd=0x7f4b78000b18, packet=0x7f4b781b1809 "XA PREPARE 'x'", packet_length=14, is_com_multi=false, is_next_command=false) at /data/src/bb-10.5-aria-clean/sql/sql_parse.cc:1875
#14 0x000055d449d65caf in do_command (thd=0x7f4b78000b18) at /data/src/bb-10.5-aria-clean/sql/sql_parse.cc:1356
#15 0x000055d449f09675 in do_handle_one_connection (connect=0x55d44da606d8, put_in_cache=true) at /data/src/bb-10.5-aria-clean/sql/sql_connect.cc:1411
#16 0x000055d449f093dd in handle_one_connection (arg=0x55d44da606d8) at /data/src/bb-10.5-aria-clean/sql/sql_connect.cc:1313
#17 0x000055d44a43f59c in pfs_spawn_thread (arg=0x55d44da00858) at /data/src/bb-10.5-aria-clean/storage/perfschema/pfs.cc:2201
#18 0x00007f4bb93334a4 in start_thread (arg=0x7f4bb08e7700) at pthread_create.c:456
#19 0x00007f4bb7467d0f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97

If the same test case is run without binary logging, instead of the assertion failure it throws a warning upon XA PREPARE:

XA PREPARE 'x';
Warnings:
Warning	1030	Got error 131 "Command not supported by the engine" from storage engine Aria

Neither of it happens on current 10.5 main tree (69077dea).



 Comments   
Comment by Michael Widenius [ 2020-05-26 ]

Fixed in the original commit that caused the problem

Generated at Thu Feb 08 09:16:03 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.