[omniORB] omniORBpy lock-up
Eric C. Newton
ecn@metaslash.com
Sun, 8 Jul 2001 17:19:13 -0400
Platform:
omniORBpy 1.4 (pre-built)
Python 2.1
WindowsME
PIII/750
I've had a problem with the following code in
omni/src/lib/omniORBpy/python/omniORB/__init__.py
on or about line 673:
def delete(self):
if self.add:
for hook in self.hooks:
hook(WTHREAD_DELETED, self)
_thr_acq()
del _thr_act[self.id]
_thr_rel()
Sometimes there's a KeyError exception between the thr_acq and the
thr_rel. Shortly after this occurs, my server locks up because the
lock is never released.
I changed the code to:
def delete(self):
if self.add:
for hook in self.hooks:
hook(WTHREAD_DELETED, self)
try:
try:
_thr_acq()
del _thr_act[self.id]
finally:
_thr_rel()
except:
import traceback
traceback.print_exc()
raise
This only releases the lock and prints the error. I'm not really sure
what's going on. Never happens under Linux (RedHat 7.1) on the same
machine, but happens frequently on WindowsME.
-Eric