Skip to content

Fix a possible deadlock in TCP accepting

Witold Krecicki requested to merge 1046-deadlock-in-tcp-code-v9_14 into v9_14

Each network thread holds an array of locks, indexed by a hash of fd. When we accept a connection we hold a lock in accepting thread. We then generate the thread number and lock bucket for the new connection socket - if we hit the same thread and lock bucket as accepting socket we get a deadlock. Avoid this by checking if we're in the same thread/lock bucket and not locking in this case.

(cherry picked from commit 75815c15)

Closes #1046

Merge request reports