[Zope-dev] Re: [ZODB] probable small hole in transaction management

Dieter Maurer dieter at handshake.de
Fri Oct 6 16:07:36 EDT 2006


Recently, I reported:

Dieter Maurer wrote at 2006-9-24 16:28 +0200:
>ATT: Crosspost. Please reply to "zodb-dev at zope.org" ("Reply-To" header set).
>
>
>We recently have had a problem that seems to indicate a small
>hole in ZODB (3.4) transaction management.
> ...

I may have found the cause for this problem -- although I do not
yet understand it fully:

  The "ConnectionStateError" came from a
  "ZODB.Mount.MountedConnectionCloser.__call__".

  This indicated that we used an old style "ZODB.Mount.MountPoint".
  Those mountpoints do not garantee that they stick to the same
  root connection. If their cache contains references to other
  persistent objects in other storages (e.g. via volatile attributes),
  then a vital requirement for use of persistent objects
  may get violated: a persistent object may only be used
  in the context of its connection.
  Failure to observe this restriction may cause all kinds of
  nasty errors...

  The "temp_folder" proved to be the old style "MountPoint".
  Our storage is very old (back from 2001). Then, "temp_folder"
  still used the old style "MountPoint". Newer Zope versions
  use "Products.ZODBMountPoint.MountedObject.MountedObject"
  (which does not have the problem described above)
  *BUT* do not replace an old style by a new style mount point.
  A broken "temp_folder" may survive...



-- 
Dieter


More information about the Zope-Dev mailing list