[Zope] CoreSessionTracking, two SDMs, same var: Brings Zope to its knees

Milos Prudek milos.prudek@tiscali.cz
Mon, 21 Jan 2002 20:31:19 +0100


I'm using CoreSessionTracking 0.9.0 successfully in my application.
Recently I stumbled on an issue that woke my curiosity.

When I have two Session Data Managers, can they have the same var
stored?

The following is an exact setup that results in dead Zope:


DTML Method "cst_multi_write":

<dtml-var frame_html_header>
<dtml-call "cst_multi_write_script()">
<h1>Wrote to two SDMs.</h1>
<dtml-var standard_html_footer>



Script (Python) "cst_multi_write_script":

data_1=context.SDMorg.getSessionData()
data_1.set('fname','sdmORG')
data_1=context.SDMart.getSessionData()
data_1.set('fname','sdmART')
return



DTML Method "cst_multi_read":

<dtml-var frame_html_header>
<dtml-let data="SDMorg.getSessionData()">
  <b>SDMorg fname:</b> <dtml-var "data.get('fname')"><br>
</dtml-let>
<dtml-var standard_html_footer>



What happens: I can run cst_multi_write just fine. However, when I run
cst_multi_read, it never gives any result (browser keeps "spinning"
indefinitely). And Zope dies in a few clicks. First symptoms include
inability to access Internal Data Container of a Session Data Manager
using ZMI. Then Zope stops responding. "z2.py" does not consume CPU
cycles. The only remedy is to "killall python2" and restart Zope. 

--
Milos Prudek