[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