[ python-Bugs-1000693 ] Interrupt safety

noreply at pgfoundry.org noreply at pgfoundry.org
Fri Jul 28 16:46:15 UTC 2006


Bugs item #1000693, was opened at 2006-07-28 09:46
You can respond by visiting: 
http://pgfoundry.org/tracker/?func=detail&atid=442&aid=1000693&group_id=1000094

Category: PQ/PQueue
Group: To do
Status: Open
Resolution: None
Priority: 4
Submitted By: James Pye (jwp)
Assigned to: James Pye (jwp)
Summary: Interrupt safety

Initial Comment:
Currently, if an exception(keyboardinterrupt, etc) is raised while state is being changed, the state effectively becomes corrupt. No attempt is made to keep things in order. The problem here is that interrupts can occur at arbitrary times; making transactions interrupt safe would provide for a much more robust client.

Trapping signals in an application is the normal response here. However, considering this is a module that may be used in arbitrary applications, it doesn't seem to be an appropriate measure to take. Not to mention, it also [albeit, with some safety] assumes that no other kind of interruptions can occur.

The proposed solution is to apply some 2PC to client transaction objects themselves. Having a mechanism to validate that a message has been processed will allow client implementations to know whether to send the "current" message to the transaction again or to move on.

This will likely lead to a major change to how transactions work, but I doubt that any API changes will occur.

----------------------------------------------------------------------

You can respond by visiting: 
http://pgfoundry.org/tracker/?func=detail&atid=442&aid=1000693&group_id=1000094


More information about the Python-general mailing list