summaryrefslogtreecommitdiff
path: root/storage/myisam
diff options
context:
space:
mode:
authorDmitry Shulga <Dmitry.Shulga@oracle.com>2010-12-10 13:48:50 +0600
committerDmitry Shulga <Dmitry.Shulga@oracle.com>2010-12-10 13:48:50 +0600
commitdfb622726a7230b00886a183e4189671c27d5dd3 (patch)
tree1cc4c5bb18a55068f43d3d7921af3eab211c7faf /storage/myisam
parent7a404214e04e55505f0f3b5159070cb2bf41dbe9 (diff)
downloadmariadb-git-dfb622726a7230b00886a183e4189671c27d5dd3.tar.gz
Fixed bug#54486 - assert in my_seek, concurrent
DROP/CREATE SCHEMA, CREATE TABLE, REPAIR. The cause of assert was concurrent execution of DROP DATABASE and REPAIR TABLE where first statement deleted table's file .TMD at the same time as REPAIR TABLE tried to read file details from the old file that was just removed. Additionally was fixed trouble when DROP TABLE try delete all files belong to table being dropped at the same time when REPAIR TABLE statement has just deleted .TMD file. No regression test added because this would require adding a sync point to mysys/my_redel.c. Since this bug is not present in 5.5+, adding test coverage was considered unnecessary. The patch has been verified using RQG testing.
Diffstat (limited to 'storage/myisam')
-rw-r--r--storage/myisam/mi_check.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/storage/myisam/mi_check.c b/storage/myisam/mi_check.c
index 8e3864d1c44..935465e7edf 100644
--- a/storage/myisam/mi_check.c
+++ b/storage/myisam/mi_check.c
@@ -1741,6 +1741,8 @@ err:
MYF(MY_REDEL_MAKE_BACKUP): MYF(0))) ||
mi_open_datafile(info,share,name,-1))
got_error=1;
+
+ param->retry_repair= 0;
}
}
if (got_error)