Bug #47338 | assertion in handler::ha_external_lock | ||
---|---|---|---|
Submitted: | 15 Sep 2009 20:29 | Modified: | 23 Nov 2010 2:58 |
Reporter: | Matthias Leich | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Optimizer | Severity: | S3 (Non-critical) |
Version: | 6.0 | OS: | Any |
Assigned to: | Tor Didriksen | CPU Architecture: | Any |
Tags: | locking, mrr, optimizer_switch |
[15 Sep 2009 20:29]
Matthias Leich
[16 Sep 2009 5:59]
Philip Stoev
Matthias, the backtrace says that MRR is involved, so please try your test case with set @@optimizer_use_mrr='disable'. If the bug goes away, please tag it as MRR and set category to Optimizer, lead to Timour. For future testing runs, please use --mysqld=--init-file=/path/to/rqg/init/no_mrr.sql or something to disable MRR for the entire test run. Philip Stoev
[16 Sep 2009 9:36]
Matthias Leich
Thank you for the hint Philip. If I add a SET optimizer_use_mrr='disable'; at the beginning of the test than the crash disappears. So I have a workaround.
[18 Nov 2009 7:57]
Tor Didriksen
Simplified test case: CREATE TEMPORARY TABLE t1 (f2 INT, f1 INT, PRIMARY KEY (f1)) ENGINE = MyISAM; INSERT t1 ( f1 ) VALUES ( 5 ); INSERT t1 ( f1 ) VALUES ( 6 ); ALTER TABLE t1 ENGINE = MyISAM; ANALYZE TABLE t1; SELECT f1,f2 FROM t1 A WHERE f1 BETWEEN 0 AND 1;
[18 Nov 2009 8:09]
Tor Didriksen
There's (at least) two separate bugs here. - The combination CREATE TEMPORARY TABLE, ALTER TABLE, ANALYZE TABLE, yields ERROR HY000: Incorrect key file for table ........ - Cleanup after an underlying error is not handled gracefully in DsMrr_impl::dsmrr_init() and we segfault a bit later. I'm fixing the second bug now, opening another bug for the first one.
[18 Nov 2009 8:16]
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/90793 3714 Tor Didriksen 2009-11-18 Bug #47338 assertion in handler::ha_external_lock Cleanup after an underlying error was not handled gracefully in DsMrr_impl::dsmrr_init() @ mysql-test/r/analyse.result Add test case. @ mysql-test/t/analyse.test Add test case. @ mysys/my_open.c Dont call DBUG_RETURN(functio_call()) it makes DEBUG output very confusing. @ sql/handler.cc Avoid double delete of member variable 'h2' Dont call DBUG_RETURN(functio_call()) it makes DEBUG output very confusing.
[18 Nov 2009 9:21]
Konstantin Osipov
Approved on IRC, no comments, OK to push.
[19 Nov 2009 14:37]
Tor Didriksen
Pushed to: bzr+ssh://bk-internal.mysql.com/bzrroot/server/mysql-6.0-codebase-bugfixing/ revision-id: tor.didriksen@sun.com-20091118081550-l8gv8m2lodyil1uv
[20 Nov 2009 12:58]
Bugs System
Pushed into 6.0.14-alpha (revid:kostja@sun.com-20091120124947-yi6h2jbgw0kbciwm) (version source revid:tor.didriksen@sun.com-20091118081550-l8gv8m2lodyil1uv) (merge vers: 6.0.14-alpha) (pib:13)
[23 Nov 2009 20:16]
Paul DuBois
I am unsure how to describe this bug. Could you suggest a sentence or two?
[24 Nov 2009 7:57]
Tor Didriksen
re: how to describe the bug. Initialization of MRR (multi range read) did not handle underlying errors (e.g. corrupt index file) gracefully, and might crash the server.
[5 May 2010 15:00]
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/107546 3134 Tor Didriksen 2010-05-05 Backport of Bug #47338 assertion in handler::ha_external_lock
[16 Aug 2010 6:36]
Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100816062819-bluwgdq8q4xysmlg) (version source revid:alik@sun.com-20100816062612-enatdwnv809iw3s9) (pib:20)
[13 Nov 2010 16:17]
Bugs System
Pushed into mysql-trunk 5.6.99-m5 (revid:alexander.nozdrin@oracle.com-20101113155825-czmva9kg4n31anmu) (version source revid:vasil.dimov@oracle.com-20100629074804-359l9m9gniauxr94) (merge vers: 5.6.99-m4) (pib:21)
[23 Nov 2010 2:58]
Paul DuBois
Bug does not appear in any released 5.6.x version. No 5.6.1 changelog entry needed.