[MDEV-4739] With SPIDER plugin installed, XA COMMIT/ROLLBACK after recovery causes assertion `! is_set()' failure in Diagnostics_area::set_ok_status Created: 2013-06-30  Updated: 2014-04-15  Resolved: 2014-04-15

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: 10.0.10
Fix Version/s: 10.0.11

Type: Bug Priority: Minor
Reporter: Elena Stepanova Assignee: Sergey Vojtovich
Resolution: Fixed Votes: 0
Labels: spider

Issue Links:
Relates
relates to MDEV-4438 Spider storage engine Closed

 Description   

If SPIDER plugin is installed, XA COMMIT (or ROLLBACK) fails after XA recovery:

#7  0x00007fca70c8d192 in __GI___assert_fail (assertion=0xe7044f "! is_set()", file=0xe70380 "10.0/sql/sql_error.cc", line=362, function=0xe708e0 "void Diagnostics_area::set_ok_status(THD*, ulonglong, ulonglong, const char*)") at assert.c:103
#8  0x00000000005fdd8a in Diagnostics_area::set_ok_status (this=0x35c9418, thd=0x35c4568, affected_rows_arg=0, last_insert_id_arg=0, message_arg=0x0) at 10.0/sql/sql_error.cc:362
#9  0x00000000005babfa in my_ok (thd=0x35c4568, affected_rows=0, id=0, message=0x0) at 10.0/sql/sql_class.h:3376
#10 0x0000000000629e0e in mysql_execute_command (thd=0x35c4568) at 10.0/sql/sql_parse.cc:4755
#11 0x000000000062d680 in mysql_parse (thd=0x35c4568, rawbuf=0x7fca38006e40 "XA COMMIT 'xa1'", length=15, parser_state=0x7fca70208500) at 10.0/sql/sql_parse.cc:6176
#12 0x0000000000620556 in dispatch_command (command=COM_QUERY, thd=0x35c4568, packet=0x35c9769 "XA COMMIT 'xa1'", packet_length=15) at 10.0/sql/sql_parse.cc:1274
#13 0x000000000061f9cc in do_command (thd=0x35c4568) at 10.0/sql/sql_parse.cc:983
#14 0x000000000073d820 in do_handle_one_connection (thd_arg=0x35c4568) at 10.0/sql/sql_connect.cc:1267
#15 0x000000000073d573 in handle_one_connection (arg=0x35c4568) at 10.0/sql/sql_connect.cc:1181
#16 0x00000000009d32b4 in pfs_spawn_thread (arg=0x33fc6b8) at 10.0/storage/perfschema/pfs.cc:1800
#17 0x00007fca71c73e9a in start_thread (arg=0x7fca70209700) at pthread_create.c:308
#18 0x00007fca70d51cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112

bzr version-info

revision-id: svoj@mariadb.org-20130627111848-b8kc0z60ywwpqavz
revno: 3762
branch-nick: 10.0

The failure happens even if SPIDER itself is not involved in the transaction. It's enough just to have the plugin installed:

--source include/have_innodb.inc
 
install soname 'ha_spider.so';
 
--connection default
eval CREATE TABLE t1 (a INT) ENGINE=InnoDB;
 
--connect (con1,localhost,root,,)
XA START 'xa1';
INSERT INTO t1 (a) VALUES (1),(2);
XA END 'xa1';
XA PREPARE 'xa1';
 
--connection default
--enable_reconnect
--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
restart
EOF
--shutdown_server 0
--source include/wait_until_disconnected.inc
--source include/wait_until_connected_again.inc
XA RECOVER;
XA COMMIT 'xa1';



 Comments   
Comment by Elena Stepanova [ 2014-04-11 ]

On a release build, it produces a weird error:

query 'XA COMMIT 'xa1'' failed: 1146: Table 'mysql.spider_xa' doesn't exist

Comment by Sergey Vojtovich [ 2014-04-15 ]

According to Kentoku it was fixed in Spider 3.2, which is available in MariaDB 10.0.11.

Generated at Thu Feb 08 06:58:46 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.