[Zope-dev] deadlock patch ?

Shane Hathaway shane@zope.com
Fri, 13 Jun 2003 09:44:33 -0400


Dirk Datzert wrote:
> Hi Zope developers,
> 
> I read that Zope 2.6.1 has a deadlock patch integrated.
> 
>       - Deadlock prevention code added.
> 
>         It was possible for earlier versions of ZODB to deadlock when
>         using multiple storages.  If multiple transactions committed
>         concurrently and both transactions involved two or more shared
>         storages, deadlock was possible.  This problem has been fixed
>         by introducing a sortKey() method to the transaction and
>         storage APIs that is used to define an ordering on transaction
>         participants.  This solution will prevent deadlocks provided
>         that all transaction participants that use locks define a
>         valid sortKey() method.  A warning is raised if a participant
>         does not define sortKey().  For backwards compatibility,
>         BaseStorage provides a sortKey() that uses __name__.
> 
> 
> Can I find anywhere (maybe CVS) this patch ? I want to look if I can
> backport this to Zope 2.3.3, since we
> detected such deadlocks on our server.

The change was too extensive to call it a patch.  It was almost a 
rewrite.  If you want to dig through the repository, look for all 
changes made to ZODB and ZEO between about October 31, 2002 and January 
3, 2003.  I imagine it would be less work to upgrade to a more recent 
version of Zope.

Shane