Sorry for using the term 'zombie'. In the context of unix it is misleading.
On Thursday, November 3, 2016 at 9:25:41 PM UTC+1, Niphlod wrote: > > From where I stand, if the result is the task being labelled as TIMEOUT > (with the corresponding "task timeout" debug line), it can only be > originated there. > Maybe there's a culprit there.... can you add a p.join() after that > p.terminate(), and maybe a few debug lines ? > i.e. > > > ... else: > if p.is_alive(): > logger.debug(' MD: terminating') > p.terminate() > logger.debug(' MD: terminated') > logger.debug(' MD: joining') > p.join() > logger.debug(' MD: joined') > logger.debug(' task timeout') > try: > # we try to get a traceback here > tr = queue.get(timeout=2) > ... > > > Good try. I did it and got the supposed infinity waiting result. First the pstree for your orientation (worker's focus on 29554): [01] logs $> pstree -p 16731 > bash(16731)---python2.7(28670)-+-python2.7(28678)---{python2.7}(28679) > |-python2.7(28680)-+-python2.7(29554) > | `-{python2.7}(28681) > ... > Next some logging lines: 11-04 07:56:47.508 [28680] task starting CPID:29554 > ... > ... configured timeout 30 seconds ... > ... > 11-04 07:57:02.510 [28680] MD: terminating > 11-04 07:57:02.512 [28680] MD: terminated > 11-04 07:57:02.512 [28680] MD: joining > I was afraid: the worker is sill waiting for joining the forked process. And last some lines from pstack for 29554 (the function 'executor' never reaching): [01] logs $> pstack 29554 > #0 0x00000030db40ce51 in sem_wait () from /lib64/libpthread.so.0 > #1 0x00002ba981e3123d in PyThread_acquire_lock () from > /usr/local/lib/libpython2.7.so.1.0 > #2 0x00002ba981e35202 in lock_PyThread_acquire_lock () from > /usr/local/lib/libpython2.7.so.1.0 > #3 0x00002ba981dfb9c9 in PyEval_EvalFrameEx () from > /usr/local/lib/libpython2.7.so.1.0 > ... > #11 0x00002ba981d82252 in function_call () from > /usr/local/lib/libpython2.7.so.1.0 > #12 0x00002ba981d54318 in PyObject_Call () from > /usr/local/lib/libpython2.7.so.1.0 > ... > #46 0x00002ba981d82252 in function_call () from > /usr/local/lib/libpython2.7.so.1.0 > #47 0x00002ba981d54318 in PyObject_Call () from > /usr/local/lib/libpython2.7.so.1.0 > #48 0x00002ba981d6499f in instancemethod_call () from > /usr/local/lib/libpython2.7.so.1.0 > #49 0x00002ba981d54318 in PyObject_Call () from > /usr/local/lib/libpython2.7.so.1.0 > #50 0x00002ba981db701c in slot_tp_init () from > /usr/local/lib/libpython2.7.so.1.0 > #51 0x00002ba981db0f58 in type_call () from > /usr/local/lib/libpython2.7.so.1.0 > ... > #61 0x00002ba981e20f37 in PyRun_SimpleFileExFlags () from > /usr/local/lib/libpython2.7.so.1.0 > #62 0x00002ba981e33726 in Py_Main () from > /usr/local/lib/libpython2.7.so.1.0 > #63 0x00000030da81d9f4 in __libc_start_main () from /lib64/libc.so.6 > #64 0x0000000000400629 in _start () > Erwn -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.