]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
pullup:
authorMark Andrews <marka@isc.org>
Mon, 12 Nov 2001 22:37:05 +0000 (22:37 +0000)
committerMark Andrews <marka@isc.org>
Mon, 12 Nov 2001 22:37:05 +0000 (22:37 +0000)
1118.   [bug]           On multithreaded servers, a race condition
                        could cause an assertion failure in resolver.c
                        during resolver shutdown. [RT #2029]

CHANGES
lib/dns/resolver.c

diff --git a/CHANGES b/CHANGES
index ec1ebfd2816e9380d47ac12e7a753f75acbad0e1..29abec9fd68a0403b4b5f2ec1cb241245283c4c3 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,7 @@
+1118.  [bug]           On multithreaded servers, a race condition
+                       could cause an assertion failure in resolver.c
+                       during resolver shutdown. [RT #2029]
+
 1117.  [port]          The configure check for in6addr_loopback incorrectly
                        succeeded on AIX 4.3 when compiling with -O2
                        because the test code was optimized away.
index ee32af589d0a38c6bf3a79741a933bcc65ba339c..e01b7807fd651c51d5d6010a098fd5c03ce1294b 100644 (file)
@@ -15,7 +15,7 @@
  * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: resolver.c,v 1.218.2.5 2001/11/04 19:21:50 gson Exp $ */
+/* $Id: resolver.c,v 1.218.2.6 2001/11/12 22:37:05 marka Exp $ */
 
 #include <config.h>
 
@@ -1924,8 +1924,6 @@ fctx_doshutdown(isc_task_t *task, isc_event_t *event) {
 
        FCTXTRACE("doshutdown");
 
-       fctx->attributes |= FCTX_ATTR_SHUTTINGDOWN;
-
        /*
         * An fctx that is shutting down is no longer in ADDRWAIT mode.
         */
@@ -1950,6 +1948,8 @@ fctx_doshutdown(isc_task_t *task, isc_event_t *event) {
 
        LOCK(&res->buckets[bucketnum].lock);
 
+       fctx->attributes |= FCTX_ATTR_SHUTTINGDOWN;
+
        INSIST(fctx->state == fetchstate_active ||
               fctx->state == fetchstate_done);
        INSIST(fctx->want_shutdown);