[Zope] ZEO, sockets and Session bug
Dieter Maurer
dieter at handshake.de
Mon Jun 6 13:12:41 EDT 2005
Drew Nichols wrote at 2005-6-6 18:02 +1000:
>Whenever I have zope running with a socket (as is the default for ZEO)
>my Sessions become unstable.
Unbelievable because:
1. Zope is always running with sockets (at least the HTTP socket)
2. We use ZEO and sessions without problems.
> ...
>The sessions are fine 4 out of 5 requests, but the information just
>disappears every now and then (refreshing the browser shows it still to
>be there sometimes, others it is just gone).
Looks like your sessions contain non elementary non persistent values (such
as lists or dictionaries).
In this case, you *MUST* modify the session in order to persist
changes to these values. Usually, this looks like:
complex_value = session[CCCC]
# modify complex_value
session[CCCC] = complex_value
Otherwise, it becomes non-deterministic whether the change is made
persistent (and thereby seen by other workers) or remains volatile
(and seen only by the worker that made the change).
I made a patch for the session machinery to turn this non-deterministic
behaviour into a deterministic failure for debugging purposes.
I have sent the patch to ChrisM, but he did not understand its purpose
and therefore did not add it to the code.
@ChrisM: Should we try again?
--
Dieter
More information about the Zope
mailing list