Bug #37544 crash with create table with large size index/rows
Submitted: 20 Jun 2008 11:50 Modified: 12 Jul 2008 11:16
Reporter: Shane Bester (Platinum Quality Contributor) Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: Falcon storage engine Severity:S1 (Critical)
Version:6.0.5 OS:Any
Assigned to: Hakan Küçükyılmaz CPU Architecture:Any

[20 Jun 2008 11:50] Shane Bester
Description:
I downloaded the prelease version of mysql-noinstall-6.0.5-alpha-winx64.zip and got this crash when creating a table:

mysqld.exe!Error::error
mysqld.exe!Error::assertionFailed
mysqld.exe!Section::findNextRecord
mysqld.exe!Section::findNextRecord
mysqld.exe!Table::fetchNext
mysqld.exe!Table::populateIndex
mysqld.exe!Nfs::Statement::createIndex
mysqld.exe!Nfs::Statement::executeDDL
mysqld.exe!Nfs::Statement::execute
mysqld.exe!StorageDatabase::createIndex
mysqld.exe!StorageTableShare::createIndex
mysqld.exe!StorageInterface::createIndex
mysqld.exe!StorageInterface::create
mysqld.exe!ha_create_table
mysqld.exe!rea_create_table
mysqld.exe!mysql_create_table_no_lock
mysqld.exe!mysql_create_table
mysqld.exe!mysql_execute_command
mysqld.exe!mysql_parse
mysqld.exe!dispatch_command
mysqld.exe!do_command
mysqld.exe!handle_one_connection
mysqld.exe!pthread_start
mysqld.exe!_callthreadstart
mysqld.exe!_threadstart
kernel32.dll!BaseThreadStart

How to repeat:
the crashing statement was this:

create table `marker_27`(`c1` int auto_increment not null primary key,`c2` varchar(1024) character set ujis collate ujis_japanese_ci,`c3` bigint,`c4` bigint,key(`c2`(25)),key(`c2`(50)),key(`c2`(75)),key(`c2`(95)),key(`c2`(100)),
key(`c2`(110)),key(`c2`(120)),key(`c2`(128)),key(`c2`(150)),key(`c2`(175)),
key(`c2`(200)),key(`c2`(225)),key(`c2`(250)),key(`c2`(255)),key(`c2`(512)),
key(`c3`),key(`c3`,`c4`))COMMENT='corruption testing' engine=falcon;

but, when i rerun it it never crashed at all.  so, for now no testcase.
[20 Jun 2008 11:55] Hakan Küçükyılmaz
Shane,

please try to get a reproducible case.

Best regards,

Hakan
[20 Jun 2008 12:19] MySQL Verification Team
more info for the crash. still not repeated...

Attachment: bug37544_full_stack_trace.txt (text/plain), 4.55 KiB.

[20 Jun 2008 12:27] Philip Stoev
Shane,

My very wild guess would be that something from the previous queries you executed left Falcon data structures in a state that causes this bug to appear. It is not easily reproducible because Falcon does stuff in the background independent from the foreground queries. You may wish to try setting falcon_gopher_threads to zero or to one and also try to disable the various falcon_x_schedule options by setting them to an impossible crontab frequency, e.g. "1 1 1 1 1".
[20 Jun 2008 14:50] Ann Harrison
The assert in question is that the page fetched is a
section page.

	/* This is an intermediate page.  Find child page to recurse. */

	ASSERT (locatorPage->pageType == PAGE_sections);

Assertions on page type tend to fail after a recovery problem.  Was
there a crash and recovery before the error?
[21 Jun 2008 7:39] MySQL Verification Team
Ann, no crash before this one. Only thing i remember was I ran DROP DATABASE with a bunch of tables, few minutes before the crash.  Now I re-run the test with parameters Philip recommended, no crash happens.  I think rapid create/populate/drop tables will reproduce this.  I'll try it and upload more info.
[9 Jul 2008 15:15] Hakan Küçükyılmaz
Shane,

any luck with reproducing this crash?

Best regard,

Hakan
[12 Jul 2008 11:16] MySQL Verification Team
i've never been able to repeat this again.