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 [email protected].
For more options, visit https://groups.google.com/d/optout.