sem(4) lockup in python?
John Baldwin
jhb at freebsd.org
Wed Jan 11 13:06:35 UTC 2012
On Wednesday, January 11, 2012 6:21:18 am Ivan Voras wrote:
> The lang/python27 port can optionally be built with the support for
> POSIX semaphores - i.e. sem(4). This option is labeled as experimental
> so it may be that the code is simply incorrect. I've tried it and get
> frequent hangs with the python process in the "usem" state. The kernel
> stack is as follows and looks reasonable:
>
> # procstat -kk 19008
> PID TID COMM TDNAME KSTACK
>
> 19008 101605 python - mi_switch+0x174
> sleepq_catch_signals+0x2f4 sleepq_wait_sig+0x16 _sleep+0x269
> do_sem_wait+0xa19 __umtx_op_sem_wait+0x51 amd64_syscall+0x450
> Xfast_syscall+0xf7
>
> The process doesn't react to SIGINT or SIGTERM but fortunately reacts to
> SIGKILL.
>
> This could be an error in Python code but OTOH this code is not
> FreeBSD-specific so it's unlikely.
This is using the new umtx-based semaphore code that David Xu wrote. He is
probably the best person to ask (cc'd).
--
John Baldwin
More information about the freebsd-hackers
mailing list