tree 6cd62070185d46494b60f902a4635c2b6f8f5d00
parent a2b8ed4b440786eefaf6f783a5a003c3f079126a
author Willy Tarreau <w@1wt.eu> 1656688754 +0200
committer Willy Tarreau <w@1wt.eu> 1656696395 +0200
encoding latin1

MINOR: debug: mark oneself harmless while waiting for threads to finish

The debug_handler() function waits for other threads to join, but does
not mark itself as harmless, so if at the same time another thread tries
to isolate, this may deadlock. In practice this does not happen as the
signal is received during epoll_wait() hence under harmless mode, but
it can possibly arrive under other conditions.

In order to improve this, while waiting for other threads to join, we're
now marking the current thread as harmless, as it's doing nothing but
waiting for the other ones. This way another harmless waiter will be able
to proceed. It's valid to do this since we're not doing anything else in
this loop.

One improvement could be to also check for the thread being idle and
marking it idle in addition to harmless, so that it can even release a
full isolation requester. But that really doesn't look worth it.
