Bug #45742 falcon_online_alter fails due to crash in MySQLCollation::makeKey
Submitted: 25 Jun 2009 10:52 Modified: 8 Aug 2009 17:14
Reporter: Olav Sandstå Email Updates:
Status: No Feedback Impact on me:
None 
Category:MySQL Server: Falcon storage engine Severity:S3 (Non-critical)
Version:6.0.12-alpha OS:Windows
Assigned to: CPU Architecture:Any

[25 Jun 2009 10:52] Olav Sandstå
Description:
The RQG test falcon_online_alter crashes in Value::getString() when this
is called from MySQLCollation::makeKey.

Call stack:

00404C2A    mysqld.exe!memcpy()[memcpy.asm:188]
005EF939    mysqld.exe!Value::getString()[value.cpp:256]
005DEC9E    mysqld.exe!MySQLCollation::makeKey()[mysqlcollation.cpp:69]
005DCF3D    mysqld.exe!Index::makeKey()[index.cpp:311]
005DD127    mysqld.exe!Index::makeMultiSegmentKey()[index.cpp:412]
005DDF45    mysqld.exe!Index::makeKey()[index.cpp:384]
005D2F0B    mysqld.exe!StorageDatabase::makeKey()[storagedatabase.cpp:899]
005C90B0    mysqld.exe!StorageTable::setIndexBound()[storagetable.cpp:333]
005C2005    mysqld.exe!StorageInterface::scanRange()[ha_falcon.cpp:1809]
005C2148    mysqld.exe!StorageInterface::fillMrrBitmap()[ha_falcon.cpp:1976]
005C344E    mysqld.exe!StorageInterface::multi_range_read_init()[ha_falcon.cpp:1959]
005A3AD0    mysqld.exe!QUICK_RANGE_SELECT::reset()[opt_range.cc:8477]
005002EA    mysqld.exe!join_init_read_record()[sql_select.cc:17082]
0051614F    mysqld.exe!sub_select()[sql_select.cc:16280]
00516FC6    mysqld.exe!do_select()[sql_select.cc:15844]
0051AD66    mysqld.exe!JOIN::exec()[sql_select.cc:2886]
0051D2A8    mysqld.exe!mysql_select()[sql_select.cc:3069]
0051D5DB    mysqld.exe!handle_select()[sql_select.cc:310]
0046E700    mysqld.exe!execute_sqlcom_select()[sql_parse.cc:4964]
00470276    mysqld.exe!mysql_execute_command()[sql_parse.cc:2172]
00474226    mysqld.exe!mysql_parse()[sql_parse.cc:5979]
00474B06    mysqld.exe!dispatch_command()[sql_parse.cc:1066]
004755EB    mysqld.exe!do_command()[sql_parse.cc:746]
0048DEAA    mysqld.exe!handle_one_connection()[sql_connect.cc:1146]
00799974    mysqld.exe!pthread_start()[my_winthread.c:61]
00816E9B    mysqld.exe!_callthreadstartex()[threadex.c:348]
00816F43    mysqld.exe!_threadstartex()[threadex.c:326]
77E6482F    kernel32.dll!GetModuleHandleA()

The query that is like run is:

thd->query at 0737F020=SELECT `pk` FROM `e` WHERE `int_nokey` < 1

How to repeat:
Seen once after running falcon_online_alter on Windows using the latest source version from mysql-6.0-falcon-team.
[25 Jun 2009 10:56] Olav Sandstå
Dump from core file containing parameter values and threads

Attachment: minidump.txt (text/plain), 81.18 KiB.

[25 Jun 2009 16:26] John Embretsen
Miguel,

I don't think this was clear from the bug description, but falcon_online_alter is a Random Query Generator test, so in order to run it you need to branch the mysql-test-extra-6.0 repository. Then:

cd mysql-test/gentest/

perl runall.pl \ 
    --basedir=$FALCON_BZR \ 
    --mysqld=--loose-innodb-lock-wait-timeout=5 \ 
    --mysqld=--table-lock-wait-timeout=5 \ 
    --mysqld=--loose-falcon-lock-wait-timeout=5 \ 
    --mysqld=--loose-falcon-debug-mask=2 \ 
    --mysqld=--skip-safemalloc \ 
    --grammar=conf/falcon_online_alter.yy \ 
    --reporters=Deadlock,ErrorLog,Backtrace,Recovery,WinPackage,Shutdown \ 
    --duration=1200 \ 
    --vardir=$FALCON_BZR/vardirs \ 
    --mysqld=--log-output=file \ 
    --queries=100000 \ 
    --engine=falcon

where the environment variable $FALCON_BZR refers to the top directory of a compiled mysql-6.0-falcon-team branch.
[8 Aug 2009 23:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".