[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