Fix: Lock FD tracker across fork
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 4 Oct 2019 14:07:03 +0000 (10:07 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mon, 7 Oct 2019 16:02:48 +0000 (12:02 -0400)
commit57349053b60a11a6ba741fd88f70354e9f5d7cb1
treeba6e9c201bf4d911ff42c4ebeccd43bad179bf5f
parent9197e7ece6a951447e2d84b4b2764cf508f2b493
Fix: Lock FD tracker across fork

If fork() is performed while other threads are holding the fd tracker
lock, it will stay in locked state in the child process and eventually
cause a deadlock.

One way to solve this is to hold the fd tracker lock across fork(), in
the same way we do for the ust_lock. This ensures no other threads are
holding that lock in the parent, and therefore provides a consistent
lock state in the child.

Fixes: #1199
Fixes: #1200
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
liblttng-ust-comm/lttng-ust-fd-tracker.c
liblttng-ust/lttng-ust-comm.c
This page took 0.02439 seconds and 4 git commands to generate.