[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bacula-devel] MySQL table 'batch' goes missing

On Sunday 06 January 2008 13:31, Michel Meyers wrote:
> Hello,
> I just had a job bail out with this message:
> 06-Jan 13:09 server-dir JobId 84: Fatal error: sql_create.c:732
> sql_create.c:732 insert INSERT INTO batch VALUES
> (578407,84,'/path/','filename','P4A ORB4 IGk B h h A Byp BAA Q BHf8G2
> BHQexl BHfb1A A A E','oJKoU70RjrXaw
> UdZeOLFQ') failed:
> Table 'bacula.batch' doesn't exist
> A short investigation shows that this happens due to the MySQL
> connection timing out and the table subsequently getting dropped.
> My question is: Wouldn't it be better to create a permanent table and
> just drop it when done? If multiple of these are needed concurrently,
> they could be created with a unique name, like bacula.batch-$jobid and
> then maybe add some cleanup code that purges any bacula.batch* tables
> upon director startup.
> This would make Bacula resilient to MySQL timeouts and avoid forcing
> users to change their global MySQL config. (e.g. I don't mind granting
> the Bacula user rights to create tables, I DO mind changing the MySQL
> timeout for everybody.)

I don't consider the above to be a Bacula bug, but rather a MySQL bug or a 
configuration problem.  Bacula assumes that none of the connections to 
database will timeout regardless of the idle time, and if they timeout, 
Bacula will most likely fail.  

I'm not convinced that using a non-temporary table would help since if the 
connection is dropped, on the next access, it will likely break, unless the 
client libraries automatically reconnect.  Yes, the name must be unique 
because there can be one table open for each job.

I'm not sure why Eric suggested opening a bug, perhaps because we could 
pragmatically set the timeout very large.

Another alternative is to turn off batch inserts, or possibly to switch to 
PostgreSQL where there have never been any silly default timeouts that I am 
aware of.



This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
Bacula-devel mailing list

This mailing list archive is a service of Copilotco.