Bug #36971 | Falcon crash in RecordVersion::fetchVersionRecursive on I_S query | ||
---|---|---|---|
Submitted: | 26 May 2008 14:43 | Modified: | 25 Sep 2008 20:40 |
Reporter: | Philip Stoev | Email Updates: | |
Status: | Can't repeat | Impact on me: | |
Category: | MySQL Server: Falcon storage engine | Severity: | S1 (Critical) |
Version: | 6.0-falcon-team | OS: | Any |
Assigned to: | Christopher Powers | CPU Architecture: | Any |
[26 May 2008 14:43]
Philip Stoev
[26 May 2008 15:33]
Philip Stoev
Test case for bug 36971
Attachment: bug36971.zip (application/x-zip-compressed, text), 505 bytes.
[26 May 2008 15:36]
Philip Stoev
To reproduce this bug, place the .txt file in mysql-test and the .test file in mysql-test/t. Then run: $ cd mysql-test $ ./mysql-test-run.pl --stress --stress-test-file=bug36971_run.txt \ --stress-test-duration=7200 --stress-threads=10 --skip-ndb A crash will happen within 1000 test cycles.
[4 Jun 2008 16:33]
Kevin Lewis
Chris, we notice that the transaction is zero. Maybe the system transaction ws busy and the pointer did not get assigned.
[19 Aug 2008 21:14]
Philip Stoev
> Philip, > > I'm trying to reproduce this bug on Linux and on Windows, but > mysql-test-run --stress does not run the test case on Windows. Any > suggestions? > > Chris Chris, The test case actually consists of 10 threads running those queries in a tight loop: SELECT * FROM INFORMATION_SCHEMA.TABLES INNER JOIN INFORMATION_SCHEMA.FALCON_TABLES ON (TABLES.TABLE_SCHEMA = FALCON_TABLES.SCHEMA_NAME AND TABLES.TABLE_NAME = FALCON_TABLES.TABLE_NAME); CREATE TABLE i_s1 (table_name CHAR(128), users integer) ENGINE = Falcon; DROP TABLE i_s1; CREATE TABLE i_s2 (`TABLESPACE` CHAR(128), users integer) ENGINE = Falcon; DROP TABLE i_s2; You can either use mysql-test-run.pl --stress to run those queries from a linux client to a Windows server, or wrap the queries in some sort of script that will fork 10 threads. What I can do for you is create such a script in Perl. Is that an acceptable solution?
[19 Aug 2008 22:45]
Christopher Powers
No need for a perl script. I can run to a remote Windows server. I did run the test case for 2 hours on Linux--no crash.
[20 Aug 2008 11:45]
Philip Stoev
The test case is no longer relevant because it uses INFORMATION_SCHEMA.FALCON_TABLES which does not exist anymore. If the test case is rewritten to not use INFORMATION_SCHEMA.FALCON_TABLES , that is, to do a join between two instances of INFORMATION_SCHEMA.TABLES, the crash does not occur. Therefore , an older Falcon tree will be required to reproduce it.
[25 Sep 2008 20:40]
Christopher Powers
I believe we do indeed have a problem with the I_S interface (getTableSpaceInfo, etc), however, this crash is unreproducible in the current codebase and the large number of recent fixes puts into question the value of debugging an older build. Fortunately, the stack trace is similar to the reproducible crash in Bug#35034, "Falcon crash on complex I_S query", so our attention is best directed there.