Skip to content

Break lock order loop by sending TAT in an event

The dotat() function has been changed to send the TAT query asynchronously, so there's no lock order loop because we initialize the data first and then we schedule the TAT send to happen asynchronously.

This breaks following lock-order loops:

zone->lock (dns_zone_setviewcommit) while holding view->lock (dns_view_setviewcommit)

keytable->lock (dns_keytable_find) while holding zone->lock (zone_asyncload)

view->lock (dns_view_findzonecut) while holding keytable->lock (dns_keytable_forall)

(cherry picked from commit 3c4b68af)

Closes #2156 (closed)

Merge request reports