Benoit Sigoure created THRIFT-2516:
--------------------------------------

             Summary: TProcessPoolServer.py can get stuck forever trying to 
acquire a semaphore
                 Key: THRIFT-2516
                 URL: https://issues.apache.org/jira/browse/THRIFT-2516
             Project: Thrift
          Issue Type: Bug
          Components: Python - Library
    Affects Versions: 0.9.1
            Reporter: Benoit Sigoure


In our build environment we observed that {{RunClientServer.py}} was hanging 
forever, because the {{TestServer.py}} was hung trying to acquire a semaphore.

Process list (from {{ps afux}}:

{code}
arastra   1144  0.0  0.0  10444  3820 pts/19   SN+  May05   0:00  |             
                      |                       |       |                         
                      \_ python ./RunClientServer.py
arastra   3962  0.0  0.0  11824  5076 pts/19   SN+  May05   0:00  |             
                      |                       |       |                         
                          \_ /usr/bin/python ./TestServer.py 
--genpydir=gen-py-newstyleslots --proto=compact --port=9090 --ssl 
TProcessPoolServer
arastra   3974  0.0  0.0      0     0 pts/19   ZN+  May05   0:00  |             
                      |                       |       |                         
                          |   \_ [python] <defunct>
arastra   3975  0.0  0.0      0     0 pts/19   ZN+  May05   0:00  |             
                      |                       |       |                         
                          |   \_ [python] <defunct>
arastra   3976  0.0  0.0      0     0 pts/19   ZN+  May05   0:00  |             
                      |                       |       |                         
                          |   \_ [python] <defunct>
arastra   3977  0.0  0.0      0     0 pts/19   ZN+  May05   0:00  |             
                      |                       |       |                         
                          |   \_ [python] <defunct>
arastra   3978  0.0  0.0      0     0 pts/19   ZN+  May05   0:00  |             
                      |                       |       |                         
                          |   \_ [python] <defunct>
arastra   3981  0.0  0.0  11772  5056 pts/19   SN+  May05   0:00  |             
                      |                       |       |                         
                          \_ /usr/bin/python ./TestClient.py 
--genpydir=gen-py-newstyleslots --proto=compact --port=9090 --ssl
{code}

Stack trace of the server (from gdb):

{code}
(gdb) attach 3962
Attaching to process 3962
[...]
(gdb) bt                                                                        
                                                                                
                                                                     [34/2139]
#0  0xf77dc430 in __kernel_vsyscall ()
#1  0xf7612765 in sem_wait@@GLIBC_2.1 () from /lib/libpthread.so.0
#2  0xf723f4ce in semlock_acquire (self=0x8d39050, args=<unknown at remote 
0xfffffe00>, kwds=<unknown at remote 0xfffffe00>) at 
/usr/src/debug/Python-2.7/Modules/_multiprocessing/semaphore.c:310
#3  0xf768f798 in PyCFunction_Call (func=<built-in method acquire of 
_multiprocessing.SemLock object at remote 0x8ef9ba0>, arg=(), kw=0x0) at 
/usr/src/debug/Python-2.7/Objects/methodobject.c:85
#4  0xf76f2147 in call_function (f=Frame 0x8f3a714, for file 
/usr/lib/python2.7/multiprocessing/synchronize.py, line 241, in notify 
(self=<Condition(_wait_semaphore=<Semaphore(release=<built-in method release of 
_multiprocessing.SemLock o
bject at remote 0x8ef9c20>, _semlock=<_multiprocessing.SemLock at remote 
0x8ef9c20>, acquire=<built-in method acquire of _multiprocessing.SemLock object 
at remote 0x8ef9c20>) at remote 0x8ef9c6c>, 
_sleeping_count=<Semaphore(release=<built
-in method release of _multiprocessing.SemLock object at remote 0x8ef9b20>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9b20>, acquire=<built-in 
method acquire of _multiprocessing.SemLock object at remote 0x8ef9b20>) at 
remote 0x8ef
9b6c>, release=<built-in method release of _multiprocessing.SemLock object at 
remote 0x8ef9ae0>, acquire=<built-in method acquire of _multiprocessing.SemLock 
object at remote 0x8ef9ae0>, _lock=<RLock(release=<built-in method release of _m
ultiprocessing.SemLock object at remote 0x8ef9ae0>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9ae0>...(truncated), 
throwflag=0) at /usr/src/debug/Python-2.7/Python/ceval.c:4071
#5  PyEval_EvalFrameEx (f=Frame 0x8f3a714, for file 
/usr/lib/python2.7/multiprocessing/synchronize.py, line 241, in notify 
(self=<Condition(_wait_semaphore=<Semaphore(release=<built-in method release of 
_multiprocessing.SemLock object at 
remote 0x8ef9c20>, _semlock=<_multiprocessing.SemLock at remote 0x8ef9c20>, 
acquire=<built-in method acquire of _multiprocessing.SemLock object at remote 
0x8ef9c20>) at remote 0x8ef9c6c>, _sleeping_count=<Semaphore(release=<built-in 
metho
d release of _multiprocessing.SemLock object at remote 0x8ef9b20>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9b20>, acquire=<built-in 
method acquire of _multiprocessing.SemLock object at remote 0x8ef9b20>) at 
remote 0x8ef9b6c>, re
lease=<built-in method release of _multiprocessing.SemLock object at remote 
0x8ef9ae0>, acquire=<built-in method acquire of _multiprocessing.SemLock object 
at remote 0x8ef9ae0>, _lock=<RLock(release=<built-in method release of 
_multiproce
ssing.SemLock object at remote 0x8ef9ae0>, _semlock=<_multiprocessing.SemLock 
at remote 0x8ef9ae0>...(truncated), throwflag=0) at 
/usr/src/debug/Python-2.7/Python/ceval.c:2721
#6  0xf76f3807 in fast_function (f=Frame 0x8f3a5bc, for file 
./../../lib/py/build/lib.linux-i686-2.7/thrift/server/TProcessPoolServer.py, 
line 119, in stop 
(self=<TProcessPoolServer(stopCondition=<Condition(_wait_semaphore=<Semaphore(rele
ase=<built-in method release of _multiprocessing.SemLock object at remote 
0x8ef9c20>, _semlock=<_multiprocessing.SemLock at remote 0x8ef9c20>, 
acquire=<built-in method acquire of _multiprocessing.SemLock object at remote 
0x8ef9c20>) at re
mote 0x8ef9c6c>, _sleeping_count=<Semaphore(release=<built-in method release of 
_multiprocessing.SemLock object at remote 0x8ef9b20>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9b20>, acquire=<built-in 
method acquire of _multiproce
ssing.SemLock object at remote 0x8ef9b20>) at remote 0x8ef9b6c>, 
release=<built-in method release of _multiprocessing.SemLock object at remote 
0x8ef9ae0>, acquire=<built-in method acquire of _multiprocessing.SemLock object 
at remote 0x8ef
9ae0>, _lock=<RLock(release=<built-in method release of 
_multiprocessing.SemLock object at remote 0x8ef9ae0...(truncated), throwflag=0) 
at /usr/src/debug/Python-2.7/Python/ceval.c:4157
#7  call_function (f=Frame 0x8f3a5bc, for file 
./../../lib/py/build/lib.linux-i686-2.7/thrift/server/TProcessPoolServer.py, 
line 119, in stop 
(self=<TProcessPoolServer(stopCondition=<Condition(_wait_semaphore=<Semaphore(release=<built-in
 
method release of _multiprocessing.SemLock object at remote 0x8ef9c20>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9c20>, acquire=<built-in 
method acquire of _multiprocessing.SemLock object at remote 0x8ef9c20>) at 
remote 0x8ef9c6c
>, _sleeping_count=<Semaphore(release=<built-in method release of 
>_multiprocessing.SemLock object at remote 0x8ef9b20>, 
>_semlock=<_multiprocessing.SemLock at remote 0x8ef9b20>, acquire=<built-in 
>method acquire of _multiprocessing.SemLock 
object at remote 0x8ef9b20>) at remote 0x8ef9b6c>, release=<built-in method 
release of _multiprocessing.SemLock object at remote 0x8ef9ae0>, 
acquire=<built-in method acquire of _multiprocessing.SemLock object at remote 
0x8ef9ae0>, _lock=<
RLock(release=<built-in method release of _multiprocessing.SemLock object at 
remote 0x8ef9ae0...(truncated), throwflag=0) at 
/usr/src/debug/Python-2.7/Python/ceval.c:4092
#8  PyEval_EvalFrameEx (f=Frame 0x8f3a5bc, for file 
./../../lib/py/build/lib.linux-i686-2.7/thrift/server/TProcessPoolServer.py, 
line 119, in stop 
(self=<TProcessPoolServer(stopCondition=<Condition(_wait_semaphore=<Semaphore(release=<buil
t-in method release of _multiprocessing.SemLock object at remote 0x8ef9c20>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9c20>, acquire=<built-in 
method acquire of _multiprocessing.SemLock object at remote 0x8ef9c20>) at 
remote 0x8e
f9c6c>, _sleeping_count=<Semaphore(release=<built-in method release of 
_multiprocessing.SemLock object at remote 0x8ef9b20>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9b20>, acquire=<built-in 
method acquire of _multiprocessing.Sem
Lock object at remote 0x8ef9b20>) at remote 0x8ef9b6c>, release=<built-in 
method release of _multiprocessing.SemLock object at remote 0x8ef9ae0>, 
acquire=<built-in method acquire of _multiprocessing.SemLock object at remote 
0x8ef9ae0>, _l
ock=<RLock(release=<built-in method release of _multiprocessing.SemLock object 
at remote 0x8ef9ae0...(truncated), throwflag=0) at 
/usr/src/debug/Python-2.7/Python/ceval.c:2721
#9  0xf76f3807 in fast_function (f=Frame 0x8f3a17c, for file ./TestServer.py, 
line 232, in clean_shutdown (signum=14, frame=Frame 0x8f33444, for file 
/usr/lib/python2.7/multiprocessing/synchronize.py, line 220, in wait 
(self=<Condition(_w
ait_semaphore=<Semaphore(release=<built-in method release of 
_multiprocessing.SemLock object at remote 0x8ef9c20>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9c20>, acquire=<built-in 
method acquire of _multiprocessing.SemLock objec
t at remote 0x8ef9c20>) at remote 0x8ef9c6c>, 
_sleeping_count=<Semaphore(release=<built-in method release of 
_multiprocessing.SemLock object at remote 0x8ef9b20>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9b20>, acquire=<built-in 
method acquire of _multiprocessing.SemLock object at remote 0x8ef9b20>) at 
remote 0x8ef9b6c>, release=<built-in method release of _multiprocessing.SemLock 
object at remote 0x8ef9ae0>, acquire=<built-in method acquire of 
_multiprocessing.S
emLock object at remote 0x8ef9ae0>, _lock=<RLock(release=<built-in method 
release of _multiprocessing.SemLo...(truncated), throwflag=0) at 
/usr/src/debug/Python-2.7/Python/ceval.c:4157
#10 call_function (f=Frame 0x8f3a17c, for file ./TestServer.py, line 232, in 
clean_shutdown (signum=14, frame=Frame 0x8f33444, for file 
/usr/lib/python2.7/multiprocessing/synchronize.py, line 220, in wait 
(self=<Condition(_wait_semaphore=
<Semaphore(release=<built-in method release of _multiprocessing.SemLock object 
at remote 0x8ef9c20>, _semlock=<_multiprocessing.SemLock at remote 0x8ef9c20>, 
acquire=<built-in method acquire of _multiprocessing.SemLock object at remote 0x
8ef9c20>) at remote 0x8ef9c6c>, _sleeping_count=<Semaphore(release=<built-in 
method release of _multiprocessing.SemLock object at remote 0x8ef9b20>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9b20>, acquire=<built-in 
method acquire
 of _multiprocessing.SemLock object at remote 0x8ef9b20>) at remote 0x8ef9b6c>, 
release=<built-in method release of _multiprocessing.SemLock object at remote 
0x8ef9ae0>, acquire=<built-in method acquire of _multiprocessing.SemLock object 
at remote 0x8ef9ae0>, _lock=<RLock(release=<built-in method release of 
_multiprocessing.SemLo...(truncated), throwflag=0) at 
/usr/src/debug/Python-2.7/Python/ceval.c:4092
#11 PyEval_EvalFrameEx (f=Frame 0x8f3a17c, for file ./TestServer.py, line 232, 
in clean_shutdown (signum=14, frame=Frame 0x8f33444, for file 
/usr/lib/python2.7/multiprocessing/synchronize.py, line 220, in wait 
(self=<Condition(_wait_semap
hore=<Semaphore(release=<built-in method release of _multiprocessing.SemLock 
object at remote 0x8ef9c20>, _semlock=<_multiprocessing.SemLock at remote 
0x8ef9c20>, acquire=<built-in method acquire of _multiprocessing.SemLock object 
at remo
te 0x8ef9c20>) at remote 0x8ef9c6c>, 
_sleeping_count=<Semaphore(release=<built-in method release of 
_multiprocessing.SemLock object at remote 0x8ef9b20>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9b20>, acquire=<built-in 
method ac
quire of _multiprocessing.SemLock object at remote 0x8ef9b20>) at remote 
0x8ef9b6c>, release=<built-in method release of _multiprocessing.SemLock object 
at remote 0x8ef9ae0>, acquire=<built-in method acquire of 
_multiprocessing.SemLock ob
ject at remote 0x8ef9ae0>, _lock=<RLock(release=<built-in method release of 
_multiprocessing.SemLo...(truncated), throwflag=0) at 
/usr/src/debug/Python-2.7/Python/ceval.c:2721
#12 0xf76f4030 in PyEval_EvalCodeEx (co=0xf73875c0, globals=<unknown at remote 
0xfffffe00>, locals=0x0, args=0x8f3a17c, argcount=2, kws=0x0, kwcount=0, 
defs=0x0, defcount=0, closure=0x0) at 
/usr/src/debug/Python-2.7/Python/ceval.c:3311
#13 0xf7678378 in function_call (func=<function at remote 0x8ef8a3c>, arg=(14, 
Frame 0x8f33444, for file /usr/lib/python2.7/multiprocessing/synchronize.py, 
line 220, in wait (self=<Condition(_wait_semaphore=<Semaphore(release=<built-in 
me
thod release of _multiprocessing.SemLock object at remote 0x8ef9c20>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9c20>, acquire=<built-in 
method acquire of _multiprocessing.SemLock object at remote 0x8ef9c20>) at 
remote 0x8ef9c6c>,
 _sleeping_count=<Semaphore(release=<built-in method release of 
_multiprocessing.SemLock object at remote 0x8ef9b20>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9b20>, acquire=<built-in 
method acquire of _multiprocessing.SemLock ob
ject at remote 0x8ef9b20>) at remote 0x8ef9b6c>, release=<built-in method 
release of _multiprocessing.SemLock object at remote 0x8ef9ae0>, 
acquire=<built-in method acquire of _multiprocessing.SemLock object at remote 
0x8ef9ae0>, _lock=<RL
ock(release=<built-in method release of _multiprocessing.SemLock object at 
remote 0x8ef9ae0>, _semlock=<_multiprocessing.SemLock at remote 
0x8ef9a...(truncated), kw=0x0) at 
/usr/src/debug/Python-2.7/Objects/funcobject.c:526
#14 0xf764cf8d in PyObject_Call (func=0x0, arg=<unknown at remote 0xfffffe00>, 
kw=<unknown at remote 0xfffffe00>) at 
/usr/src/debug/Python-2.7/Objects/abstract.c:2522
#15 0xf76ed549 in PyEval_CallObjectWithKeywords (func=<unknown at remote 
0xfffffe00>, arg=(14, Frame 0x8f33444, for file 
/usr/lib/python2.7/multiprocessing/synchronize.py, line 220, in wait 
(self=<Condition(_wait_semaphore=<Semaphore(rele
ase=<built-in method release of _multiprocessing.SemLock object at remote 
0x8ef9c20>, _semlock=<_multiprocessing.SemLock at remote 0x8ef9c20>, 
acquire=<built-in method acquire of _multiprocessing.SemLock object at remote 
0x8ef9c20>) at re
mote 0x8ef9c6c>, _sleeping_count=<Semaphore(release=<built-in method release of 
_multiprocessing.SemLock object at remote 0x8ef9b20>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9b20>, acquire=<built-in 
method acquire of _multiproce
ssing.SemLock object at remote 0x8ef9b20>) at remote 0x8ef9b6c>, 
release=<built-in method release of _multiprocessing.SemLock object at remote 
0x8ef9ae0>, acquire=<built-in method acquire of _multiprocessing.SemLock object 
at remote 0x8ef
9ae0>, _lock=<RLock(release=<built-in method release of 
_multiprocessing.SemLock object at remote 0x8ef9ae0>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9a...(truncated), kw=0x0) at 
/usr/src/debug/Python-2.7/Python/ceval.c:3940
#16 0xf7726a63 in PyErr_CheckSignals () at 
/usr/src/debug/Python-2.7/Modules/signalmodule.c:891
#17 0xf723f38a in semlock_acquire (self=0xf7447688, args=<unknown at remote 
0xfffffe00>, kwds=<unknown at remote 0xfffffe00>) at 
/usr/src/debug/Python-2.7/Modules/_multiprocessing/semaphore.c:318
#18 0xf768f798 in PyCFunction_Call (func=<built-in method acquire of 
_multiprocessing.SemLock object at remote 0x8ef9c20>, arg=(True, None), kw=0x0) 
at /usr/src/debug/Python-2.7/Objects/methodobject.c:85
#19 0xf76f2147 in call_function (f=Frame 0x8f33444, for file 
/usr/lib/python2.7/multiprocessing/synchronize.py, line 220, in wait 
(self=<Condition(_wait_semaphore=<Semaphore(release=<built-in method release of 
_multiprocessing.SemLock obj
ect at remote 0x8ef9c20>, _semlock=<_multiprocessing.SemLock at remote 
0x8ef9c20>, acquire=<built-in method acquire of _multiprocessing.SemLock object 
at remote 0x8ef9c20>) at remote 0x8ef9c6c>, 
_sleeping_count=<Semaphore(release=<built-i
n method release of _multiprocessing.SemLock object at remote 0x8ef9b20>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9b20>, acquire=<built-in 
method acquire of _multiprocessing.SemLock object at remote 0x8ef9b20>) at 
remote 0x8ef9b
6c>, release=<built-in method release of _multiprocessing.SemLock object at 
remote 0x8ef9ae0>, acquire=<built-in method acquire of _multiprocessing.SemLock 
object at remote 0x8ef9ae0>, _lock=<RLock(release=<built-in method release of 
_mul
tiprocessing.SemLock object at remote 0x8ef9ae0>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9ae0>, ...(truncated), 
throwflag=0) at /usr/src/debug/Python-2.7/Python/ceval.c:4071
#20 PyEval_EvalFrameEx (f=Frame 0x8f33444, for file 
/usr/lib/python2.7/multiprocessing/synchronize.py, line 220, in wait 
(self=<Condition(_wait_semaphore=<Semaphore(release=<built-in method release of 
_multiprocessing.SemLock object at re
mote 0x8ef9c20>, _semlock=<_multiprocessing.SemLock at remote 0x8ef9c20>, 
acquire=<built-in method acquire of _multiprocessing.SemLock object at remote 
0x8ef9c20>) at remote 0x8ef9c6c>, _sleeping_count=<Semaphore(release=<built-in 
method 
release of _multiprocessing.SemLock object at remote 0x8ef9b20>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9b20>, acquire=<built-in 
method acquire of _multiprocessing.SemLock object at remote 0x8ef9b20>) at 
remote 0x8ef9b6c>, rele
ase=<built-in method release of _multiprocessing.SemLock object at remote 
0x8ef9ae0>, acquire=<built-in method acquire of _multiprocessing.SemLock object 
at remote 0x8ef9ae0>, _lock=<RLock(release=<built-in method release of 
_multiprocess
ing.SemLock object at remote 0x8ef9ae0>, _semlock=<_multiprocessing.SemLock at 
remote 0x8ef9ae0>, ...(truncated), throwflag=0) at 
/usr/src/debug/Python-2.7/Python/ceval.c:2721
#21 0xf76f4030 in PyEval_EvalCodeEx (co=0x8eeb7b8, globals=<unknown at remote 
0xfffffe00>, locals=0x0, args=0x8f33444, argcount=1, kws=0x8f39038, kwcount=0, 
defs=0x8ef9978, defcount=1, closure=0x0) at 
/usr/src/debug/Python-2.7/Python/ceva
l.c:3311
#22 0xf76f2232 in fast_function (f=Frame 0x8f38eec, for file 
./../../lib/py/build/lib.linux-i686-2.7/thrift/server/TProcessPoolServer.py, 
line 107, in serve 
(self=<TProcessPoolServer(stopCondition=<Condition(_wait_semaphore=<Semaphore(rel
ease=<built-in method release of _multiprocessing.SemLock object at remote 
0x8ef9c20>, _semlock=<_multiprocessing.SemLock at remote 0x8ef9c20>, 
acquire=<built-in method acquire of _multiprocessing.SemLock object at remote 
0x8ef9c20>) at r
emote 0x8ef9c6c>, _sleeping_count=<Semaphore(release=<built-in method release 
of _multiprocessing.SemLock object at remote 0x8ef9b20>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9b20>, acquire=<built-in 
method acquire of _multiproc
essing.SemLock object at remote 0x8ef9b20>) at remote 0x8ef9b6c>, 
release=<built-in method release of _multiprocessing.SemLock object at remote 
0x8ef9ae0>, acquire=<built-in method acquire of _multiprocessing.SemLock object 
at remote 0x8e
f9ae0>, _lock=<RLock(release=<built-in method release of 
_multiprocessing.SemLock object at remote 0x8ef9ae...(truncated), throwflag=0) 
at /usr/src/debug/Python-2.7/Python/ceval.c:4167
#23 call_function (f=Frame 0x8f38eec, for file 
./../../lib/py/build/lib.linux-i686-2.7/thrift/server/TProcessPoolServer.py, 
line 107, in serve 
(self=<TProcessPoolServer(stopCondition=<Condition(_wait_semaphore=<Semaphore(release=<built-in
 method release of _multiprocessing.SemLock object at remote 0x8ef9c20>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9c20>, acquire=<built-in 
method acquire of _multiprocessing.SemLock object at remote 0x8ef9c20>) at 
remote 0x8ef9c6
c>, _sleeping_count=<Semaphore(release=<built-in method release of 
_multiprocessing.SemLock object at remote 0x8ef9b20>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9b20>, acquire=<built-in 
method acquire of _multiprocessing.SemLock
 object at remote 0x8ef9b20>) at remote 0x8ef9b6c>, release=<built-in method 
release of _multiprocessing.SemLock object at remote 0x8ef9ae0>, 
acquire=<built-in method acquire of _multiprocessing.SemLock object at remote 
0x8ef9ae0>, _lock=
<RLock(release=<built-in method release of _multiprocessing.SemLock object at 
remote 0x8ef9ae...(truncated), throwflag=0) at 
/usr/src/debug/Python-2.7/Python/ceval.c:4092
#24 PyEval_EvalFrameEx (f=Frame 0x8f38eec, for file 
./../../lib/py/build/lib.linux-i686-2.7/thrift/server/TProcessPoolServer.py, 
line 107, in serve 
(self=<TProcessPoolServer(stopCondition=<Condition(_wait_semaphore=<Semaphore(release=<bui
lt-in method release of _multiprocessing.SemLock object at remote 0x8ef9c20>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9c20>, acquire=<built-in 
method acquire of _multiprocessing.SemLock object at remote 0x8ef9c20>) at 
remote 0x8
ef9c6c>, _sleeping_count=<Semaphore(release=<built-in method release of 
_multiprocessing.SemLock object at remote 0x8ef9b20>, 
_semlock=<_multiprocessing.SemLock at remote 0x8ef9b20>, acquire=<built-in 
method acquire of _multiprocessing.Se
mLock object at remote 0x8ef9b20>) at remote 0x8ef9b6c>, release=<built-in 
method release of _multiprocessing.SemLock object at remote 0x8ef9ae0>, 
acquire=<built-in method acquire of _multiprocessing.SemLock object at remote 
0x8ef9ae0>, _
lock=<RLock(release=<built-in method release of _multiprocessing.SemLock object 
at remote 0x8ef9ae...(truncated), throwflag=0) at 
/usr/src/debug/Python-2.7/Python/ceval.c:2721
#25 0xf76f3807 in fast_function (f=Frame 0x8daecbc, for file ./TestServer.py, 
line 243, in <module> (), throwflag=0) at 
/usr/src/debug/Python-2.7/Python/ceval.c:4157
#26 call_function (f=Frame 0x8daecbc, for file ./TestServer.py, line 243, in 
<module> (), throwflag=0) at /usr/src/debug/Python-2.7/Python/ceval.c:4092
#27 PyEval_EvalFrameEx (f=Frame 0x8daecbc, for file ./TestServer.py, line 243, 
in <module> (), throwflag=0) at /usr/src/debug/Python-2.7/Python/ceval.c:2721
#28 0xf76f4030 in PyEval_EvalCodeEx (co=0xf7387608, globals=<unknown at remote 
0xfffffe00>, locals=0x0, args=0x8daecbc, argcount=0, kws=0x0, kwcount=0, 
defs=0x0, defcount=0, closure=0x0) at 
/usr/src/debug/Python-2.7/Python/ceval.c:3311
#29 0xf76f4184 in PyEval_EvalCode (co=0xfffffe00, globals=<unknown at remote 
0xfffffe00>, locals=<unknown at remote 0xfffffe00>) at 
/usr/src/debug/Python-2.7/Python/ceval.c:670
#30 0xf770f59c in run_mod (mod=0xfffffe00, filename=0x0, globals=<unknown at 
remote 0xfffffe00>, locals=<unknown at remote 0xfffffe00>, flags=0x0, 
arena=0x0) at /usr/src/debug/Python-2.7/Python/pythonrun.c:1354
#31 0xf77104e3 in PyRun_FileExFlags (fp=0x8da7448, filename=0xffb5f7e7 
"./TestServer.py", start=-512, globals=<unknown at remote 0xfffffe00>, 
locals=<unknown at remote 0xfffffe00>, closeit=1, flags=0xffb5e79c) at 
/usr/src/debug/Python-2.7
/Python/pythonrun.c:1340
#32 0xf77111ac in PyRun_SimpleFileExFlags (fp=0x8da7448, filename=0xffb5f7e7 
"./TestServer.py", closeit=1, flags=0xffb5e79c) at 
/usr/src/debug/Python-2.7/Python/pythonrun.c:944
#33 0xf7711d62 in PyRun_AnyFileExFlags (fp=0x8da7448, filename=0xffb5f7e7 
"./TestServer.py", closeit=1, flags=0xffb5e79c) at 
/usr/src/debug/Python-2.7/Python/pythonrun.c:748
#34 0xf7723b24 in Py_Main (argc=7, argv=0xffb5e894) at 
/usr/src/debug/Python-2.7/Modules/main.c:599
#35 0x080485c8 in main (argc=-512, argv=0xfffffe00) at 
/usr/src/debug/Python-2.7/Modules/python.c:23
{code}

One interesting thing to note is that there is no other thread running in the 
server.  I don't know how the server got in this state.  I don't see any 
traceback in the log or what.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to