bind9/bin/named
Colin Vidal 4b566599a6 refactor detection of zone DB load completion
Because the asynchronous loading logic expected all jobs to be scheduled
then to be run (because it used to be scheduled during the exclusive
mode) and because all jobs are scheduled on various threads, there were
random situations where load_zones() would return after the scheduled
DB zone loading actually ran. In such cases, the zl->refs ref counter
in view_loaded() wouldn't go down to 0 and the remaining task to do
once all zones were loaded was never called. In particular,
server->reload_status kept the NAMED_RELOAD_PENDING state.

This problem is fixed by handling zoneload_t as a ref-counted object,
shared between load_zones() and each instance of scheduled zone DB
loading. Its destructor function is actually the content of
view_loaded() in the case the zt->refs went to 0. This ensures a
correct post-loading routine to be called once the last load is done.
2025-11-18 12:16:14 +01:00
..
include save effective configuration as text 2025-11-12 11:36:07 +01:00
.gitignore Complete rewrite the BIND 9 build system 2020-04-21 14:19:48 +02:00
bind9.xsl Expose the incoming transfers' rates in the statistics channel 2025-02-20 09:32:55 +00:00
builtin.c make getoriginnode implementation optional 2025-09-15 16:11:50 +00:00
config.c introduce default config builtin-root-anchors 2025-10-29 13:55:47 -07:00
control.c implement "rndc showconf" 2025-10-29 23:49:49 +01:00
controlconf.c cfg_parse_ functions internally handle the parser 2025-10-23 13:01:08 -07:00
dlz_dlopen_driver.c Use clang-format-20 to update formatting 2025-06-25 12:44:22 +10:00
fuzz.c Change the loopmgr to be singleton 2025-07-23 22:44:16 +02:00
geoip.c Remove redundant parentheses from the return statement 2024-11-19 12:27:22 +01:00
log.c debug level was ignored when logging to stderr 2025-05-13 12:47:23 -07:00
logconf.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
main.c named -V doesn't need to parse default options 2025-10-29 13:55:47 -07:00
meson.build replace the build system with meson 2025-06-11 10:30:12 +03:00
named.conf.rst Remove the configblock sphinx extension 2025-06-23 13:45:09 +03:00
named.rst Finalize removal of memory debug flags size and mctx 2024-12-06 02:29:20 +00:00
os.c implement the systemd notification protocol manually, drop libsystemd 2025-03-27 22:52:41 +03:00
server.c refactor detection of zone DB load completion 2025-11-18 12:16:14 +01:00
statschannel.c Stop prettifying JSON statistics 2025-10-27 10:56:38 +01:00
tkeyconf.c Simplify named_tkeyctx_fromconfig() 2025-10-06 13:19:50 +02:00
transportconf.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
tsigconf.c Use ControlStatementsExceptControlMacros for SpaceBeforeParens 2025-08-19 07:58:33 +02:00
xsl_c.in replace the build system with meson 2025-06-11 10:30:12 +03:00
xsl_p.h Update the copyright information in all files in the repository 2022-01-11 09:05:02 +01:00
zoneconf.c save zone configuration as text 2025-11-12 11:36:07 +01:00