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)