+ --- 9.1.1 released ---
+
+ 778. [bug] When starting cache cleaning, cleaning_timer_action()
+ returned without first pausing the iterator, which
+ could cause deadlock. [RT #998]
+
777. [bug] An empty forwarders list in a zone failed to override
global forwarders. [RT #995]
- --- 9.1.1 released ---
-
775. [bug] Address match lists with invalid netmasks caused
the configuration parser to abort with an assertion
failure. [RT #996]
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: cache.c,v 1.31.2.1 2001/01/09 22:43:25 bwelling Exp $ */
+/* $Id: cache.c,v 1.31.2.2 2001/03/13 23:43:03 gson Exp $ */
#include <config.h>
goto destroyiter;
}
+ /*
+ * Pause the iterator to make sure its tree lock is
+ * released before we return from the current event
+ * handler.
+ */
+ result = dns_dbiterator_pause(cleaner->iterator);
+ RUNTIME_CHECK(result == ISC_R_SUCCESS);
+
isc_log_write(dns_lctx, DNS_LOGCATEGORY_GENERAL,
DNS_LOGMODULE_CACHE, ISC_LOG_DEBUG(1),
"begin cache cleaning");