← Back to team overview

maria-developers team mailing list archive

Re: Fix for PBXT for problem with 'repair-pending'

 

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




References