----- Original Message ----- From: "Tom Donovan" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, July 09, 2007 10:09 AM
Subject: Re: mod_authn_dbd - internal server error after certain idle time


Danie Qian wrote:


It is working a little better now after I set both DBDKeep and DBDMin to
zero. But I am still getting the internal server error from time to
time. Users usually can get pass the error by reloading the same page.
Here is the error messages in the log:

[Sat Jul 07 02:56:44 2007] [error] (20014)Internal error: DBD [mysql]
Error: Lost connection to MySQL server during query
[Sat Jul 07 02:56:44 2007] [error] [client 75.87.112.250]
authn_dbd_acquire: Error looking up josiahhansen in database


Unfortunately, DBD connection pooling (which is performed by the
apr-util reslist facility) presumes that connections last longer than
DBDTimeout, so just setting DBDKeep and DBDMin will not completely
eliminate the problem.

The proposed changes to the MySQL driver seem like a good idea and they
may help - but they will only help MySQL, not any other databases.

I entered a new APR bug and proposed a patch -
http://issues.apache.org/bugzilla/show_bug.cgi?id=42841
to change the interpretation of timeout so that it will work to avoid
this error.

With this patch, setting DBDTimout lower than the MySQL system variable
'wait_timeout' will ensure than expired connections never get used.


Assuming by DBDTimeout you mean DBDExptime in mod_dbd documentation where it implies a keepalive value, how about making mod_dbd to send something to mysql server so that its wait_timeout timer gets reset whenever the keepalive time elapses? Is this what the setting originally meant for? As I am pretty new to this listing and I apologize if I am not on the same page as you guys.

Reply via email to