Sorry, I should have included more info, but my message was already a bit long.
I have run the tests on both Red Hat 7.3 and Red Hat 9 with the same result. I am using python 2.2.3. Here is the step-by-step for what I did (I'm going to err on the side of too much info here):
- check out latest Zope from cvs - cd Zope - ./configure - make - make instance - cd lib/python/Products/Sessions/stresstests - edit stresstestMultiThread.py - comment out line 38 - changed readiters and writeiters fro 100 to 10 on lines 117 and 118 - cp ~/Zope/lib/python/Products/Transience/tests/fauxtime.py . - python2 stresstestMultiThread.py
This time, on Red Hat 7.3, I actually got an exception. I'll include the output below.
Please let me know if there is ANYTHING I can do to help out with this one. I appreciate you looking into it.
Steve
------------------------------------------------------------------------
[EMAIL PROTECTED] stresstests]$ python2 stresstestMultiThread.py
testNonOverlappingBrowserIds (__main__.TestMultiThread) ... 4 values in toc
waiting for 8 threads
read conflict
4 values in toc
read conflict
read conflict
read conflict
waiting for 8 threads
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
4 values in toc
4 values in toc
4 values in toc
4 values in toc
4 values in toc
4 values in toc
4 values in toc
4 values in toc
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
waiting for 8 threads
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
waiting for 8 threads
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
0
read conflict
read conflict
read conflict
read conflict
read conflict
waiting for 7 threads
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
read conflict
2003-10-17T14:41:56
25
Exception in thread Thread-3:
Traceback (most recent call last):
File "//usr/lib/python2.2/threading.py", line 414, in __bootstrap
self.run()
File "stresstestMultiThread.py", line 164, in run
self.run1()
File "stresstestMultiThread.py", line 187, in run1
data = session_data_manager.getSessionData(create=1)
File "/home/stevej/Zope/lib/python/Products/Sessions/SessionDataManager.py", line 93, in getSessionData
return self._getSessionDataObject(key)
File "/home/stevej/Zope/lib/python/Products/Sessions/SessionDataManager.py", line 180, in _getSessionDataObject
ob = container.new_or_existing(key)
File "/home/stevej/Zope/lib/python/Products/Transience/Transience.py", line 175, in new_or_existing
item = self.get(key, notfound)
File "/home/stevej/Zope/lib/python/Products/Transience/Transience.py", line 807, in get
v = self._data[b].get(k, notfound)
KeyError: 0
read conflict
read conflict
read conflict
2003-10-17T14:41:56
17
Exception in thread Thread-2:
Traceback (most recent call last):
File "//usr/lib/python2.2/threading.py", line 414, in __bootstrap
self.run()
File "stresstestMultiThread.py", line 164, in run
self.run1()
File "stresstestMultiThread.py", line 187, in run1
data = session_data_manager.getSessionData(create=1)
File "/home/stevej/Zope/lib/python/Products/Sessions/SessionDataManager.py", line 93, in getSessionData
return self._getSessionDataObject(key)
File "/home/stevej/Zope/lib/python/Products/Sessions/SessionDataManager.py", line 180, in _getSessionDataObject
ob = container.new_or_existing(key)
File "/home/stevej/Zope/lib/python/Products/Transience/Transience.py", line 175, in new_or_existing
item = self.get(key, notfound)
File "/home/stevej/Zope/lib/python/Products/Transience/Transience.py", line 807, in get
v = self._data[b].get(k, notfound)
File "/home/stevej/Zope/lib/python/ZODB/Connection.py", line 561, in setstate
p, serial = self._storage.load(oid, self._version)
File "/home/stevej/Zope/lib/python/tempstorage/TemporaryStorage.py", line 94, in load
s=self._index[oid]
KeyError:
2003-10-17T14:41:56
18
Exception in thread Thread-4:
Traceback (most recent call last):
File "//usr/lib/python2.2/threading.py", line 414, in __bootstrap
self.run()
File "stresstestMultiThread.py", line 164, in run
self.run1()
File "stresstestMultiThread.py", line 187, in run1
data = session_data_manager.getSessionData(create=1)
File "/home/stevej/Zope/lib/python/Products/Sessions/SessionDataManager.py", line 93, in getSessionData
return self._getSessionDataObject(key)
File "/home/stevej/Zope/lib/python/Products/Sessions/SessionDataManager.py", line 180, in _getSessionDataObject
ob = container.new_or_existing(key)
File "/home/stevej/Zope/lib/python/Products/Transience/Transience.py", line 175, in new_or_existing
item = self.get(key, notfound)
File "/home/stevej/Zope/lib/python/Products/Transience/Transience.py", line 807, in get
v = self._data[b].get(k, notfound)
File "/home/stevej/Zope/lib/python/ZODB/Connection.py", line 561, in setstate
p, serial = self._storage.load(oid, self._version)
File "/home/stevej/Zope/lib/python/tempstorage/TemporaryStorage.py", line 94, in load
s=self._index[oid]
KeyError:
read conflict read conflict read conflict read conflict read conflict waiting for 4 threads read conflict read conflict read conflict read conflict read conflict read conflict
Chris McDonough wrote:
What OS? That test was written obviously to make sure the system works... others have complained about similar issues. I'd like to be able to track this down, but I can't make the test fail under Red Hat 7.3.
On Fri, 2003-10-17 at 15:56, Steve Jibson wrote:
We have been using Zope 2.7.0-beta2 and we have been having a bit of trouble with SESSION loosing data when we have more than one user on the system. These problems usually show up as KeyErrors when a particular data element in SESSION cannot be found. If I set the zserver threads to 1 in zope.conf, the problem seems to go away (but the system isn't really usable either). So I assumed it was a thread-safety problem in the SESSION code.
I decided to be brave and take a look at the code. To my surprize, I found a test file called stresstestMultiThread.py in the lib/python/Products/Sessions/stresstests directory that seemed to be the exact thing I wanted to test. It wouldn't run without a couple of minor modifications, but once I got it running, with more than three or four threads, the tests fail (never complete).
Is this test file still valid? It looks like it hasn't been modified for almost a year now. If it is valid, has anyone looked into getting the tests to pass. I will probably look into it more myself, but before I do, I just want to make sure I'm not headed down a dead-end street.
Thanks,
Steve
P.S. - The tests failed in both the 2.7.0b2-src and the what is currently in cvs.
_______________________________________________
Zope-Dev maillist - [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
** No cross posts or HTML encoding! **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )
_______________________________________________
Zope-Dev maillist - [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
** No cross posts or HTML encoding! **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )