Bug #69085 Assertion `! is_set()' fails on use of corrupted partitioned ARCHIVE table
Submitted: 26 Apr 2013 19:03 Modified: 26 Apr 2013 20:14
Reporter: Elena Stepanova Email Updates:
Status: Verified Impact on me:
Category:MySQL Server: Archive storage engine Severity:S6 (Debug Builds)
Version:5.5-debug, 5.6-debug, 5.7.34 OS:Any
Assigned to: CPU Architecture:Any

[26 Apr 2013 19:03] Elena Stepanova
Version: '5.5.31-debug-log'  socket: '/data/repo/bzr/mysql-5.5/mysql-test/var/tmp/mysqld.1.sock'  port: 13000  Source distribution
mysqld: mysql-5.5/sql/sql_error.cc:387: void Diagnostics_area::set_eof_status(THD*): Assertion `! is_set()' failed.
18:56:10 UTC - mysqld got signal 6 ;

Program terminated with signal 6, Aborted.
#0  __pthread_kill (threadid=<optimized out>, signo=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:63
63	../nptl/sysdeps/unix/sysv/linux/pthread_kill.c: No such file or directory.
#0  __pthread_kill (threadid=<optimized out>, signo=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:63
#1  0x00000000008e172d in my_write_core (sig=6) at mysql-5.5/mysys/stacktrace.c:433
#2  0x0000000000767f0a in handle_fatal_signal (sig=6) at mysql-5.5/sql/signal_handler.cc:247
#3  <signal handler called>
#4  0x00007fe0443d4425 in __GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#5  0x00007fe0443d7b8b in __GI_abort () at abort.c:91
#6  0x00007fe0443cd0ee in __assert_fail_base (fmt=<optimized out>, assertion=0xb78e34 "! is_set()", file=0xb78d60 "mysql-5.5/sql/sql_error.cc", line=<optimized out>, function=<optimized out>) at assert.c:94
#7  0x00007fe0443cd192 in __GI___assert_fail (assertion=0xb78e34 "! is_set()", file=0xb78d60 "mysql-5.5/sql/sql_error.cc", line=387, function=0xb79260 "void Diagnostics_area::set_eof_status(THD*)") at assert.c:103
#8  0x00000000005dca6c in Diagnostics_area::set_eof_status (this=0x32d27f0, thd=0x32cfbb0) at mysql-5.5/sql/sql_error.cc:387
#9  0x0000000000571438 in my_eof (thd=0x32cfbb0) at mysql-5.5/sql/sql_class.h:2902
#10 0x000000000065c1d6 in mysqld_show_create (thd=0x32cfbb0, table_list=0x7fe034004cf0) at mysql-5.5/sql/sql_show.cc:771
#11 0x00000000005fc883 in mysql_execute_command (thd=0x32cfbb0) at mysql-5.5/sql/sql_parse.cc:2749
#12 0x0000000000604738 in mysql_parse (thd=0x32cfbb0, rawbuf=0x7fe034004c10 "show create table t1", length=20, parser_state=0x7fe0401e0190) at mysql-5.5/sql/sql_parse.cc:5627
#13 0x00000000005f8773 in dispatch_command (command=COM_QUERY, thd=0x32cfbb0, packet=0x3354f11 "", packet_length=20) at mysql-5.5/sql/sql_parse.cc:1037
#14 0x00000000005f7a88 in do_command (thd=0x32cfbb0) at mysql-5.5/sql/sql_parse.cc:773
#15 0x00000000006dfdd4 in do_handle_one_connection (thd_arg=0x32cfbb0) at mysql-5.5/sql/sql_connect.cc:853
#16 0x00000000006df808 in handle_one_connection (arg=0x32cfbb0) at mysql-5.5/sql/sql_connect.cc:772
#17 0x00000000008fe336 in pfs_spawn_thread (arg=0x3337540) at mysql-5.5/storage/perfschema/pfs.cc:1015
#18 0x00007fe044764e9a in start_thread (arg=0x7fe0401e1700) at pthread_create.c:308
#19 0x00007fe044491cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112

How to repeat:
--source include/have_archive.inc
--source include/have_partition.inc

--let $datadir = `SELECT @@datadir`

create table t1 (a int) engine=archive partition by hash(a);
show create table t1;
--remove_file $datadir/test/t1#P#p0.ARZ
show create table t1;
[26 Apr 2013 19:03] Elena Stepanova
I don't seriously expect it to be fixed, filing for the record -- sometimes users report obscure failures after server crashes involving archive tables, but they are basically impossible to investigate in production on release builds, maybe next time the filed bug will give us a clue.
[26 Apr 2013 20:14] MySQL Verification Team
Hello Elena,

Thank you for the report.
Verified as described.