2414. [bug] A masterdump context held the database lock too long,

causing various troubles such as dead lock and
			recursive lock acquisition. [RT #18311, #18456]
This commit is contained in:
Tatuya JINMEI 神明達哉
2008-08-13 02:24:25 +00:00
parent f8e7f1d3d1
commit 9067efdee1
2 changed files with 8 additions and 5 deletions
+4
View File
@@ -1,3 +1,7 @@
2414. [bug] A masterdump context held the database lock too long,
causing various troubles such as dead lock and
recursive lock acquisition. [RT #18311, #18456]
2413. [bug] Fixed an unreachable code path in socket.c. [RT #18442]
2412. [bug] win32: address a resourse leak. [RT #18374]
+4 -5
View File
@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: masterdump.c,v 1.56.2.5.2.15 2006/03/10 00:17:21 marka Exp $ */
/* $Id: masterdump.c,v 1.56.2.5.2.16 2008/08/13 02:24:25 jinmei Exp $ */
#include <config.h>
@@ -1159,13 +1159,12 @@ dumptostreaminc(dns_dumpctx_t *dctx) {
result = dns_dbiterator_next(dctx->dbiter);
}
if (dctx->nodes != 0 && result == ISC_R_SUCCESS) {
result = dns_dbiterator_pause(dctx->dbiter);
RUNTIME_CHECK(result == ISC_R_SUCCESS);
if (dctx->nodes != 0 && result == ISC_R_SUCCESS)
result = DNS_R_CONTINUE;
} else if (result == ISC_R_NOMORE)
else if (result == ISC_R_NOMORE)
result = ISC_R_SUCCESS;
fail:
RUNTIME_CHECK(dns_dbiterator_pause(dctx->dbiter) == ISC_R_SUCCESS);
isc_mem_put(dctx->mctx, buffer.base, buffer.length);
return (result);
}