]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Allow attaching to dns_adb which is shutting down
authorOndřej Surý <ondrej@isc.org>
Fri, 22 Apr 2022 14:48:37 +0000 (16:48 +0200)
committerOndřej Surý <ondrej@isc.org>
Fri, 22 Apr 2022 14:48:37 +0000 (16:48 +0200)
The dns__adb_attach() had an assertion failure that prevented to attach
to dns_adb if the dns_adb was shutting down.  There was a race between
checking for .exiting in dns_adb_createfind and creating new_adbfind() -
other thread could have set the .exiting to true between the check.

Remove the assertion failure and allow attaching to dns_adb even while
shutting down.  The process of dns_adb shutting down would be noticed
only a moments later when any other callback is called.

lib/dns/adb.c

index edce5bf18c8db5eb16f21a389b66d0f20d7d1d7a..dd311ee495b1d8e23901b5a48ea10a23f546cc5d 100644 (file)
@@ -2169,7 +2169,6 @@ dns__adb_attach(dns_adb_t *adb, dns_adb_t **adbp, const char *func,
 
        REQUIRE(DNS_ADB_VALID(adb));
        REQUIRE(adbp != NULL && *adbp == NULL);
-       REQUIRE(!atomic_load_acquire(&adb->exiting));
 
        refs = isc_refcount_increment(&adb->references);
 #ifdef ADB_TRACE