-
Davi Arnaut authored
Bug#41112: crash in mysql_ha_close_table/get_lock_data with alter table The problem is that the server wasn't handling robustly failures to re-open a table during a HANDLER .. READ statement. If the table needed to be re-opened due to it's storage engine being altered to one that doesn't support HANDLER, a reference (dangling pointer) to a closed table could be left in place and accessed in later attempts to fetch from the table using the handler. Also, if the server failed to set a error message if the re-open failed. These problems could lead to server crashes or hangs. The solution is to remove any references to a closed table and to set a error if reopening a table during a HANDLER .. READ statement fails. mysql-test/include/handler.inc: Add test case for Bug#41110 and Bug#41112 mysql-test/r/handler_innodb.result: Add test case result for Bug#41110 and Bug#41112 mysql-test/r/handler_myisam.result: Add test case result for Bug#41110 and Bug#41112 sql/sql_handler.cc: Remove redundant reopen check. Set errors even if reopening table. Reset TABLE_LIST::table reference when the table is closed.
104cf08a