diff options
author | Davi Arnaut <Davi.Arnaut@Sun.COM> | 2009-02-24 10:15:21 +0100 |
---|---|---|
committer | Davi Arnaut <Davi.Arnaut@Sun.COM> | 2009-02-24 10:15:21 +0100 |
commit | 11b20f27affcdaeb528feb2d08c920771bd875ef (patch) | |
tree | 8e8429934effaf89d764e72c59d699ac1e7b1be7 /include | |
parent | 982f88fc31ed95a0c7d445631335b1fb8ebe2630 (diff) | |
download | mariadb-git-11b20f27affcdaeb528feb2d08c920771bd875ef.tar.gz |
Bug#41110: crash with handler command when used concurrently with alter table
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.
There is no test case in this change set as the test depends on
a testing feature only available on 5.1 and later.
sql/sql_handler.cc:
Remove redundant reopen check.
Set errors even if reopening table.
Reset TABLE_LIST::table reference when the table is closed.
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions