2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-29 13:38:26 +00:00

Merge branch '2582-threadsanitizer-data-race-lib-dns-zone-c-10272-7-in-zone_maintenance' into 'main'

Resolve "ThreadSanitizer: data race lib/dns/zone.c:10272:7 in zone_maintenance"

Closes #2582

See merge request isc-projects/bind9!4864
This commit is contained in:
Diego dos Santos Fronza 2021-04-07 12:05:05 +00:00
commit e8313d91ea

View File

@ -11063,6 +11063,7 @@ zone_maintenance(dns_zone_t *zone) {
isc_time_t now;
isc_result_t result;
bool dumping, load_pending, viewok;
bool need_notify;
REQUIRE(DNS_ZONE_VALID(zone));
ENTER;
@ -11147,11 +11148,15 @@ zone_maintenance(dns_zone_t *zone) {
* Secondaries send notifies before backing up to disk,
* primaries after.
*/
if ((zone->type == dns_zone_slave || zone->type == dns_zone_mirror) &&
(DNS_ZONE_FLAG(zone, DNS_ZONEFLG_NEEDNOTIFY) ||
DNS_ZONE_FLAG(zone, DNS_ZONEFLG_NEEDSTARTUPNOTIFY)) &&
isc_time_compare(&now, &zone->notifytime) >= 0)
{
LOCK_ZONE(zone);
need_notify = (zone->type == dns_zone_slave ||
zone->type == dns_zone_mirror) &&
(DNS_ZONE_FLAG(zone, DNS_ZONEFLG_NEEDNOTIFY) ||
DNS_ZONE_FLAG(zone, DNS_ZONEFLG_NEEDSTARTUPNOTIFY)) &&
(isc_time_compare(&now, &zone->notifytime) >= 0);
UNLOCK_ZONE(zone);
if (need_notify) {
zone_notify(zone, &now);
}