Skip to content

Lock view while accessing its zone table

Commit 308bc46a introduced a change to the view_flushanddetach() function which makes the latter access view->zonetable without holding view->lock. As confirmed by TSAN, this enables races between threads for view->zonetable accesses. Reverting the offending change doesn't work, because then there's lock-ordering problem.

The MR splits the dns_zt_detachandflush() into two parts, cleans up view->zonetable locked and detaches the swapped zt pointer unlocked.

Closes #2979 (closed)

Edited by Ondřej Surý

Merge request reports