Bug #34529 | Crash on complex Falcon I_S select after ALTER .. PARTITION BY | ||
---|---|---|---|
Submitted: | 13 Feb 2008 16:52 | Modified: | 18 Jul 2008 15:48 |
Reporter: | Philip Stoev | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Information schema | Severity: | S2 (Serious) |
Version: | 6.0-BK | OS: | Any |
Assigned to: | Martin Hansson | CPU Architecture: | Any |
[13 Feb 2008 16:52]
Philip Stoev
[13 Feb 2008 16:55]
Philip Stoev
Test case for bug 34529
Attachment: bug34529.test (application/octet-stream, text), 536 bytes.
[13 Feb 2008 16:55]
Philip Stoev
stress test config file for bug 34529
Attachment: bug34529_run.txt (text/plain), 13 bytes.
[13 Feb 2008 16:59]
Philip Stoev
To reproduce, please place bug34529.test in mysqltest/t and then run: $ mysql-test-run.pl --record bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529 bug34529
[13 Feb 2008 21:50]
Kevin Lewis
The metadata being returned by Falcon is not at risk. This is a concurrency problem in the information schema code.
[13 Feb 2008 23:21]
Sveta Smirnova
Thank you for the report. Verified as descirbed.
[26 Feb 2008 14:38]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/42993 ChangeSet@1.2591, 2008-02-26 15:36:13+01:00, mhansson@riffraff.(none) +3 -0 Bug#34529: Crash on complex Falcon I_S select after ALTER .. PARTITION BY When swapping out heap I_S tables to disk, this is done after plan refinement. Thus, READ_RECORD::file will still point to the (deleted) heap handler at start of execution. This causes segmentation fault if join buffering is used and the query is a star query where the result is found to be empty before accessing some table. In this case that table has not been initialized (i.e. had its READ_RECORD re-initialized) before the cleanup routine tries to close the handler. Fixed by updating READ_RECORD::file when changing handler.
[27 Feb 2008 11:39]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/43043 ChangeSet@1.2591, 2008-02-27 12:29:47+01:00, mhansson@riffraff.(none) +3 -0 Bug#34529: Crash on complex Falcon I_S select after ALTER .. PARTITION BY When swapping out heap I_S tables to disk, this is done after plan refinement. Thus, READ_RECORD::file will still point to the (deleted) heap handler at start of execution. This causes segmentation fault if join buffering is used and the query is a star query where the result is found to be empty before accessing some table. In this case that table has not been initialized (i.e. had its READ_RECORD re-initialized) before the cleanup routine tries to close the handler. Fixed by updating READ_RECORD::file when changing handler.
[14 Mar 2008 10:32]
Martin Hansson
After discussion with gluh, it's been decided that this fix should go to 5.0, 5.1 and 6.0.
[19 Mar 2008 13:37]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/44222 ChangeSet@1.2597, 2008-03-19 14:32:28+01:00, mhansson@riffraff.(none) +3 -0 Bug#34529: Crash on complex Falcon I_S select after ALTER .. PARTITION BY When swapping out heap I_S tables to disk, this is done after plan refinement. Thus, READ_RECORD::file will still point to the (deleted) heap handler at start of execution. This causes segmentation fault if join buffering is used and the query is a star query where the result is found to be empty before accessing some table. In this case that table has not been initialized (i.e. had its READ_RECORD re-initialized) before the cleanup routine tries to close the handler. Fixed by updating READ_RECORD::file when changing handler.
[19 Mar 2008 13:40]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/44223 ChangeSet@1.2597, 2008-03-19 14:25:19+01:00, mhansson@riffraff.(none) +3 -0 Bug#34529: Crash on complex Falcon I_S select after ALTER .. PARTITION BY When swapping out heap I_S tables to disk, this is done after plan refinement. Thus, READ_RECORD::file will still point to the (deleted) heap handler at start of execution. This causes segmentation fault if join buffering is used and the query is a star query where the result is found to be empty before accessing some table. In this case that table has not been initialized (i.e. had its READ_RECORD re-initialized) before the cleanup routine tries to close the handler. Fixed by updating READ_RECORD::file when changing handler.
[19 Mar 2008 15:39]
Sergei Glukhov
ok to push
[25 Mar 2008 16:08]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/44413 ChangeSet@1.2603, 2008-03-25 19:44:27+04:00, gshchepa@host.loc +2 -0 information_schema.test, information_schema.result: Minor test case cleanup after bug#34529.
[28 Mar 2008 9:21]
Bugs System
Pushed into 5.1.24-rc
[28 Mar 2008 9:23]
Bugs System
Pushed into 5.0.60
[31 Mar 2008 13:58]
Bugs System
Pushed into 6.0.5-alpha
[1 Apr 2008 9:39]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/44724 ChangeSet@1.2598, 2008-03-28 09:28:01+01:00, mhansson@riffraff.(none) +1 -0 Bug#34529: Crash on complex Falcon I_S select after ALTER .. PARTITION BY Supplementary patch that makes the test case restore current database to 'test'.
[18 Jul 2008 15:48]
Paul DuBois
Noted in 5.0.60, 5.1.24, 6.0.5 changelogs. A server crash could occur if INFORMATION_SCHEMA tables built in memory were swapped out to disk during query execution.