On 03/05/2011 09:02, Shane Hathaway wrote:
>>> Maybe the query is killing MySQL, for whatever reason.
>> I don't think so, since I'd then expect all the other storages served by
>> that cluster to complain similarly.
> Not necessarily. RelStorage reconnects automatically.
...but logs, and I haven't seen any log entries for this. Even for the
thread which showed this error, which is weird...
> The reconnection
> is invisible unless the disconnect happens in the middle of a request,
> in which case RelStorage raises the error then automatically reconnects
> on the next request.
...or maybe not so weird.
>> However, it's literally just the thread handling this particular request
>> that shows the error...
> Two ideas:
> - MySQL is dropping the connection after a long period of inactivity,
> then RelStorage doesn't notice it's dropped until it's too late.
Don't think so, this is 100% reproducible, even after the Zope instance
has just been restarted...
> Connections that poll take defensive steps to prevent that, but maybe
> you're using a connection that does not poll.
I'm using whatever the default that you've specified is ;-)
> - A single MySQL thread is dying. (Is MySQL multithreaded?)
MySQL does indeed appear to be multithreaded, but I've seen no hard
evidence of thread death, although it's hard to spot...
Simplistix - Content Management, Batch Processing & Python Consulting
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org