• Mark Andrews's avatar
    Break lock order loop by sending TAT in an event · 3c4b68af
    Mark Andrews authored
    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
    keytable->lock (dns_keytable_find) while holding zone->lock
    view->lock (dns_view_findzonecut) while holding keytable->lock
server.c 421 KB