Hi Philip,

On zondag, apr 10, 2005, at 22:42 Europe/Amsterdam, Philip M. Gollucci wrote:

The auto_reconnect behavior was changed in DBD::mysql or DBI recently (< 6 months ago)... I forget from/to.. Read the Changes of each.

There's some info in DBD::mysql. Further investigation tells me this might have at least something to do with it. When the apache children pre-connect, the db handles have the 'mysql_auto_reconnect' set to 1 (it checks $ENV{MOD_PERL} and sets it to 1. However, the db handles that my script fetch (which should have been the same ones that were created during child creation, I do Apache::DBI->connect_on_init in startup.pl), no longer have that attribute set to 1, but set to 0.


The same check on the current version of my application gives me 1 for the mysql_auto_reconnect...

Ok, just installed DBD-mysql-2.9006 instead of DBD-mysql-2.9004, now the flag is set to 1, which is what I'd expect.

So the scenario with 2.9004 that I saw is: the mysql_auto_reconnect flag gets set to 1 during child creation correctly, but my webapps get a (cached) db handle from Apache::DBI with that flag set to 0. During the night the known "MySQL morning bug" happens: MySQL has dropped the connection because of idle time, and there's my "MySQL server has gone away" problem.

Thanks for pointing me in the right direction! I'm pretty sure this is what was happening, with 2.9006, the problem should be gone.

Regards,

Bas.



Reply via email to