[MDEV-7908] assertion in innobase_release_savepoint Created: 2015-04-05  Updated: 2015-04-06  Resolved: 2015-04-06

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - InnoDB
Affects Version/s: 10.0, 10.1
Fix Version/s: 10.0.18

Type: Bug Priority: Major
Reporter: sbester1 Assignee: Jan Lindström (Inactive)
Resolution: Fixed Votes: 0
Labels: rollback, savepoint, verified, xa


 Description   

Version: '10.0.17-MariaDB'  socket: ''  port: 3306  mariadb.org binary distribution
InnoDB: Assertion failure in thread 40928 in file trx0trx.cc line 2525
 
mysqld.exe!my_parameter_handler()[my_init.c:259]
mysqld.exe!raise()[winsig.c:593]
mysqld.exe!abort()[abort.c:81]
mysqld.exe!innobase_release_savepoint()[ha_innodb.cc:4686]
mysqld.exe!ha_release_savepoint()[handler.cc:2133]
mysqld.exe!trans_release_savepoint()[transaction.cc:648]
mysqld.exe!mysql_execute_command()[sql_parse.cc:4452]
mysqld.exe!mysql_parse()[sql_parse.cc:6522]
mysqld.exe!dispatch_command()[sql_parse.cc:1303]
mysqld.exe!do_command()[sql_parse.cc:1003]
mysqld.exe!threadpool_process_request()[threadpool_common.cc:233]
mysqld.exe!io_completion_callback()[threadpool_win.cc:568]

How to repeat
--------------------

xa rollback 'xid2';
drop table if exists t1;
create table t1(a int)engine=innodb;
rollback;
xa start 'xid2';
insert into `t1` values (1);
savepoint `sv1`;
xa end 'xid2';
start transaction;
xa prepare 'xid2';
release savepoint `sv1`;



 Comments   
Comment by Elena Stepanova [ 2015-04-06 ]

Stack trace from 10.0 commit 323a7e93

2015-04-06 00:20:52 7f08241e2700  InnoDB: Assertion failure in thread 139672942421760 in file trx0trx.cc line 2525
 
#5  0x00007f082202b3e0 in *__GI_abort () at abort.c:92
#6  0x0000000000b86a3e in trx_start_if_not_started_low (trx=0x7f080e860b78) at 10.0/storage/xtradb/trx/trx0trx.cc:2525
#7  0x0000000000a082ee in innobase_release_savepoint (hton=0x7f081cbd2c70, thd=0x7f081baed070, savepoint=0x7f080e9840b8) at 10.0/storage/xtradb/handler/ha_innodb.cc:4682
#8  0x000000000086ebd7 in ha_release_savepoint (thd=0x7f081baed070, sv=0x7f080e984088) at 10.0/sql/handler.cc:2138
#9  0x00000000007a9d49 in trans_release_savepoint (thd=0x7f081baed070, name=...) at 10.0/sql/transaction.cc:650
#10 0x0000000000681ccf in mysql_execute_command (thd=0x7f081baed070) at 10.0/sql/sql_parse.cc:4452
#11 0x0000000000686de5 in mysql_parse (thd=0x7f081baed070, rawbuf=0x7f080e814088 "release savepoint `sv1`", length=23, parser_state=0x7f08241e1600) at 10.0/sql/sql_parse.cc:6517
#12 0x0000000000679811 in dispatch_command (command=COM_QUERY, thd=0x7f081baed070, packet=0x7f08182a3071 "release savepoint `sv1`", packet_length=23) at 10.0/sql/sql_parse.cc:1300
#13 0x0000000000678ba7 in do_command (thd=0x7f081baed070) at 10.0/sql/sql_parse.cc:996
#14 0x00000000007963b7 in do_handle_one_connection (thd_arg=0x7f081baed070) at 10.0/sql/sql_connect.cc:1375
#15 0x000000000079610a in handle_one_connection (arg=0x7f081baed070) at 10.0/sql/sql_connect.cc:1289
#16 0x0000000000cd32f2 in pfs_spawn_thread (arg=0x7f0810bf80f0) at 10.0/storage/perfschema/pfs.cc:1860
#17 0x00007f0823e1bb50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#18 0x00007f08220d195d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112

Comment by Jan Lindström (Inactive) [ 2015-04-06 ]

Tried following on 10.0:

--source include/have_innodb.inc
 
--error 1397
xa rollback 'xid2';
drop table if exists t1;
create table t1(a int)engine=innodb;
rollback;
xa start 'xid2';
insert into `t1` values (1);
savepoint `sv1`;
xa end 'xid2';
start transaction;
xa prepare 'xid2';
release savepoint `sv1`;

but got mysqltest: At line 12: query 'start transaction' failed: 1399: XAER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state

Comment by Elena Stepanova [ 2015-04-06 ]

use disable_abort_on_error instead of error 1397.

Generated at Thu Feb 08 07:23:11 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.