[ZODB-Dev] transaction timeouts raise no exceptions and cause strange errors on clients

Chris Withers chris at simplistix.co.uk
Thu Nov 4 10:31:51 EDT 2010


On 04/11/2010 13:43, Jim Fulton wrote:
>> I'm curious:
>>
>> - Why is the timeout not logged at ERROR or even CRITICAL?
>
> Because it was considered to be neither.  It's also not a server error.

It is an erroneous condition; a transaction has taken long enough that a 
timeout has occurred. Thinking about it, it feels more like a 
TimeoutException should be raised, but then would the storage server 
clean things up properly?

>> - Is the "inconsistent state" warning genuine here?
>
> Yes.  You don't really know whether the transaction committed or not.
> It's much worse if multiple storages are involved.

...which of course, they are ;-)

>> - If that warning is genuine, is there any way the timeout could not
>>    leave the client in an inconsistent state?
>
> Absolutely.

My wording was poor:

If that warning is genuine, is there any way the timeout could be made 
to not leave the client in an inconsistent state?

> This is why I tend to view transaction timeouts as a last resort and
> set the limit
> much higher, 5 minutes.

Fair enough. Seems odd to have a feature which you seem to be suggestion 
should not be used...

Chris

-- 
Simplistix - Content Management, Batch Processing & Python Consulting
            - http://www.simplistix.co.uk


More information about the ZODB-Dev mailing list