mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 21:12:26 +01:00
19fed02ce9
Bug #39438: Testcase for Bug#39436 crashes on 5.1 in fil_space_get_latch Detailed revision comments: r2719 | vasil | 2008-10-03 18:17:28 +0300 (Fri, 03 Oct 2008) | 49 lines branches/5.1: Fix Bug#39438 Testcase for Bug#39436 crashes on 5.1 in fil_space_get_latch In ha_innobase::info() - do not try to get the free space for a tablespace which has been discarded with ALTER TABLE ... DISCARD TABLESPACE or if the .ibd file is missing for some other reason. ibd_file_missing and tablespace_discarded are manipulated only in row_discard_tablespace_for_mysql() and in row_import_tablespace_for_mysql() and the manipulation is protected/surrounded by row_mysql_lock_data_dictionary()/row_mysql_unlock_data_dictionary() thus we do the same in ha_innobase::info() when checking the values of those members to avoid race conditions. I have tested the code-path with UNIV_DEBUG and UNIV_SYNC_DEBUG. rb://20 Reviewed by: Inaam, Calvin Approved by: Heikki
27 lines
675 B
Text
27 lines
675 B
Text
#
|
|
# Bug#39438 Testcase for Bug#39436 crashes on 5.1 in fil_space_get_latch
|
|
# http://bugs.mysql.com/39438
|
|
#
|
|
# This test must be run with innodb_file_per_table=1 because the crash
|
|
# only occurs if that option is turned on and DISCARD TABLESPACE only
|
|
# works with innodb_file_per_table.
|
|
#
|
|
|
|
-- source include/have_innodb.inc
|
|
|
|
SET storage_engine=InnoDB;
|
|
|
|
# we care only that the following SQL commands do not crash the server
|
|
-- disable_query_log
|
|
-- disable_result_log
|
|
|
|
DROP TABLE IF EXISTS bug39438;
|
|
|
|
CREATE TABLE bug39438 (id INT) ENGINE=INNODB;
|
|
|
|
ALTER TABLE bug39438 DISCARD TABLESPACE;
|
|
|
|
# this crashes the server if the bug is present
|
|
SHOW TABLE STATUS;
|
|
|
|
DROP TABLE bug39438;
|