[MDEV-4527] TokuDB: Server crashes on ROLLBACK TO SAVEPOINT after the 2nd savepoint Created: 2013-05-14  Updated: 2023-04-27

Status: Open
Project: MariaDB Server
Component/s: Storage Engine - TokuDB
Affects Version/s: 10.1, 10.2, 10.3, 10.4
Fix Version/s: 10.4

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Sergei Golubchik
Resolution: Unresolved Votes: 0
Labels: not-10.5, not-10.6, tokudb

Issue Links:
Relates
relates to MDEV-4507 Include TokuDB storage engine Closed

 Description   

#3  <signal handler called>
#4  0x00007f161f948668 in tokudb_rollback_to_savepoint (hton=0x7f1614044e40, thd=0x39fcdc0, savepoint=0x7f1614007528) at 5.5-hf-tokudb/storage/tokudb/hatoku_hton.cc:1000
#5  0x00000000007cc9b1 in ha_rollback_to_savepoint (thd=0x39fcdc0, sv=0x7f16140074c8) at 5.5-hf-tokudb/sql/handler.cc:1858
#6  0x0000000000723d8a in trans_rollback_to_savepoint (thd=0x39fcdc0, name=...) at 5.5-hf-tokudb/sql/transaction.cc:479
#7  0x0000000000614373 in mysql_execute_command (thd=0x39fcdc0) at 5.5-hf-tokudb/sql/sql_parse.cc:3852
#8  0x0000000000619204 in mysql_parse (thd=0x39fcdc0, rawbuf=0x7f161408ab38 "rollback to savepoint sp1", length=25, parser_state=0x7f161fcf1500) at 5.5-hf-tokudb/sql/sql_parse.cc:5760
#9  0x000000000060c8f4 in dispatch_command (command=COM_QUERY, thd=0x39fcdc0, packet=0x3a6dad1 "rollback to savepoint sp1", packet_length=25) at 5.5-hf-tokudb/sql/sql_parse.cc:1068
#10 0x000000000060bb35 in do_command (thd=0x39fcdc0) at 5.5-hf-tokudb/sql/sql_parse.cc:794
#11 0x0000000000712025 in do_handle_one_connection (thd_arg=0x39fcdc0) at 5.5-hf-tokudb/sql/sql_connect.cc:1266
#12 0x0000000000711a0c in handle_one_connection (arg=0x39fcdc0) at 5.5-hf-tokudb/sql/sql_connect.cc:1181
#13 0x0000000000960094 in pfs_spawn_thread (arg=0x3a40df0) at 5.5-hf-tokudb/storage/perfschema/pfs.cc:1015
#14 0x00007f162b3dee9a in start_thread (arg=0x7f161fcf2700) at pthread_create.c:308
#15 0x00007f162a6d2cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112

bzr version-info

revision-id: holyfoot@askmonty.org-20130514121908-d6tp4zsdkim0q4dg
revno: 3768
branch-nick: 5.5-hf-tokudb

Test case:

install soname 'ha_tokudb.so';
 
drop table if exists t_toku;
create table t_toku (pk int primary key) engine=TokuDB;
begin;
insert into t_toku values (1),(2);
savepoint sp1;
insert into t_toku values (3);
savepoint sp2;
insert into t_toku values (4);
rollback to savepoint sp1;
commit;
 
select * from t_toku;
drop table t_toku;



 Comments   
Comment by Elena Stepanova [ 2013-05-14 ]

Not reproducible on MariaDB-5.5.30-TokuDB-7.0.1

Comment by Sergei Golubchik [ 2013-05-17 ]

probably fixed by other my changes

Comment by Roel Van de Paar [ 2020-10-05 ]

A testrun picked up on this bug in a 10.4 run in combination with XA

USE test;
INSTALL PLUGIN tokudb SONAME 'ha_tokudb.so';
CREATE TEMPORARY TABLE t (c1 INT,c2 INT,c3 INT) ENGINE=InnoDB;
CREATE TABLE t (a INT) ENGINE=TokuDB;
DROP TABLE t;
XA START 'a';
INSERT INTO t VALUES (1);
SAVEPOINT sp1;
SAVEPOINT sp2;
ROLLBACK TO sp1;

Leads to:

10.4.15 de76bebc5798313e3798a35e02468e42254dd608 (Debug)

Core was generated by `/test/MD150920-mariadb-10.4.15-linux-x86_64-dbg/bin/mysqld --no-defaults --core'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=11)
    at ../sysdeps/unix/sysv/linux/pthread_kill.c:57
[Current thread is 1 (Thread 0x14e92b720700 (LWP 3067192))]
(gdb) bt
#0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=11) at ../sysdeps/unix/sysv/linux/pthread_kill.c:57
#1  0x0000558947a72308 in my_write_core (sig=sig@entry=11) at /test/10.4_dbg/mysys/stacktrace.c:386
#2  0x00005589471f83c8 in handle_fatal_signal (sig=11) at /test/10.4_dbg/sql/signal_handler.cc:343
#3  <signal handler called>
#4  tokudb_rollback_to_savepoint (hton=0x14e92846a270, thd=0x14e903815070, savepoint=0x14e903874110) at /test/10.4_dbg/storage/tokudb/hatoku_hton.cc:1161
#5  0x00005589471fe7b4 in ha_rollback_to_savepoint (thd=thd@entry=0x14e903815070, sv=sv@entry=0x14e903874088) at /test/10.4_dbg/sql/handler.cc:2350
#6  0x0000558947094733 in trans_rollback_to_savepoint (thd=thd@entry=0x14e903815070, name=<optimized out>) at /test/10.4_dbg/sql/transaction.cc:652
#7  0x0000558946f48423 in mysql_execute_command (thd=thd@entry=0x14e903815070) at /test/10.4_dbg/sql/sql_parse.cc:5687
#8  0x0000558946f4c237 in mysql_parse (thd=thd@entry=0x14e903815070, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x14e92b71f460, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.4_dbg/sql/sql_parse.cc:7896
#9  0x0000558946f4eac7 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x14e903815070, packet=packet@entry=0x14e903857071 "ROLLBACK TO sp1", packet_length=packet_length@entry=15, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.4_dbg/sql/sql_parse.cc:1834
#10 0x0000558946f52502 in do_command (thd=0x14e903815070) at /test/10.4_dbg/sql/sql_parse.cc:1352
#11 0x000055894708011c in do_handle_one_connection (connect=connect@entry=0x14e928435790) at /test/10.4_dbg/sql/sql_connect.cc:1412
#12 0x000055894708023c in handle_one_connection (arg=0x14e928435790) at /test/10.4_dbg/sql/sql_connect.cc:1316
#13 0x000014e92a91e6db in start_thread (arg=0x14e92b720700) at pthread_create.c:463
#14 0x000014e929a98a3f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

10.4.15 de76bebc5798313e3798a35e02468e42254dd608 (Optimized)

Core was generated by `/test/MD150920-mariadb-10.4.15-linux-x86_64-opt/bin/mysqld --no-defaults --core'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=11)
    at ../sysdeps/unix/sysv/linux/pthread_kill.c:57
[Current thread is 1 (Thread 0x1554867cd700 (LWP 3077357))]
(gdb) bt
#0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=11) at ../sysdeps/unix/sysv/linux/pthread_kill.c:57
#1  0x000055f22927b537 in my_write_core (sig=sig@entry=11) at /data/10.4_opt/mysys/stacktrace.c:386
#2  0x000055f228c5161a in handle_fatal_signal (sig=11) at /data/10.4_opt/sql/signal_handler.cc:343
#3  <signal handler called>
#4  tokudb_rollback_to_savepoint (hton=0x15545ecfb1c8, thd=0x15545ec12008, savepoint=0x15545ec460a8) at /data/10.4_opt/storage/tokudb/hatoku_hton.cc:1161
#5  0x000055f228c55787 in ha_rollback_to_savepoint (thd=thd@entry=0x15545ec12008, sv=sv@entry=0x15545ec46020) at /data/10.4_opt/sql/handler.cc:2350
#6  0x000055f228b3656c in trans_rollback_to_savepoint (thd=thd@entry=0x15545ec12008, name=<optimized out>) at /data/10.4_opt/sql/transaction.cc:652
#7  0x000055f228a40b55 in mysql_execute_command (thd=thd@entry=0x15545ec12008) at /data/10.4_opt/sql/sql_parse.cc:5687
#8  0x000055f228a46b7a in mysql_parse (thd=0x15545ec12008, rawbuf=<optimized out>, length=15, parser_state=0x1554867cc4d0, is_com_multi=<optimized out>, is_next_command=<optimized out>) at /data/10.4_opt/sql/sql_parse.cc:7896
#9  0x000055f228a48fd5 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x15545ec12008, packet=packet@entry=0x15545ec32009 "ROLLBACK TO sp1", packet_length=packet_length@entry=15, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /data/10.4_opt/sql/sql_parse.cc:1834
#10 0x000055f228a4a754 in do_command (thd=0x15545ec12008) at /data/10.4_opt/sql/sql_parse.cc:1352
#11 0x000055f228b27e1e in do_handle_one_connection (connect=connect@entry=0x155483432748) at /data/10.4_opt/sql/sql_connect.cc:1412
#12 0x000055f228b27edd in handle_one_connection (arg=0x155483432748) at /data/10.4_opt/sql/sql_connect.cc:1316
#13 0x00001554859cb6db in start_thread (arg=0x1554867cd700) at pthread_create.c:463
#14 0x0000155484b45a3f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Bug confirmed present in:
MariaDB: 10.1.47 (dbg), 10.1.47 (opt), 10.2.34 (dbg), 10.2.34 (opt), 10.3.25 (dbg), 10.3.25 (opt), 10.4.15 (dbg), 10.4.15 (opt)

Bug confirmed not present in:
MariaDB: 10.5.6 (dbg), 10.5.6 (opt), 10.6.0 (dbg), 10.6.0 (opt)
MySQL: 5.5.62 (dbg), 5.5.62 (opt), 5.6.49 (dbg), 5.6.49 (opt), 5.7.31 (dbg), 5.7.31 (opt), 8.0.21 (dbg), 8.0.21 (opt)

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