13 Nov 2006 19:08
Re: assert oid == oid2 AssertionError
Matthew Scott <mscott <at> springfieldtech.com>
2006-11-13 18:08:22 GMT
2006-11-13 18:08:22 GMT
This looks suspiciously like the errors I would get under high load when I tried to use Schevo (which uses a slightly-modified Durus under the hood) in a multi-threaded environment despite the fact that I used locks to serialize access to the in-process Durus storage. The fix that worked for me was the one described here: http://mail.mems-exchange.org/durusmail/durus-users/698/ ....followed by the bugfix suggested here: http://mail.mems-exchange.org/durusmail/durus-users/703/ As far as I can tell, these are scheduled for inclusion in the next Durus release, but for now Durus 3.5 out of the box is not reliable in a multithreaded environment, even when Durus database access is serialized. Hope this helps... On 2006 Nov 13, at 11:52, Aïssa HAMMOUCHI wrote: > i'm trying to make working a connection pooling in my app > (i'm using mod_scgi/apache/quixote/durus) > > the firsts 40 requests (i call db to get one object) get a > traceback, then tracebacks disappear after this occured. > if i stop my app and restart durus/scgi and launch 200 requests > with a load test tool, i get the same scenario after that 40 or > more requests are done, tracebacks disappear and the next requests > work fine with no tracebacks.. > > what's wrong ? > > [ ... snip ... ] > [2006-11-13 19:53:46] exception caught > Traceback (most recent call last): > File "/home/ah/src/alternate-modules/quixote/publish.py", line > 278, in process_request > output = self.try_publish(request) > File "/home/ah/src/alternate-modules/quixote/publish.py", line > 253, in try_publish > output = self.root_directory._q_traverse(components) > File "/home/ah/src/alternate-modules/quixote/directory.py", line > 63, in _q_traverse > return obj._q_traverse(path) > File "/home/ah/src/alternate-modules/quixote/directory.py", line > 63, in _q_traverse > return obj._q_traverse(path) > File "/home/ah/src/alternate-modules/quixote/directory.py", line > 57, in _q_traverse > obj = self._q_lookup(component) > File "/home/ah/pymods/fidji/ui/browse.ptl", line 122, in _q_lookup > body(menu(), list_doc()) > File "/home/ah/pymods/fidji/ui/browse.ptl", line 117, in list_doc > "<br><a href='/document/%s'>%s</a><br>"%(i.id,i.nom) > File "/home/ah/src/alternate-modules/durus/persistent.py", line > 92, in __getattribute__ > self._p_load_state() > File "/home/ah/src/alternate-modules/durus/persistent.py", line > 135, in _p_load_state > self._p_connection.load_state(self) > File "/home/ah/src/alternate-modules/durus/connection.py", line > 185, in load_state > pickle = self.get_stored_pickle(oid) > File "/home/ah/src/alternate-modules/durus/connection.py", line > 111, in get_stored_pickle > assert oid == oid2 > AssertionError -- Matthew Scott mscott <at> springfieldtech.com
RSS Feed