diff options
author | Timothy Smith <timothy.smith@sun.com> | 2008-12-14 13:31:13 -0700 |
---|---|---|
committer | Timothy Smith <timothy.smith@sun.com> | 2008-12-14 13:31:13 -0700 |
commit | 19fed02ce9c8635c1451deb0f75ecffaa8593290 (patch) | |
tree | a5d2f232651a0c6d72dbe61e02dc108312ae0d3c /mysql-test/t/innodb_bug39438.test | |
parent | f4d38a034f6531f34b76f3fe97c4187c4f125cac (diff) | |
download | mariadb-git-19fed02ce9c8635c1451deb0f75ecffaa8593290.tar.gz |
Apply InnoDB snapshot innodb-5.1-ss2858, part 4. Fixes
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
Diffstat (limited to 'mysql-test/t/innodb_bug39438.test')
-rw-r--r-- | mysql-test/t/innodb_bug39438.test | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/mysql-test/t/innodb_bug39438.test b/mysql-test/t/innodb_bug39438.test new file mode 100644 index 00000000000..4dc3d957c39 --- /dev/null +++ b/mysql-test/t/innodb_bug39438.test @@ -0,0 +1,27 @@ +# +# 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; |