a broken table can prevent other tables from opening

Bug #483714 reported by Vladimir Kolesnikov
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
PBXT
Fix Committed
Undecided
Vladimir Kolesnikov

Bug Description

If some table has broken meta-data files (.frm or .dfe) then an attempt to open any PBXT table right after server start-up will fail. This happens because the code in xt_tab_init_db tries to pre-open all existing tables and fails on the broken table. An obvious fix would be to catch and ignore such errors.

PS

It is important to test the case of FK-linked tables.

Related branches

Changed in pbxt:
status: New → Confirmed
assignee: nobody → Vladimir Kolesnikov (vkolesnikov)
Revision history for this message
Paul McCullagh (paul-mccullagh) wrote :

We could just log the failure. But as you say, if the table is has a foreign key then we would not know this. Cascaded operations would not be performed.

In addition, if the table is required for recovery, then recovery cannot be performed.

Revision history for this message
Vladimir Kolesnikov (vkolesnikov) wrote :

I think in case of FKs the whole chain should be discarded (we are just caching after all). But I'm the whole situation happens because DDL is not durable neither on server nor on engine side, so formally this looks more like a feature request. I can add a condition to bypass this test line for PBXT (we have already one anyway for DELETE IGNORE), if we don't want to waste time now for it.

Revision history for this message
Stewart Smith (stewart) wrote : Re: [Bug 483714] Re: a broken table can prevent other tables from opening

On Tue, Nov 17, 2009 at 08:45:34AM -0000, Vladimir Kolesnikov wrote:
> I think in case of FKs the whole chain should be discarded (we are just
> caching after all). But I'm the whole situation happens because DDL is
> not durable neither on server nor on engine side, so formally this looks
> more like a feature request. I can add a condition to bypass this test
> line for PBXT (we have already one anyway for DELETE IGNORE), if we
> don't want to waste time now for it.

DDL that is crash safe can be done in Drizzle pretty easily. If engine
data dictionary is crash safe, and can accommodate a blob for the
table proto (or stores enough information to recreate it), then it's
pretty trivial to do.

(and you'd be beating innodb to the punch :)
--
Stewart Smith

Changed in pbxt:
status: Confirmed → In Progress
Changed in pbxt:
status: In Progress → Fix Committed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.