Bug #81453 my_tell: Assertion `fd >= 0' failed.
Submitted: 17 May 2016 6:43 Modified: 17 May 2016 7:48
Reporter: Roel Van de Paar Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: DDL Severity:S6 (Debug Builds)
Version:5.5.49 OS:Any
Assigned to: CPU Architecture:Any

[17 May 2016 6:43] Roel Van de Paar
Description:
160517 16:28:26 [Note] /sda/mysql-5.5.49-linux-x86_64-debug/bin/mysqld: ready for connections.
Version: '5.5.49-debug'  socket: '/sda/mysql-5.5.49-linux-x86_64-debug/socket.sock'  port: 19744  MySQL Community Server (GPL)
mysqld: /git/mysql-server/mysys/my_seek.c:87: my_tell: Assertion `fd >= 0' failed.
06:28:27 UTC - mysqld got signal 6 ;

+bt
#0  0x00007fbf5fa2e741 in __pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:61
#1  0x00000000007de0c8 in my_write_core (sig=6) at /git/mysql-server/mysys/stacktrace.c:433
#2  0x00000000006a1088 in handle_fatal_signal (sig=6) at /git/mysql-server/sql/signal_handler.cc:247
#3  <signal handler called>
#4  0x00007fbf5ea4f5f7 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#5  0x00007fbf5ea50ce8 in __GI_abort () at abort.c:90
#6  0x00007fbf5ea48566 in __assert_fail_base (fmt=0x7fbf5eb98228 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0xa744e8 "fd >= 0", file=file@entry=0xb26e10 "/git/mysql-server/mysys/my_seek.c", line=line@entry=87, function=function@entry=0xb26ec9 <__PRETTY_FUNCTION__.10065> "my_tell") at assert.c:92
#7  0x00007fbf5ea48612 in __GI___assert_fail (assertion=assertion@entry=0xa744e8 "fd >= 0", file=file@entry=0xb26e10 "/git/mysql-server/mysys/my_seek.c", line=line@entry=87, function=function@entry=0xb26ec9 <__PRETTY_FUNCTION__.10065> "my_tell") at assert.c:101
#8  0x00000000007daf92 in my_tell (fd=-1, MyFlags=MyFlags@entry=0) at /git/mysql-server/mysys/my_seek.c:87
#9  0x00000000007ff700 in do_flush (s=s@entry=0x7fbec5f15340, flush=2) at /git/mysql-server/storage/archive/azio.c:635
#10 0x00000000007ff7bd in azflush (s=0x7fbec5f15340, flush=<optimized out>) at /git/mysql-server/storage/archive/azio.c:660
#11 0x00000000007fc23f in ha_archive::info (this=this@entry=0x7fbec5f06250, flag=flag@entry=64) at /git/mysql-server/storage/archive/ha_archive.cc:1608
#12 0x00000000007fc588 in ha_archive::update_create_info (this=0x7fbec5f06250, create_info=0x7fbf6003e2a0) at /git/mysql-server/storage/archive/ha_archive.cc:1578
#13 0x00000000005f61dd in mysql_prepare_alter_table (thd=thd@entry=0x7fbecabb0000, table=table@entry=0x7fbf5e2d7a00, create_info=create_info@entry=0x7fbf6003e2a0, alter_info=alter_info@entry=0x7fbf6003e200) at /git/mysql-server/sql/sql_table.cc:5747
#14 0x00000000005f9f2a in mysql_alter_table (thd=thd@entry=0x7fbecabb0000, new_db=0x7fbec5e25628 "test", new_name=0x7fbec5e250c8 "t0", create_info=create_info@entry=0x7fbf6003e2a0, table_list=table_list@entry=0x7fbec5e25100, alter_info=alter_info@entry=0x7fbf6003e200, order_num=0, order=0x0, ignore=false) at /git/mysql-server/sql/sql_table.cc:6249
#15 0x00000000007bcd6a in Alter_table_statement::execute (this=<optimized out>, thd=0x7fbecabb0000) at /git/mysql-server/sql/sql_alter.cc:106
#16 0x000000000058fd70 in mysql_execute_command (thd=thd@entry=0x7fbecabb0000) at /git/mysql-server/sql/sql_parse.cc:4456
#17 0x0000000000590ff6 in mysql_parse (thd=thd@entry=0x7fbecabb0000, rawbuf=<optimized out>, length=31, parser_state=parser_state@entry=0x7fbf6003f680) at /git/mysql-server/sql/sql_parse.cc:5780
#18 0x0000000000592843 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x7fbecabb0000, packet=packet@entry=0x7fbecab9aac1 "ALTER TABLE t0 ADD COLUMN c INT", packet_length=packet_length@entry=31) at /git/mysql-server/sql/sql_parse.cc:1038
#19 0x00000000005946cc in do_command (thd=0x7fbecabb0000) at /git/mysql-server/sql/sql_parse.cc:773
#20 0x000000000063c978 in do_handle_one_connection (thd_arg=thd_arg@entry=0x7fbecabb0000) at /git/mysql-server/sql/sql_connect.cc:862
#21 0x000000000063ca35 in handle_one_connection (arg=0x7fbecabb0000) at /git/mysql-server/sql/sql_connect.cc:781
#22 0x00007fbf5fa29dc5 in start_thread (arg=0x7fbf60040700) at pthread_create.c:308
#23 0x00007fbf5eb1021d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

How to repeat:
DROP DATABASE test;CREATE DATABASE test;USE test;
FLUSH TABLES WITH READ LOCK;
CREATE TEMPORARY TABLE t0(a INT)ENGINE=TokuDB;
ALTER TABLE t0 ADD COLUMN c0 INT COMMENT'';
insert INTO t0 values(0,0);
ALTER TABLE t0 ENGINE=ARCHIVE;
REPAIR TABLE t0;
INSERT INTO t0 SELECT 0;
ALTER TABLE t0 ADD COLUMN c INT;
[17 May 2016 7:48] MySQL Verification Team
Hello Roel,

Thank you for the report and test case.
Observed that 5.5.49(also, 5.5.51 daily build) debug build is
affected.

Thanks,
Umesh
[17 May 2016 7:49] MySQL Verification Team
I'm not able to repeat this issue on 5.6.30/5.7.12 release/debug builds
with the provided test case.