]> git.ipfire.org Git - thirdparty/knot-resolver.git/commit
prefill: download through a temporary file
authorVladimír Čunát <vladimir.cunat@nic.cz>
Sun, 25 May 2025 08:17:44 +0000 (10:17 +0200)
committerVladimír Čunát <vladimir.cunat@nic.cz>
Sun, 25 May 2025 08:17:44 +0000 (10:17 +0200)
commit24cef68975e483a44768a02b251a702678a39667
tree300ac4d03ba633b410a2d54ec48f90959aaeba41
parent86922c8cc96724f41c76c8b27e1c65977d62aedf
prefill: download through a temporary file

File rename is an atomic operation, so that's a plus.
We had a practical issue with the canary process,
as (for me) it exits somewhere during the download; example log:

kresd0[912938]: [prefil] downloading root zone to file root.zone ...
kresd0[912942]: [prefil] root zone file valid for 11 hours 59 minutes, reusing data from disk
kresd0[912942]: [prefil] empty zone file
kresd0[912942]: [prefil] error parsing zone file `root.zone`
kresd0[912942]: [prefil] root zone import failed, retry in 01 seconds
kresd0[912942]: [prefil] downloading root zone to file root.zone ...
kresd0[912942]: [prefil] import started for zone file `root.zone`
kresd0[912942]: [prefil] performance: parsing took 0.832 s, hashing took nan s
kresd0[912942]: [prefil] zone successfully parsed, import started
kresd0[912942]: [prefil] root zone refresh in 11 hours 59 minutes
kresd0[912942]: [prefil] performance: validating and caching took 0.736 s

Also avoid the unnecessary pcall+error.  Why throw and immediately catch?
NEWS
modules/prefill/prefill.lua