[Mimedefang] MySQL Greylisting - server has gone away

Chris Myers chris at by-design.net
Fri Apr 8 17:21:47 EDT 2005


----- Original Message ----- 
From: "Paul Murphy" <pmurphy at ionixpharma.com>
To: <mimedefang at lists.roaringpenguin.com>
Sent: Friday, April 08, 2005 5:12 AM
Subject: [Mimedefang] MySQL Greylisting - server has gone away


> Having looked into it again in more detail, I've discovered what appears 
> to be
> an interesting correlation.  We reap our slaves after 200 requests are
> processed, which for us means that each slave runs for 8-14 hours of real 
> time
> as our volumes are low.  What appears to be happening is that the normal 
> reap of
> one slave causes a different slave to lose its database connection.  The
> attached log extract showing slave events provides some support for this,
> although the time between reap of slave A and death of slave B is highly
> dependent on mail volume.  The greylisting code is also attached for info.
>
> My theory is that the cleanup code for reaping a slave is somehow taking 
> out the
> wrong database connection handle.  Does this make sense?  We initialise 
> the
> connection in filter_initialize:

Use connect_cached() and call it just before calling your greylisting code, 
rather than once in filter_initialize().  Read the manpage for DBI for more 
details, but it works great.

Be nice to MySQL and do "$dbh->disconnect() if $dbh;" in filter_cleanup().

I'm occasionally seeing unexpected disconnects from MySQL in my filters and 
this handles makes it a total non-problem.

Chris Myers
Networks By Design 




More information about the MIMEDefang mailing list