Bug #28295 Falcon: Crash recovery failure after a few kills
Submitted: 8 May 2007 1:51 Modified: 8 Jul 2007 18:45
Reporter: Peter Gulutzan Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: Falcon storage engine Severity:S3 (Non-critical)
Version:6.0.1-alpha-debug OS:Linux (SUSE 10 64-bit)
Assigned to: CPU Architecture:Any

[8 May 2007 1:51] Peter Gulutzan
Description:
I have a procedure which creates a table with a
LONGBLOB and inserts random rows in a loop.

I kill the server while the procedure is running.
When I restart, the server may crash.
If it doesn't crash, I do the whole thing again.
After a few creates and calls and kills, the
crash always happens.

Compare Bug#26484, but to me this looks different
so I've reported it separately.

How to repeat:
Install a fresh datadir with mysql_install_db.

Create and call a procedure as follows:

delimiter //
drop table if exists tv//
drop procedure pv//
set @@autocommit=0//
create table tv (s1 int, s2 longblob) engine=falcon//
create procedure pv ()
begin
  declare v int default 0;
  while v < 150000 do
    if v mod 1000 = 0 then select v; end if;
    insert into tv values (v,repeat('b',rand()*100000));
    set v = v + 1;
  end while;
end//
call pv()//

After pv() displays '5000', use 'kill -9' to kill the server.

Restart the server.

Repeat the entire thing. Not just repeat 'call pv()',
repeat everything between 'delimiter //' and 'call pv()'
and once again use 'kill -9' to kill the server.

On my machine, Falcon never survives more than 5 repetitions.
The server crashes.

0x6af739 handle_segfault + 615
0x2aaaab16643a _end + -1442855822
0x924955 _ZN5Error5errorEPKcz + 279
0x93f6db _ZN2IO8readPageEP3Bdb + 227
0x9b33d9 _ZN5Cache9fetchPageEP3Dbbi8PageType8LockType + 653
0x9196d2 _ZN3Dbb9fetchPageEi8PageType8LockType + 76
0x91984a _ZN3Dbb11handoffPageEP3Bdbi8PageType8LockType + 44
0x974d50 _ZN7Section14fetchIndexPageEii8LockTypej + 224
0x974ed1 _ZN7Section12reInsertStubEij + 51
0x91c473 _ZN3Dbb12reInsertStubEiij + 175
0x99a80b _ZN16SRLUpdateRecords4redoEv + 355
0x97eee8 _ZN9SerialLog7recoverEv + 2428
0x916ae7 _ZN8Database12openDatabaseEPKc + 1085
0x90a5ec _ZN10Connection11getDatabaseEPKcS1_P7Threads + 350
0x90a871 _ZN10Connection12openDatabaseEPKcS1_S1_S1_S1_P7Threads + 407
0x8d924e _ZN14StorageHandler23getDictionaryConnectionEv + 550
0x8dbf4a _ZN17StorageTableShare4loadEv + 84
0x8dc69b _ZN17StorageTableShare12findDatabaseEv + 21
0x8d8a75 _ZN14StorageHandler20getStorageConnectionEP17StorageTableShareP3THDi10OpenOption + 105
0x8ce0d9 _ZN16StorageInterface4openEPKcij + 249
0x7d0f8b _ZN7handler7ha_openEP8st_tablePKcii + 283
0x713541 _Z21open_table_from_shareP3THDP14st_table_sharePKcjjjP8st_tableb + 2867
0x70c0ba _Z17open_unireg_entryP3THDP8st_tableP13st_table_listPKcPcjP11st_mem_rootj + 530
0x70e37f _Z10open_tableP3THDP13st_table_listP11st_mem_rootPbj + 2985
0x70ed11 _Z11open_tablesP3THDPP13st_table_listPjj + 813
0x70f148 _Z30open_normal_and_derived_tablesP3THDP13st_table_listj + 126
0x834289 _Z18mysqld_list_fieldsP3THDP13st_table_listPKc + 129
0x6cd374 _Z16dispatch_command19enum_server_commandP3THDPcj + 4140
0x6ce166 _Z10do_commandP3THD + 550
0x6bc2aa handle_one_connection + 282
[8 May 2007 13:47] MySQL Verification Team
Thank you for the bug report. Verified on FC 6.0 32-bit.
[8 Jul 2007 18:45] Hakan Küçükyılmaz
Tried six times in a row as described. No crash.

Best regards,

Hakan