Report information
The Basics
Id:
45209
Status:
resolved
Priority:
Medium/Medium
Queue:

People
BugTracker
Version Fixed:
9.11.2, 9.12.0
Version Found:
(no value)
Versions Affected:
(no value)
Versions Planned:
(no value)
Priority:
P1 High
Severity:
S1 High
CVSS Score:
(no value)
CVE ID:
(no value)
Component:
BIND Server
Area:
bug

Dates
Created:Tue, 09 May 2017 20:09:42 -0400
Updated:Fri, 28 Jul 2017 23:14:01 -0400
Closed:Tue, 16 May 2017 11:49:25 -0400



This bug tracker is no longer active.

Please go to our Gitlab to submit issues (both feature requests and bug reports) for active projects maintained by Internet Systems Consortium (ISC).

Due to security and confidentiality requirements, full access is limited to the primary maintainers.

Subject: deadlock due to mdb_txn_open
When adding and removing zones at close to the same time, a deadlock can occur when do_addzone() tries to go exclusive after opening an LMDB transaction, and while it's waiting for other tasks to complete their processing, one of the zone tasks running rmzone() tries to open an LMDB transaction and hangs. The purpose of calling nzd_open() before going exclusive was to make sure we had permission to open the database so that we could bail out right away if we didn't, before incurring the cost of an exclusive lock and messing with the internal zone configuration. I hadn't realized that only one writer transaction could be open at the same time. We're going to have to do a quick open-and-close instead, then open a new transaction after relinquishing exclusivity.