Skip to content

Address race between zone_settimer and set_key_expiry_warning by

adding missing lock.

WARNING: ThreadSanitizer: data race
Read of size 4 at 0x000000000001 by thread T1 (mutexes: read M1, write M2):
#0 isc_time_isepoch lib/isc/unix/time.c:110
#1 zone_settimer lib/dns/zone.c:14649
#2 dns_zone_maintenance lib/dns/zone.c:6281
#3 dns_zonemgr_forcemaint lib/dns/zone.c:18190
#4 view_loaded server.c:9654
#5 call_loaddone lib/dns/zt.c:301
#6 doneloading lib/dns/zt.c:575
#7 zone_asyncload lib/dns/zone.c:2259
#8 task_run lib/isc/task.c:845
#9 isc_task_run lib/isc/task.c:938
#10 isc__nm_async_task lib/isc/netmgr/netmgr.c:855
#11 process_netievent lib/isc/netmgr/netmgr.c:934
#12 process_queue lib/isc/netmgr/netmgr.c:1003
#13 process_all_queues lib/isc/netmgr/netmgr.c:775
#14 async_cb lib/isc/netmgr/netmgr.c:804
#15 <null> <null>
#16 isc__trampoline_run lib/isc/trampoline.c:191
#17 <null> <null>

Previous write of size 4 at 0x000000000001 by thread T2:
#0 isc_time_set lib/isc/unix/time.c:93
#1 set_key_expiry_warning lib/dns/zone.c:6430
#2 del_sigs lib/dns/zone.c:6711
#3 zone_resigninc lib/dns/zone.c:7113
#4 zone_maintenance lib/dns/zone.c:11111
#5 zone_timer lib/dns/zone.c:14588
#6 task_run lib/isc/task.c:845
#7 isc_task_run lib/isc/task.c:938
#8 isc__nm_async_task lib/isc/netmgr/netmgr.c:855
#9 process_netievent lib/isc/netmgr/netmgr.c:934
#10 process_queue lib/isc/netmgr/netmgr.c:1003
#11 process_all_queues lib/isc/netmgr/netmgr.c:775
#12 async_cb lib/isc/netmgr/netmgr.c:804
#13 <null> <null>
#14 isc__trampoline_run lib/isc/trampoline.c:191
#15 <null> <null>

SUMMARY: ThreadSanitizer: data race lib/isc/unix/time.c:110 in isc_time_isepoch

(cherry picked from commit 3d66e97a)

Closes #2720 (closed)

Merge request reports