Description:
When executing a concurrent workload which contains DDL, Falcon crashes as follows:
#0 0x00110402 in __kernel_vsyscall ()
#1 0x00bdc617 in pthread_kill () from /lib/libpthread.so.0
#2 0x0842ba5c in write_core (sig=11) at stacktrace.c:240
#3 0x082912a6 in handle_segfault (sig=11) at mysqld.cc:2313
#4 <signal handler called>
#5 0x084a10cb in Table::hasUncommittedRecords (this=0x0, transaction=0x0) at Table.cpp:3261
#6 0x08498697 in StorageTable::alterCheck (this=0xb74ffb18) at StorageTable.cpp:550
#7 0x0848be1e in StorageInterface::external_lock (this=0xac1dd48, thd=0xabd2960, lock_type=1) at ha_falcon.cpp:1852
#8 0x083bf8a2 in ha_partition::external_lock (this=0xabb87e0, thd=0xabd2960, lock_type=1) at ha_partition.cc:2480
#9 0x083b25e1 in handler::ha_external_lock (this=0xabb87e0, thd=0xabd2960, lock_type=1) at handler.cc:4568
#10 0x0828803d in lock_external (thd=0xabd2960, tables=0xab864a0, count=1) at lock.cc:391
#11 0x0828857a in mysql_lock_tables (thd=0xabd2960, tables=0xab86ca0, count=1, flags=4, need_reopen=0xa9acca9f) at lock.cc:290
#12 0x082e489a in lock_tables (thd=0xabd2960, tables=0xab86a80, count=1, need_reopen=0xa9acca9f) at sql_base.cc:5128
#13 0x082ecf45 in open_and_lock_tables_derived (thd=0xabd2960, tables=0xab86a80, derived=false) at sql_base.cc:4834
#14 0x082ac7c4 in simple_open_n_lock_tables (thd=0xabd2960, tables=0xab86a80) at mysql_priv.h:1471
#15 0x082ed0d0 in open_n_lock_single_table (thd=0xabd2960, table_l=0xab86a80, lock_type=TL_WRITE_ALLOW_READ) at sql_base.cc:4706
#16 0x083d8164 in mysql_alter_table (thd=0xabd2960, new_db=0xab86c70 "test", new_name=0x0, create_info=0xa9acd6e0, table_list=0xab86a80,
alter_info=0xa9acdba0, order_num=0, order=0x0, ignore=false) at sql_table.cc:6220
#17 0x082a2ce1 in mysql_execute_command (thd=0xabd2960) at sql_parse.cc:2393
#18 0x082a9e5e in mysql_parse (thd=0xabd2960, inBuf=0xab869c0 "ALTER TABLE inter1 DROP COLUMN filler", length=37, found_semicolon=0xa9ace280)
at sql_parse.cc:5410
#19 0x082aa871 in dispatch_command (command=COM_QUERY, thd=0xabd2960, packet=0xab99e79 "ALTER TABLE inter1 DROP COLUMN filler", packet_length=37)
at sql_parse.cc:921
#20 0x082ab9f7 in do_command (thd=0xabd2960) at sql_parse.cc:697
#21 0x08299d21 in handle_one_connection (arg=0xabd2960) at sql_connect.cc:1146
#22 0x00bd750b in start_thread () from /lib/libpthread.so.0
#23 0x00b18b2e in clone () from /lib/libc.so.6
the error log contains the following lines:
Warning at 'read lock with old write lock': Found lock of type 5 that is write and read locked
Warning at 'enter read_lock': Found lock of type 5 that is write and read locked
Warning at 'read lock with old write lock': Found lock of type 5 that is write and read locked
Warning at 'enter read_lock': Found lock of type 5 that is write and read locked
Warning at 'read lock with old write lock': Found lock of type 5 that is write and read locked
Warning at 'start of release lock': Found lock of type 5 that is write and read locked
How to repeat:
Simplifed test case will hopefully follow shortly.