BIND merge requestshttps://gitlab.isc.org/isc-projects/bind9/-/merge_requests2018-05-25T16:29:59Zhttps://gitlab.isc.org/isc-projects/bind9/-/merge_requests/159Resolve "Lock bucket mapping is broken in rbtdb.c when DNS_RBT_USEHASH is not...2018-05-25T16:29:59ZGhost UserResolve "Lock bucket mapping is broken in rbtdb.c when DNS_RBT_USEHASH is not defined"Closes #184Closes #184Evan HuntEvan Hunthttps://gitlab.isc.org/isc-projects/bind9/-/merge_requests/962Cleanup fctx->finds before sending 'final' query after qname minimization.2018-11-05T10:06:33ZWitold KrecickiCleanup fctx->finds before sending 'final' query after qname minimization.At the beginning of qname minimization we get fctx->finds filled with what's
in the cache at this point, in worst case root servers. After doing full
run querying for NSes at different levels we need to clean it and refill
it with proper...At the beginning of qname minimization we get fctx->finds filled with what's
in the cache at this point, in worst case root servers. After doing full
run querying for NSes at different levels we need to clean it and refill
it with proper values from cache.
Closes #16BIND-9.13.4Mark AndrewsMark Andrewshttps://gitlab.isc.org/isc-projects/bind9/-/merge_requests/1403atomic_store wasn't working on windows2019-01-30T15:56:48ZEvan Huntatomic_store wasn't working on windows- fixed a typo in the win32 version of the atomic_store macro
- moved the unix version to lib/isc/unix/include/isc so it's more
obvious in the future that it isn't the only copy
- add atomic_bool implementation in win32 version of s...- fixed a typo in the win32 version of the atomic_store macro
- moved the unix version to lib/isc/unix/include/isc so it's more
obvious in the future that it isn't the only copy
- add atomic_bool implementation in win32 version of stdatomic.h
- fixed copy&paste error in win32 atomic_fetch_add macroBIND-9.13.6Ondřej SurýOndřej Surýhttps://gitlab.isc.org/isc-projects/bind9/-/merge_requests/1590Fix a race in socket code2019-03-06T21:19:11ZWitold KrecickiFix a race in socket codeFix a race in socket code when internal_{accept, send, receive} is called from event loop on an socket and, in the meantime, someone has closed this socket.
Closes #874Fix a race in socket code when internal_{accept, send, receive} is called from event loop on an socket and, in the meantime, someone has closed this socket.
Closes #874BIND 9.14.0Witold KrecickiWitold Krecickihttps://gitlab.isc.org/isc-projects/bind9/-/merge_requests/1671fix race in socket code2019-03-12T20:04:23ZEvan Huntfix race in socket codeCloses #834Closes #834https://gitlab.isc.org/isc-projects/bind9/-/merge_requests/2416SERVFAIL if a prior qmin fetch has not been canceled when a new one starts2019-10-02T12:30:48ZEvan HuntSERVFAIL if a prior qmin fetch has not been canceled when a new one startsOctober 2019 (9.11.12, 9.14.7, 9.15.5)https://gitlab.isc.org/isc-projects/bind9/-/merge_requests/2562Resolve "master failing to build on MacOS High Sierra"2019-11-16T05:22:11ZMark AndrewsResolve "master failing to build on MacOS High Sierra"Closes #1313Closes #1313https://gitlab.isc.org/isc-projects/bind9/-/merge_requests/2712Bail-out early if dig fails to finish successfully or takes too long2019-12-11T15:37:15ZOndřej SurýBail-out early if dig fails to finish successfully or takes too longBefore, the zero system test could get stuck almost infinitely, because
the first test sends > 300 queries with 5 seconds timeout on each in
each pass. If named crashed early, it would took the test more than 4
hours to properly timeout...Before, the zero system test could get stuck almost infinitely, because
the first test sends > 300 queries with 5 seconds timeout on each in
each pass. If named crashed early, it would took the test more than 4
hours to properly timeout.
This commit introduces a "watchdog" on the dig commands running in the
background and failing the test on timeout, failing any test if any dig
command fails to return successfully, and making the tests.sh script
shellcheck clean.
Closes #1453December 2019 (9.11.14, 9.14.9, 9.15.7)https://gitlab.isc.org/isc-projects/bind9/-/merge_requests/2737Fix a potential lock-order-inversion in tcp listening code2020-01-13T14:34:34ZWitold KrecickiFix a potential lock-order-inversion in tcp listening codeCloses #1469Closes #1469December 2019 (9.11.14, 9.14.9, 9.15.7)Witold KrecickiWitold Krecickihttps://gitlab.isc.org/isc-projects/bind9/-/merge_requests/2734Resolve "ThreadSanitizer: lock-order-inversion (potential deadlock) (/usr/lib...2019-12-10T12:35:22ZMark AndrewsResolve "ThreadSanitizer: lock-order-inversion (potential deadlock) (/usr/lib/x86_64-linux-gnu/libtsan.so.0+0x2cf99) in pthread_rwlock_rdlock"Closes #1441Closes #1441December 2019 (9.11.14, 9.14.9, 9.15.7)https://gitlab.isc.org/isc-projects/bind9/-/merge_requests/2743address deadlock introduced in cd2469d3cdbc211ecf8a82c76c1a0a1c4a545fec2019-12-10T13:04:25ZMark Andrewsaddress deadlock introduced in cd2469d3cdbc211ecf8a82c76c1a0a1c4a545fec(cherry picked from commit fd52417f712dedc6caec64c43969450fdd41b352)
Closes #1441(cherry picked from commit fd52417f712dedc6caec64c43969450fdd41b352)
Closes #1441December 2019 (9.11.14, 9.14.9, 9.15.7)Mark AndrewsMark Andrewshttps://gitlab.isc.org/isc-projects/bind9/-/merge_requests/2746address deadlock introduced in cd2469d3cdbc211ecf8a82c76c1a0a1c4a545fec2019-12-10T20:48:10ZMark Andrewsaddress deadlock introduced in cd2469d3cdbc211ecf8a82c76c1a0a1c4a545fec(cherry picked from commit fd52417f712dedc6caec64c43969450fdd41b352)
Closes #1441(cherry picked from commit fd52417f712dedc6caec64c43969450fdd41b352)
Closes #1441December 2019 (9.11.14, 9.14.9, 9.15.7)Mark AndrewsMark Andrewshttps://gitlab.isc.org/isc-projects/bind9/-/merge_requests/2760Resolve "ThreadSanitizer: lock-order-inversion (potential deadlock) - dns_res...2019-12-12T11:37:41ZMark AndrewsResolve "ThreadSanitizer: lock-order-inversion (potential deadlock) - dns_resolver_createfetch vs dns_resolver_shutdown"Closes #1486, #1471Closes #1486, #1471December 2019 (9.11.14, 9.14.9, 9.15.7)Mark AndrewsMark Andrewshttps://gitlab.isc.org/isc-projects/bind9/-/merge_requests/2765make resolver->zspill atomic to prevent potential deadlock2019-12-12T10:05:06ZMark Andrewsmake resolver->zspill atomic to prevent potential deadlock(cherry picked from commit 62abb6aa823037231333640567d917c5cfadc660)
Closes #1486(cherry picked from commit 62abb6aa823037231333640567d917c5cfadc660)
Closes #1486January 2020 (9.11.15, 9.14.10, 9.15.8, 9.11.15-S)Mark AndrewsMark Andrewshttps://gitlab.isc.org/isc-projects/bind9/-/merge_requests/2766Resolve "ThreadSanitizer: lock-order-inversion (potential deadlock) - dns_res...2019-12-12T11:36:41ZMark AndrewsResolve "ThreadSanitizer: lock-order-inversion (potential deadlock) - dns_resolver_createfetch vs dns_resolver_shutdown"Closes #1486
v9_11 specific version of the fix.Closes #1486
v9_11 specific version of the fix.January 2020 (9.11.15, 9.14.10, 9.15.8, 9.11.15-S)Mark AndrewsMark Andrewshttps://gitlab.isc.org/isc-projects/bind9/-/merge_requests/2880netmgr: handle errors properly in accept_connection.2020-01-14T12:05:28ZWitold Krecickinetmgr: handle errors properly in accept_connection.If a connection was closed early (right after accept()) an assertion
that assumed that the connection was still alive could be triggered
in accept_connection. Handle those errors properly and not with
assertions, free all the resources a...If a connection was closed early (right after accept()) an assertion
that assumed that the connection was still alive could be triggered
in accept_connection. Handle those errors properly and not with
assertions, free all the resources afterwards.January 2020 (9.11.15, 9.14.10, 9.15.8, 9.11.15-S)https://gitlab.isc.org/isc-projects/bind9/-/merge_requests/2899fix a bug when validating negative cache entries2020-02-11T08:01:05ZEvan Huntfix a bug when validating negative cache entriesif validator_start() is called with validator->event->message set to
NULL, we can't use message->rcode to decide which negative proofs are
needed, so we use the rdataset attributes instead to determine whether
the rdataset was cached as ...if validator_start() is called with validator->event->message set to
NULL, we can't use message->rcode to decide which negative proofs are
needed, so we use the rdataset attributes instead to determine whether
the rdataset was cached as NXDOMAIN or NODATA.
Closes #1561January 2020 (9.11.15, 9.14.10, 9.15.8, 9.11.15-S)Evan HuntEvan Hunthttps://gitlab.isc.org/isc-projects/bind9/-/merge_requests/2918Fix a race in taskmgr between worker and task pausing/unpausing.2020-02-07T13:15:47ZWitold KrecickiFix a race in taskmgr between worker and task pausing/unpausing.To reproduce the race - create a task, send two events to it, first one must take some time. Then, from the outside, pause(), unpause() and detach() the task.
When the long-running event is processed by the task it is in task_state_...To reproduce the race - create a task, send two events to it, first one must take some time. Then, from the outside, pause(), unpause() and detach() the task.
When the long-running event is processed by the task it is in task_state_running state. When we called pause() the state changed to task_state_paused, on unpause we checked that there are events in the task queue, changed the state to
task_state_ready and enqueued the task on the workers readyq. We then detach the task. The dispatch() is done with processing the event, it processes the second event in the queue, and then shuts down the task and frees it (as it's not referenced anymore). Dispatcher then takes the, already freed, task from the queue where it was wrongly put, causing an use-after free and, subsequently, either an assertion failure or a segmentation fault.
The probability of this happening is very slim, yet it might happen under a very high load, more probably on a recursive resolver than on an authoritative.
The fix introduces a new 'task_state_pausing' state - to which tasks are moved if they're being paused while still running. They are moved to task_state_paused state when dispatcher is done with them, and if we unpause a task in paused state it's moved back to task_state_running and not requeued.
Closes #1571February 2020 (9.11.16, 9.14.11, 9.16.0, 9.16.0-S)Witold KrecickiWitold Krecickihttps://gitlab.isc.org/isc-projects/bind9/-/merge_requests/3020Resolve "ThreadSanitizer: lock-order-inversion (potential deadlock) - dns_res...2020-03-04T08:25:22ZDiego dos Santos FronzaResolve "ThreadSanitizer: lock-order-inversion (potential deadlock) - dns_resolver_createfetch vs. dns_resolver_prime"Closes #1472Closes #1472March 2020 (9.11.17, 9.16.1, 9.17.0)Diego dos Santos FronzaDiego dos Santos Fronzahttps://gitlab.isc.org/isc-projects/bind9/-/merge_requests/3146Destroy query in killoldestclient under a lock2020-03-05T09:02:13ZWitold KrecickiDestroy query in killoldestclient under a lockFixes a race between ns_client_killoldestquery and ns_client_endrequest -
killoldestquery takes a client from `recursing` list while endrequest
destroys client object, then killoldestquery works on a destroyed client
object. Prevent it b...Fixes a race between ns_client_killoldestquery and ns_client_endrequest -
killoldestquery takes a client from `recursing` list while endrequest
destroys client object, then killoldestquery works on a destroyed client
object. Prevent it by holding reclist lock while cancelling query.
Closes #1650March 2020 (9.11.17, 9.16.1, 9.17.0)Evan HuntEvan Hunt