Michał Kępień
56003e9f9f
Prevent a race after zone load
...
Zone loading happens in a different task (zone->loadtask) than other
zone actions (zone->task). Thus, when zone_postload() is called in the
context of zone->loadtask, it may cause zone maintenance to be queued in
zone->task and another thread can then execute zone_maintenance() before
zone_postload() gets a chance to finish its work in the first thread.
This would not be a problem if zone_maintenance() accounted for this
possibility by locking the zone before checking the state of its
DNS_ZONEFLG_LOADPENDING flag. However, the zone is currently not locked
before the state of that flag is checked, which may prevent zone
maintenance from happening despite zone_postload() scheduling it. Fix
by locking the zone in zone_maintenance() before checking the state of
the zone's DNS_ZONEFLG_LOADPENDING flag.
2018-09-26 19:35:51 -07:00
..
2018-09-10 09:32:31 +10:00
2018-08-08 09:37:30 +02:00
2018-08-31 12:13:19 +10:00
2018-09-26 09:34:34 +02:00
2018-08-28 13:15:59 +02:00
2018-08-08 09:37:30 +02:00
2018-09-04 06:11:38 +00:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-28 13:15:59 +02:00
2018-08-08 09:37:30 +02:00
2018-08-16 12:45:59 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-28 10:31:48 +02:00
2018-08-28 10:31:47 +02:00
2018-08-28 13:15:59 +02:00
2018-06-05 09:14:14 +02:00
2018-08-28 13:15:59 +02:00
2018-08-08 09:37:30 +02:00
2018-08-28 10:31:47 +02:00
2018-06-05 09:14:14 +02:00
2018-08-08 09:37:30 +02:00
2018-08-16 12:45:59 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-16 17:18:52 +02:00
2018-08-08 09:37:30 +02:00
2018-09-10 09:32:31 +10:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:28 +02:00
2018-08-28 13:15:59 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:28 +02:00
2018-08-28 13:15:59 +02:00
2018-08-08 09:37:30 +02:00
2018-06-05 12:10:37 +10:00
2018-08-08 09:37:30 +02:00
2018-07-23 22:10:52 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-16 17:18:52 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-28 13:15:59 +02:00
2018-08-14 12:49:19 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-28 13:15:59 +02:00
2018-08-08 09:37:30 +02:00
2018-07-19 12:47:03 -04:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-28 13:15:59 +02:00
2018-08-16 12:45:59 +02:00
2018-08-28 12:15:39 +02:00
2018-08-28 13:15:59 +02:00
2018-08-28 10:31:48 +02:00
2018-08-28 10:31:48 +02:00
2018-08-27 10:12:19 -04:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-30 21:17:00 -07:00
2018-06-28 13:38:39 +02:00
2018-08-08 09:37:30 +02:00
2018-08-28 13:15:59 +02:00
2018-08-08 09:37:28 +02:00
2018-08-28 17:04:45 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:28 +02:00
2018-08-08 09:37:30 +02:00
2018-08-29 13:31:28 +02:00
2018-09-10 09:32:31 +10:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:28 +02:00
2018-08-08 09:37:28 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-08-28 13:15:59 +02:00
2018-08-08 09:37:30 +02:00
2018-08-16 17:18:52 +02:00
2018-08-08 09:37:30 +02:00
2018-08-28 17:04:45 +02:00
2018-08-08 09:37:30 +02:00
2018-08-08 09:37:30 +02:00
2018-09-26 19:35:51 -07:00
2018-08-08 09:37:30 +02:00
2018-08-27 10:12:19 -04:00
2018-08-28 17:04:45 +02:00