Thanks for the patch! The patch is correct, this was indeed forgotten in drop table. On Feb 25, 2011, at 3:52 PM, Michael Widenius wrote:
Hi!
We have got some failures of the following type in pushbuild:
pbxt.mysqlslap w2 [ fail ] Test ended at 2011-02-25 14:37:57
CURRENT_TEST: pbxt.mysqlslap mysqltest: At line 43: query 'drop database pbxt' failed: 1010: Error dropping database (can't rmdir './pbxt', errno: 39)
The reason is that at the end of the test there was left in the pbxt directory a file "repair-pending" with a reference to some old already deleted table. There was nothing else in the directory.
My assumption (and the code seams to agree with it) is that when you delete a table, you don't remove the table from the repair-pending file even if it had been recorded there.
Here is a patch that fixes this:
=== modified file 'storage/pbxt/src/table_xt.cc' --- storage/pbxt/src/table_xt.cc 2010-11-26 22:37:34 +0000 +++ storage/pbxt/src/table_xt.cc 2011-02-25 14:40:53 +0000 @@ -1755,6 +1755,8 @@ xtPublic void xt_drop_table(XTThreadPtr tab_close_mapped_files(self, tab);
tab_delete_table_files(self, tab_name, tab_id); + /* Remove table from "repair-pending" */ + xt_tab_table_repaired(tab);
ASSERT(xt_get_self() == self); if ((te_ptr = (XTTableEntryPtr) xt_sl_find(self, db->db_
Regards, Monty