| Bug #26484 | Falcon: recovery failure after more than 80,000 inserts | ||
|---|---|---|---|
| Submitted: | 19 Feb 2007 23:47 | Modified: | 1 Jul 2007 12:26 |
| Reporter: | Peter Gulutzan | Email Updates: | |
| Status: | Can't repeat | Impact on me: | |
| Category: | MySQL Server: Falcon storage engine | Severity: | S1 (Critical) |
| Version: | 5.2.4-falcon-alpha-debug | OS: | Linux (SUSE 10.0 / 64-bit) |
| Assigned to: | Jim Starkey | CPU Architecture: | Any |
[20 Feb 2007 1:56]
Hakan Küçükyılmaz
Verified as described.
| v | v2 |
+-------+--------+
| 49000 | 4900.0 |
+-------+--------+
1 row in set (2 min 49.21 sec)
+-------+--------+
| v | v2 |
+-------+--------+
| 50000 | 5000.0 |
+-------+--------+
1 row in set (2 min 52.54 sec)
ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql>
mysql> Bye
hakan@lu0010:~> mysql -uroot -pmysql50
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.2.4-falcon-alpha-debug Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
--> Assertion is hit
Backtrace is:
Serial Log possible gap: 50441 - 33037
Program received signal SIGILL, Illegal instruction.
[Switching to Thread 1076373856 (LWP 30248)]
0x0000002a95bf0479 in raise () from /lib64/tls/libc.so.6
(gdb) bt
#0 0x0000002a95bf0479 in raise () from /lib64/tls/libc.so.6
#1 0x0000000000863d7e in Error::debugBreak () at Error.cpp:93
#2 0x0000000000863d05 in Error::error (string=0xbae5f0 "assertion failed at line %d in file %s\n")
at Error.cpp:70
#3 0x0000000000863d63 in Error::assertionFailed (fileName=0xbbf7c4 "BDB.cpp", line=72)
at Error.cpp:77
#4 0x00000000008e44f8 in Bdb::mark (this=0x2a962afa78, transId=0) at BDB.cpp:72
#5 0x00000000008793df in IndexRootPage::indexMerge (dbb=0x2a96452ce8, indexId=29,
logRecord=0x4027ff50, transId=0) at IndexRootPage.cpp:914
#6 0x00000000008ce970 in SRLUpdateIndex::execute (this=0x4027ff50) at SRLUpdateIndex.cpp:155
#7 0x00000000008ce7f9 in SRLUpdateIndex::redo (this=0x4027ff50) at SRLUpdateIndex.cpp:127
#8 0x00000000008b57f9 in SerialLog::recover (this=0x2a962b5c30) at SerialLog.cpp:354
#9 0x00000000008536a4 in Database::openDatabase (this=0x2a962516e8,
filename=0x40280280 "/data/mysql/test.fts") at Database.cpp:603
#10 0x000000000084d2b2 in Connection::getDatabase (this=0x2a96452aa0, dbName=0x2a964527d4 "test",
dbFileName=0x40280280 "/data/mysql/test.fts", threads=0x2a96452830) at Connection.cpp:1643
#11 0x000000000084b1de in Connection::openDatabase (this=0x2a96452aa0, dbName=0x2a964527d4 "test",
filename=0x2a96452804 "./test.fts", account=0xba4037 "mysql", password=0xba4037 "mysql",
address=0x0, parent=0x2a96452830) at Connection.cpp:923
#12 0x000000000081cf5e in StorageDatabase::getOpenConnection (this=0x2a964523f0)
at StorageDatabase.cpp:144
#13 0x000000000081bdaa in StorageConnection::connect (this=0x2a964522c8) at StorageConnection.cpp:112
#14 0x000000000081f77b in StorageHandler::getStorageConnection (this=0x2a96251048,
path=0xf9a1b0 "./test", mySqlThread=0x0, createFlag=OpenDatabase) at StorageHandler.cpp:148
#15 0x0000000000815287 in NfsStorageTable::open (this=0xfea768, name=0xfd79e8 "./test/t20", mode=2,
test_if_locked=2) at ha_falcon.cpp:354
#16 0x000000000075a18b in handler::ha_open (this=0xfea768, table_arg=0xfd8b08,
name=0xfd79e8 "./test/t20", mode=2, test_if_locked=2) at handler.cc:1532
#17 0x00000000006b0937 in open_table_from_share (thd=0xfc54a8, share=0xfd7678, alias=0xfec820 "t20",
db_stat=39, prgflag=44, ha_open_flags=0, outparam=0xfd8b08, is_create_table=false)
at table.cc:1536
#18 0x00000000006a3c17 in open_unireg_entry (thd=0xfc54a8, entry=0xfd8b08, table_list=0x40281bc0,
alias=0xfec820 "t20", cache_key=0x40281300 "test", cache_key_length=9, mem_root=0x40281430,
flags=0) at sql_base.cc:2675
#19 0x00000000006a23b4 in open_table (thd=0xfc54a8, table_list=0x40281bc0, mem_root=0x40281430,
refresh=0x40281467, flags=0) at sql_base.cc:2058
#20 0x00000000006a432e in open_tables (thd=0xfc54a8, start=0x402814f0, counter=0x402814e8, flags=0)
at sql_base.cc:2922
#21 0x00000000006a4c0e in open_normal_and_derived_tables (thd=0xfc54a8, tables=0x40281bc0, flags=0)
at sql_base.cc:3254
#22 0x0000000000788307 in mysqld_list_fields (thd=0xfc54a8, table_list=0x40281bc0, wild=0xfec830 "")
at sql_show.cc:783
#23 0x0000000000671363 in dispatch_command (command=COM_FIELD_LIST, thd=0xfc54a8, packet=0xfe477d "",
packet_length=5) at sql_parse.cc:1958
#24 0x0000000000670528 in do_command (thd=0xfc54a8) at sql_parse.cc:1626
#25 0x000000000066f658 in handle_one_connection (arg=0xfc54a8) at sql_parse.cc:1232
#26 0x0000002a95ef2aff in start_thread () from /lib64/tls/libpthread.so.0
#27 0x0000002a95c7c4b3 in clone () from /lib64/tls/libc.so.6
#28 0x0000000000000000 in ?? ()
It get's a shared lock instead of an exclusive lock.
(gdb) f 4
#4 0x00000000008e44f8 in Bdb::mark (this=0x2a962afa78, transId=0) at BDB.cpp:72
72 ASSERT (lockType == Exclusive);
(gdb) p lockType
$1 = Shared
[23 Feb 2007 15:18]
Jim Starkey
Problem was corruption induced by incorrect index recovery. The specific problem was that left-most index page were propagating their initial index values (like other buckets) during recovery.
[26 Feb 2007 10:03]
Hakan Küçükyılmaz
Still failing. Now with different backtrace:
+-------+--------+
| v | v2 |
+-------+--------+
| 54000 | 5400.0 |
+-------+--------+
1 row in set (4 min 3.52 sec)
+-------+--------+
| v | v2 |
+-------+--------+
| 55000 | 5500.0 |
+-------+--------+
1 row in set (4 min 6.40 sec)
ERROR 2013 (HY000): Lost connection to MySQL server during query
5.2.4-falcon-alpha-debug
Backtrace after restarting mysqld:
Serial Log possible gap: 55706 - 40230
Program received signal SIGILL, Illegal instruction.
[Switching to Thread 1098242992 (LWP 8097)]
0xffffe410 in __kernel_vsyscall ()
(gdb) bt
#0 0xffffe410 in __kernel_vsyscall ()
#1 0x40182541 in raise () from /lib/tls/libc.so.6
#2 0x084580a6 in Error::debugBreak () at Error.cpp:93
#3 0x08458103 in Error::error (string=0x87651b8 "assertion failed at line %d in file %s\n") at Error.cpp:70
#4 0x08458193 in Error::assertionFailed (fileName=0x87669c1 "IndexRootPage.cpp", line=305) at Error.cpp:77
#5 0x08469c5b in IndexRootPage::findInsertionLeaf (dbb=0x404fab3c, indexId=29, indexKey=0x4175a094,
recordNumber=102117, transId=0) at IndexRootPage.cpp:305
#6 0x0846b967 in IndexRootPage::indexMerge (dbb=0x404fab3c, indexId=29, logRecord=0x4175b014, transId=0)
at IndexRootPage.cpp:863
#7 0x084bdb56 in SRLUpdateIndex::execute (this=0x4175b014) at SRLUpdateIndex.cpp:155
#8 0x084bdc39 in SRLUpdateIndex::redo (this=0x4175b014) at SRLUpdateIndex.cpp:127
#9 0x084a4dac in SerialLog::recover (this=0x41795614) at SerialLog.cpp:354
#10 0x0844ac46 in Database::openDatabase (this=0x4175e028, filename=0x4175b2a0 "/data/mysql-sap/test.fts")
at Database.cpp:603
#11 0x0843f7bd in Connection::getDatabase (this=0x404fa9dc, dbName=0x404fa7dc "test",
dbFileName=0x4175b2a0 "/data/mysql-sap/test.fts", threads=0x404fa820) at Connection.cpp:1643
#12 0x0843f9e9 in Connection::openDatabase (this=0x404fa9dc, dbName=0x404fa7dc "test",
filename=0x404fa800 "./test.fts", account=0x875d570 "mysql", password=0x875d570 "mysql", address=0x0,
parent=0x404fa820) at Connection.cpp:923
#13 0x08413c49 in StorageDatabase::getOpenConnection (this=0x404fa5d4) at StorageDatabase.cpp:144
#14 0x08410a25 in StorageConnection::connect (this=0x404fa514) at StorageConnection.cpp:112
#15 0x0841525a in StorageHandler::getStorageConnection (this=0x404fa028, path=0x8951808 "./test", mySqlThread=0x0,
createFlag=OpenDatabase) at StorageHandler.cpp:148
#16 0x0840daef in NfsStorageTable::open (this=0x89831c8, name=0x894a7f0 "./test/t20", mode=2, test_if_locked=2)
at ha_falcon.cpp:352
#17 0x08356db4 in handler::ha_open (this=0x89831c8, table_arg=0x8982720, name=0x894a7f0 "./test/t20", mode=2,
test_if_locked=2) at handler.cc:1532
#18 0x082b43e6 in open_table_from_share (thd=0x896b470, share=0x894a590, alias=0x8997600 "t20", db_stat=39,
prgflag=44, ha_open_flags=0, outparam=0x8982720, is_create_table=false) at table.cc:1536
#19 0x082ae443 in open_unireg_entry (thd=0x896b470, entry=0x8982720, table_list=0x8997608, alias=0x8997600 "t20",
cache_key=0x4175bf6e "test", cache_key_length=9, mem_root=0x4175c080, flags=0) at sql_base.cc:2675
#20 0x082b00e2 in open_table (thd=0x896b470, table_list=0x8997608, mem_root=0x4175c080, refresh=0x4175c0b7, flags=0)
at sql_base.cc:2059
#21 0x082b090c in open_tables (thd=0x896b470, start=0x4175c114, counter=0x4175c104, flags=0) at sql_base.cc:2922
#22 0x082b0d48 in open_and_lock_tables (thd=0x896b470, tables=0x8997608) at sql_base.cc:3213
#23 0x082769e4 in execute_sqlcom_select (thd=0x896b470, all_tables=0x8997608) at sql_parse.cc:5312
#24 0x0827c5f3 in mysql_execute_command (thd=0x896b470) at sql_parse.cc:2699
#25 0x0828428c in mysql_parse (thd=0x896b470, inBuf=0x8997460 "select count(*) from t20", length=24)
at sql_parse.cc:6162
#26 0x08284c97 in dispatch_command (command=COM_QUERY, thd=0x896b470, packet=0x898f401 "select count(*) from t20",
packet_length=25) at sql_parse.cc:1857
#27 0x08285cfe in do_command (thd=0x896b470) at sql_parse.cc:1626
#28 0x082861af in handle_one_connection (arg=0x896b470) at sql_parse.cc:1232
#29 0x40284297 in start_thread () from /lib/tls/libpthread.so.0
#30 0x4021937e in clone () from /lib/tls/libc.so.6
#31 0x4175dbb0 in ?? ()
(gdb) f 5
#5 0x08469c5b in IndexRootPage::findInsertionLeaf (dbb=0x404fab3c, indexId=29, indexKey=0x4175a094,
recordNumber=102117, transId=0) at IndexRootPage.cpp:305
305 ASSERT(page->level > 0 || bdb->lockType == Exclusive);
(gdb) p page->level
$1 = 0 '\0'
(gdb) p bdb->lockType
$2 = Shared
(gdb)
[7 Mar 2007 0:14]
Hakan Küçükyılmaz
With latest change set we are still hitting the same assertion:
Serial Log possible gap: 55717 - 46045
Program received signal SIGILL, Illegal instruction.
[Switching to Thread 1098242992 (LWP 22351)]
0xffffe410 in __kernel_vsyscall ()
(gdb) bt
#0 0xffffe410 in __kernel_vsyscall ()
#1 0x40182541 in raise () from /lib/tls/libc.so.6
#2 0x08458772 in Error::debugBreak () at Error.cpp:93
#3 0x084587cf in Error::error (string=0x8765538 "assertion failed at line %d in file %s\n") at Error.cpp:70
#4 0x0845885f in Error::assertionFailed (fileName=0x8766d31 "IndexRootPage.cpp", line=305) at Error.cpp:77
#5 0x0846a1b1 in IndexRootPage::findInsertionLeaf (dbb=0x404fab3c, indexId=29, indexKey=0x4175a094,
recordNumber=106315, transId=0) at IndexRootPage.cpp:305
#6 0x0846bec1 in IndexRootPage::indexMerge (dbb=0x404fab3c, indexId=29, logRecord=0x4175b014, transId=0)
at IndexRootPage.cpp:863
#7 0x084bdf5a in SRLUpdateIndex::execute (this=0x4175b014) at SRLUpdateIndex.cpp:155
#8 0x084be03d in SRLUpdateIndex::redo (this=0x4175b014) at SRLUpdateIndex.cpp:127
#9 0x084a51b0 in SerialLog::recover (this=0x41795614) at SerialLog.cpp:354
#10 0x0844b2ec in Database::openDatabase (this=0x4175e028, filename=0x4175b2a0 "/data/mysql-sap/test.fts")
at Database.cpp:604
#11 0x0843fda9 in Connection::getDatabase (this=0x404fa9dc, dbName=0x404fa7dc "test",
dbFileName=0x4175b2a0 "/data/mysql-sap/test.fts", threads=0x404fa820) at Connection.cpp:1643
#12 0x0843ffd5 in Connection::openDatabase (this=0x404fa9dc, dbName=0x404fa7dc "test",
filename=0x404fa800 "./test.fts", account=0x875d8d4 "mysql", password=0x875d8d4 "mysql", address=0x0,
parent=0x404fa820) at Connection.cpp:923
#13 0x08413f15 in StorageDatabase::getOpenConnection (this=0x404fa5d4) at StorageDatabase.cpp:146
#14 0x08410cc9 in StorageConnection::connect (this=0x404fa514) at StorageConnection.cpp:113
#15 0x08415526 in StorageHandler::getStorageConnection (this=0x404fa028, path=0x8950860 "./test", mySqlThread=0x0,
createFlag=OpenDatabase) at StorageHandler.cpp:148
#16 0x0840dd1b in NfsStorageTable::open (this=0x8982220, name=0x8949848 "./test/t20", mode=2, test_if_locked=2)
at ha_falcon.cpp:352
[6 Apr 2007 15:31]
Hakan Küçükyılmaz
Still fails with assertion:
#0 0x00002b923d2a12ac in raise () from /lib/libpthread.so.0
#1 0x000000000089e260 in Error::debugBreak () at Error.cpp:93
#2 0x000000000089e379 in Error::error (string=0xc14b48 "assertion failed at line %d in file %s\n")
at Error.cpp:70
#3 0x000000000089e40f in Error::assertionFailed (fileName=0xc166f0 "IndexRootPage.cpp", line=764)
at Error.cpp:77
#4 0x00000000008b2aed in IndexRootPage::redoIndexPage (dbb=0x2aaaab02f068, pageNumber=1563,
parentPage=103, level=0, priorPage=112, nextPage=1555, length=2031, data=0x2aaaad9be626 "")
at IndexRootPage.cpp:764
#5 0x000000000090e7ef in SRLIndexPage::pass2 (this=0x4087ed38) at SRLIndexPage.cpp:76
#6 0x00000000008f7c6b in SerialLog::recover (this=0x2aaaaaf976d8) at SerialLog.cpp:300
#7 0x000000000088ea4f in Database::openDatabase (this=0x2aaaaaf33190,
filename=0x4087f2b0 "/data/mysql-sap/test.fts") at Database.cpp:606
#8 0x00000000008819ee in Connection::getDatabase (this=0x2aaaab02ee20, dbName=0x2aaaab02dea4 "TEST",
dbFileName=0x4087f2b0 "/data/mysql-sap/test.fts", threads=0x2aaaab00d0f8) at Connection.cpp:1643
#9 0x0000000000882f93 in Connection::openDatabase (this=0x2aaaab02ee20, dbName=0x2aaaab02dea4 "TEST",
filename=0x2aaaab02e7ec "./test.fts", account=0xc0b087 "mysql", password=0xc0b087 "mysql",
address=0x0, parent=0x2aaaab00d0f8) at Connection.cpp:923
#10 0x00000000008517bf in StorageDatabase::getOpenConnection (this=0x2aaaab02e728)
at StorageDatabase.cpp:149
#11 0x000000000084e8a3 in StorageConnection::connect (this=0x2aaaab02ed10) at StorageConnection.cpp:130
#12 0x000000000085360f in StorageHandler::getStorageConnection (this=0x2aaaaadfe048,
tableShare=0x2aaaaafff1c8, mySqlThread=0x1012908, createFlag=OpenDatabase) at StorageHandler.cpp:676
Regards, Hakan
[13 Apr 2007 19:32]
Hakan Küçükyılmaz
Still failing:
Program received signal SIGILL, Illegal instruction.
[Switching to Thread 1082665312 (LWP 7809)]
0x00002afced5ac2ac in raise () from /lib/libpthread.so.0
(gdb) bt
#0 0x00002afced5ac2ac in raise () from /lib/libpthread.so.0
#1 0x00000000007c23f2 in Error::debugBreak () at Error.cpp:93
#2 0x00000000007c24ed in Error::error (string=<value optimized out>) at Error.cpp:70
#3 0x00000000007c254c in Error::assertionFailed (fileName=0x4 <Address 0x4 out of bounds>, line=7809)
at Error.cpp:77
#4 0x00000000007d0c75 in IndexRootPage::redoIndexPage (dbb=0x2aaaab0338d0, pageNumber=1800, parentPage=103,
level=<value optimized out>, priorPage=112, nextPage=1790, length=2031, data=0x2aaaada9e626 "")
at IndexRootPage.cpp:766
#5 0x000000000080aed5 in SRLIndexPage::pass2 (this=0x4087f088) at SRLIndexPage.cpp:76
#6 0x00000000007fc2a2 in SerialLog::recover (this=0x2aaaaafa3920) at SerialLog.cpp:303
#7 0x00000000007b646b in Database::openDatabase (this=0x2aaaaaf372d8,
filename=0x4087f3f0 "/data/mysql-sap/test.fts") at Database.cpp:607
#8 0x00000000007af09d in Connection::getDatabase (this=0x2aaaab033648, dbName=0x2aaaab032784 "TEST",
dbFileName=0x4087f3f0 "/data/mysql-sap/test.fts", threads=0x2aaaab00a190) at Connection.cpp:1644
#9 0x00000000007afd61 in Connection::openDatabase (this=0x2aaaab033648, dbName=0x2aaaab032784 "TEST",
filename=<value optimized out>, account=0x9d599c "mysql", password=0x9d599c "mysql", address=0x0,
parent=0x2aaaab00a190) at Connection.cpp:924
#10 0x000000000079098b in StorageDatabase::getOpenConnection (this=0x2aaaab032698) at StorageDatabase.cpp:149
#11 0x000000000078f42f in StorageConnection::connect (this=0x2aaaab033538) at StorageConnection.cpp:131
#12 0x0000000000792d62 in StorageHandler::getStorageConnection (this=0x2aaaaae00048,
tableShare=0x2aaaab0011c8, mySqlThread=0xe4d028, mySqlThdId=1, createFlag=OpenDatabase)
at StorageHandler.cpp:662
#13 0x000000000078c6d1 in NfsStorageTable::open (this=0xe79e58, name=0xe4c108 "./test/t20",
mode=<value optimized out>, test_if_locked=<value optimized out>) at ha_falcon.cpp:387
#14 0x00000000006e60f9 in handler::ha_open (this=0xe79e58, table_arg=0xe4b238, name=0xe4c108 "./test/t20",
mode=2, test_if_locked=<value optimized out>) at handler.cc:1527
#15 0x00000000006594d4 in open_table_from_share (thd=0xe4d028, share=0xe4bd98, alias=<value optimized out>,
db_stat=39, prgflag=<value optimized out>, ha_open_flags=0, outparam=0xe4b238, is_create_table=false)
at table.cc:1577
#16 0x0000000000650918 in open_unireg_entry (thd=0xe4d028, entry=0xe4b238, table_list=0x40881de0,
---Type <return> to continue, or q <return> to quit---q
alias=0xe7bfQuit
) at sql_base.cc:2899
#17 0x00000000006521e8 in open_table (thd=0xe4d028, table_list=0x40881de0, mem_root=0x40881630,
refresh=0x4088168f, flags=0) at sql_base.cc:2284
#18 0x0000000000652be2 in open_tables (thd=0xe4d028, start=0x408816e0, counter=0x40881704, flags=0)
at sql_base.cc:3180
#19 0x0000000000652f03 in open_normal_and_derived_tables (thd=0xe4d028, tables=0x40881de0, flags=0)
at sql_base.cc:3522
#20 0x00000000007111ae in mysqld_list_fields (thd=0xe4d028, table_list=0x40881de0, wild=0xe7bf20 "")
at sql_show.cc:783
#21 0x000000000061d81d in dispatch_command (command=<value optimized out>, thd=0xe4d028,
packet=0xe73e69 "t20", packet_length=5) at sql_parse.cc:994
#22 0x000000000061dafc in do_command (thd=0xe4d028) at sql_parse.cc:662
#23 0x000000000060f77e in handle_one_connection (arg=<value optimized out>) at sql_connect.cc:1089
#24 0x00002afced5a5f1a in start_thread () from /lib/libpthread.so.0
#25 0x00002afcedc5a602 in clone () from /lib/libc.so.6
#26 0x0000000000000000 in ?? ()
(gdb) f 4
#4 0x00000000007d0c75 in IndexRootPage::redoIndexPage (dbb=0x2aaaab0338d0, pageNumber=1800, parentPage=103,
level=<value optimized out>, priorPage=112, nextPage=1790, length=2031, data=0x2aaaada9e626 "")
at IndexRootPage.cpp:766
766 ASSERT(parent->level == indexPage->level + 1);
(gdb) p parent->level
$1 = 2 '\002'
(gdb) p indexPage->level
$2 = 0 '\0'
(gdb)
[14 Jun 2007 15:48]
Jim Starkey
No longer reproducable. Don't know when or how it got fixed, but it no longer seems to be a problem.
[15 Jun 2007 9:24]
Hakan Küçükyılmaz
Still failing as described on Linux 64-bit.
#4 0x00000000007a6935 in ~SyncObject (this=0x2b75950af030) at SyncObject.cpp:119
119 ASSERT(lockState == 0);
(gdb) p lockState
$1 = -1
Backtrace is
[New LWP 23562]
Exception: assertion failed at line 790 in file IndexRootPage.cpp
Bugcheck: assertion failed at line 119 in file SyncObject.cpp
Memory
Module Line In Use Space in Use Deleted Space deleted
SerialLog.cpp 785 19960 3353280 0 0
RecoveryObjects.cpp 136 856 61632 1 72
Dbb.cpp 345 0 0 2 576
SparseArray.h 92 0 0 1 432
Log.cpp 150 1 64 0 0
Thread.cpp 235 1 320 0 0
StorageHandler.cpp 529 1 168 0 0
StorageTableShare.cpp 60 1 280 0 0
StorageTableShare.cpp 64 1 160 0 0
JString.cpp 476 15 808 28 3056
Index.cpp 92 0 0 9 448
StorageHandler.cpp 360 1 368 0 0
StorageDatabase.cpp 95 1 360 0 0
StorageDatabase.cpp 113 1 136 0 0
StorageDatabase.cpp 115 1 608 0 0
Database.cpp 414 0 0 1 704
Dbb.cpp 79 0 0 1 224
Database.cpp 419 0 0 1 360
Dbb.cpp 166 1 552 0 0
Cache.cpp 69 1 40 0 0
Database.cpp 465 0 0 1 896
Database.cpp 467 0 0 1 608
Schedule.cpp 67 2 112 3 168
ScheduleElement.cpp 53 11 616 3 168
SerialLog.cpp 66 0 0 1 144
SerialLog.cpp 67 0 0 1 144
Database.cpp 471 0 0 1 64
Stack.cpp 114 0 0 21 1176
Database.cpp 1048 0 0 1 448
Database.cpp 1147 0 0 1 448
Syntax.cpp 345 0 0 30 7296
Index.cpp 96 0 0 9 448
Table.cpp 1880 0 0 7 648
Table.cpp 795 0 0 7 504
Database.cpp 993 0 0 7 5768
Table.cpp 790 0 0 7 1344
Table.cpp 166 0 0 53 7208
Table.cpp 177 0 0 9 2592
Table.cpp 406 0 0 7 560
Format.cpp 53 0 0 7 1072
Threads.cpp 105 0 0 2 640
Role.cpp 121 7 448 0 0
Syntax.cpp 149 0 0 2 80
TableSpaceManager.cpp 193 0 0 2 208
Database.cpp 475 0 0 1 216
Database.cpp 476 0 0 1 216
Database.cpp 477 0 0 1 152
Database.cpp 478 0 0 1 152
Database.cpp 479 0 0 1 984
Database.cpp 481 1 496 0 0
Database.cpp 483 1 856 0 0
Value.cpp 196 0 0 3 168
TableSpace.cpp 42 0 0 2 1408
SerialLog.cpp 693 0 0 19 3192
SerialLog.cpp 301 1 856 0 0
SerialLog.cpp 302 0 0 1 856
SerialLog.cpp 303 0 0 1 856
Cache.cpp 88 1 4198432 0 0
StorageHandler.cpp 86 1 2880 0 0
Connection.cpp 1646 1 4664 0 0
Cache.cpp 74 1 253992 0 0
Database.cpp 452 1 4208 0 0
SymbolManager.cpp 54 1 5040 0 0
Database.cpp 466 1 1696 0 0
RoleModel.cpp 109 1 1032 0 0
RoleModel.cpp 110 1 1032 0 0
Database.cpp 480 1 1080 0 0
Total 20875 7896216 258 46704
Number small hunks: 2
Number big hunks: 3
Unique sizes: 4
Free segments: 4
Free space: 1821288
Records
Module Line In Use Space in Use Deleted Space deleted
Total 0 0 0 0
Number small hunks: 0
Number big hunks: 0
Unique sizes: 0
Free segments: 0
Free space: 0
Program received signal SIGILL, Illegal instruction.
[Switching to LWP 23562]
0x00002b75939e1fed in ?? ()
(gdb) bt
#0 0x00002b75939e1fed in ?? ()
#1 0x00000000007d25c2 in Error::debugBreak () at Error.cpp:92
#2 0x00000000007d26bd in Error::error (string=<value optimized out>) at Error.cpp:69
#3 0x00000000007d271c in Error::assertionFailed (fileName=0x4 <Address 0x4 out of bounds>, line=23562)
at Error.cpp:76
#4 0x00000000007a6935 in ~SyncObject (this=0x2b75950af030) at SyncObject.cpp:119
#5 0x000000000082c843 in ~Bdb (this=0x2b75950aefc8) at BDB.cpp:65
#6 0x000000000082e670 in ~Cache (this=0x2b759524a198) at Cache.cpp:117
#7 0x00000000007c81bb in ~Database (this=0x2b7595048b98) at Database.cpp:572
#8 0x00000000007bed75 in Connection::getDatabase (this=0x2b75952499b0, dbName=0x2b75952496ac "falcon_master",
dbFileName=0x4007e1d0 "/data/mysql-sap/falcon_master.fts", threads=0x2b7595249718) at Connection.cpp:1656
#9 0x00000000007bfa11 in Connection::openDatabase (this=0x2b75952499b0,
dbName=0x2b75952496ac "falcon_master", filename=<value optimized out>, account=0x9f0efc "mysql",
password=0x9f0efc "mysql", address=0x0, parent=0x2b7595249718) at Connection.cpp:928
#10 0x000000000079ef83 in StorageDatabase::getOpenConnection (this=0x2b7595249538) at StorageDatabase.cpp:127
#11 0x00000000007a0ac7 in StorageHandler::initialize (this=0x2b7595048048) at StorageHandler.cpp:911
#12 0x00000000007a1a62 in StorageHandler::getStorageConnection (this=0x2b7595048048,
tableShare=0x2b75952491c8, mySqlThread=0xf49618, mySqlThdId=1, createFlag=OpenDatabase, tableSpaceMode=0)
at StorageHandler.cpp:576
#13 0x000000000079a4ca in StorageInterface::open (this=0xfa16f8, name=0xf94770 "./test/t20",
mode=<value optimized out>, test_if_locked=<value optimized out>) at ha_falcon.cpp:405
#14 0x00000000006ef29a in handler::ha_open (this=0xfa16f8, table_arg=0xf93b28, name=0xf94770 "./test/t20",
mode=2, test_if_locked=<value optimized out>) at handler.cc:1555
#15 0x000000000065fca5 in open_table_from_share (thd=0xf49618, share=0xf943e8, alias=<value optimized out>,
db_stat=39, prgflag=<value optimized out>, ha_open_flags=0, outparam=0xf93b28, is_create_table=false)
at table.cc:1625
#16 0x0000000000656d68 in open_unireg_entry (thd=0xf49618, entry=0xf93b28, table_list=0x40080d20,
alias=0xfa33b0 "t20", cache_key=0x40080330 "test", cache_key_length=9, mem_root=0x40080560, flags=0)
[26 Jun 2007 18:22]
Jim Starkey
I've tried it on both Windows and Linux without a recovery failure. If somebody can reproduce it, please re-open the bug with more detail.
[26 Jun 2007 21:05]
Hakan Küçükyılmaz
Still hits assertion:
+-------+--------+
| v | v2 |
+-------+--------+
| 58000 | 5800.0 |
+-------+--------+
1 row in set (1 min 29.33 sec)
+-------+--------+
| v | v2 |
+-------+--------+
| 59000 | 5900.0 |
+-------+--------+
1 row in set (1 min 32.06 sec)
killed mysqld
Exception: assertion failed at line 790 in file IndexRootPage.cpp
Bugcheck: assertion failed at line 119 in file SyncObject.cpp
Program received signal SIGILL, Illegal instruction.
[Switching to LWP 20462]
0x00002b645c77efed in ?? ()
(gdb) f 4
#4 0x00000000007a6f45 in ~SyncObject (this=0x2b645de4c318) at SyncObject.cpp:119
119 ASSERT(lockState == 0);
(gdb) p lockState
$1 = -1
$1 = -1
(gdb) bt
#0 0x00002b645c77efed in ?? ()
#1 0x00000000007d3af2 in Error::debugBreak () at Error.cpp:92
#2 0x00000000007d3be8 in Error::error (string=<value optimized out>) at Error.cpp:69
#3 0x00000000007d3c48 in Error::assertionFailed (fileName=0x4 <Address 0x4 out of bounds>, line=20462)
at Error.cpp:76
#4 0x00000000007a6f45 in ~SyncObject (this=0x2b645de4c318) at SyncObject.cpp:119
#5 0x000000000082e34f in ~Bdb (this=0x2b645de4c2b0) at BDB.cpp:65
#6 0x0000000000830180 in ~Cache (this=0x2b645dfe7198) at Cache.cpp:117
#7 0x00000000007c96eb in ~Database (this=0x2b645dde5b98) at Database.cpp:572
#8 0x00000000007c02b5 in Connection::getDatabase (this=0x2b645dfe69b0, dbName=0x2b645dfe66ac "falcon_master",
dbFileName=0x4007e1d0 "/data/mysql-sap/falcon_master.fts", threads=0x2b645dfe6718) at Connection.cpp:1656
#9 0x00000000007c0f51 in Connection::openDatabase (this=0x2b645dfe69b0, dbName=0x2b645dfe66ac "falcon_master",
filename=<value optimized out>, account=0x9f29fc "mysql", password=0x9f29fc "mysql", address=0x0,
parent=0x2b645dfe6718) at Connection.cpp:928
#10 0x000000000079f7d3 in StorageDatabase::getOpenConnection (this=0x2b645dfe6538) at StorageDatabase.cpp:127
#11 0x00000000007a0ff7 in StorageHandler::initialize (this=0x2b645dde5048) at StorageHandler.cpp:913
#12 0x00000000007a1f82 in StorageHandler::getStorageConnection (this=0x2b645dde5048, tableShare=0x2b645dfe61c8,
mySqlThread=0xf4b618, mySqlThdId=1, createFlag=OpenDatabase, tableSpaceMode=0) at StorageHandler.cpp:576
#13 0x000000000079abba in StorageInterface::open (this=0xfa3788, name=0xf96800 "./test/t20",
mode=<value optimized out>, test_if_locked=<value optimized out>) at ha_falcon.cpp:402
#14 0x00000000006ef81a in handler::ha_open (this=0xfa3788, table_arg=0xf95bb8, name=0xf96800 "./test/t20",
mode=2, test_if_locked=<value optimized out>) at handler.cc:1555
#15 0x0000000000660225 in open_table_from_share (thd=0xf4b618, share=0xf96478, alias=<value optimized out>,
db_stat=39, prgflag=<value optimized out>, ha_open_flags=0, outparam=0xf95bb8, is_create_table=false)
at table.cc:1625
#16 0x00000000006572e8 in open_unireg_entry (thd=0xf4b618, entry=0xf95bb8, table_list=0x40080d20,
alias=0xfa5440 "t20", cache_key=0x40080330 "test", cache_key_length=9, mem_root=0x40080560, flags=0)
at sql_base.cc:3301
[27 Jun 2007 18:08]
Jim Starkey
I can't reproduce it. I'm not arguing that it doesn't happen, just that I can't make it happen. I've tried it six times; typical result below. Before restarting the server, please zip the falcon*.* files and the schema directory in the data directory before restarting? That will at least give me something to work on. +--------+---------+ | v | v2 | +--------+---------+ | 101000 | 10100.0 | +--------+---------+ 1 row in set (2 min 24.65 sec) +--------+---------+ | v | v2 | +--------+---------+ | 102000 | 10200.0 | +--------+---------+ 1 row in set (2 min 26.95 sec) +--------+---------+ | v | v2 | +--------+---------+ | 103000 | 10300.0 | +--------+---------+ 1 row in set (2 min 29.14 sec) +--------+---------+ | v | v2 | +--------+---------+ | 104000 | 10400.0 | +--------+---------+ 1 row in set (2 min 31.92 sec) ERROR 2013 (HY000): Lost connection to MySQL server during query mysql> select count(*) from t20; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 1 Current database: test +----------+ | count(*) | +----------+ | 209258 | +----------+ 1 row in set (2.92 sec)
[1 Jul 2007 12:26]
Hakan Küçükyılmaz
Can't repeat anymore. I tried it six times and killed mysqld at 1) 50k 2) 50k 3) 40k 4) 110k 5) 170k 6) 410k Restarting and recovery worked without a crash. Best regards, Hakan

Description: I create a table with one unique numeric column. I create a procedure which inserts rows. After inserting more than 80,000 rows, I 'kill -9'. I restart mysqld and 'use' the database with the table. Crash. I have done this several times, with row counts of 20,000 (no problem), 40,000 (no problem), 80,000 (crash), 120,000 (crash), 200,000 (crash), 500,000 (crash). How to repeat: Create a table; create and run a procedure; as follows: delimiter // create table t20 (s1 decimal(10,1) unique) engine=falcon// create procedure p20 () begin declare v int default 1; declare v2 decimal(10,1) default 0.1; while v < 1000000 do if v mod 1000 = 0 then select v,v2; end if; insert into t20 values (v2),(-v2); select count(*) into @a from t20 where s1 = v2 or s1 = -v2; if @a <> 2 then select 'error',@a,v,v2; set v = 1000000; end if; set v = v + 1; set v2 = v2 + 0.1; end while; end// call p20()// Wait till the procedure displays a value greater than 40,000 (which indicates it has inserted more than 80,000 rows, since it inserts two at a time). Find out the process id with "ps -A | grep mysqld", and say "kill -9 (process id)". Restart mysqld. Restart client. Say "use X", where X = name of the database containing table t20. If crash doesn't occur immediately, say create database y;