dnscontrol/providers
Jakob Ackermann 7b81878a49
ROUTE53: make caching of zones thread-safe (#3328)
Hi @tresni!
While reviewing all the `ZoneCreator` implementations, I noticed that
the ROUTE53 provider has an unsafe caching implementation for zones and
`EnsureZoneExists` has a race-condition bug. `EnsureZoneExists` resets
the cache before making the API call for creating a given zone. This
might run concurrently to the processing of other zones and in turn
could result in unexpected behavior: the cache could get re-populated
before the creation of the zone completes and the new zone could be
missing from the newly populated cache. This PR is making all access to
the zone cache thread-safe and fixing the aforementioned race-condition.
Would you mind giving this a try and let me know how it goes? Thanks!

Bonus: The zone cache is no longer reset when creating zones. Instead,
the cache is populated with the zone that is included in the API
response from creating the zone.

Part of https://github.com/StackExchange/dnscontrol/issues/3007
2025-12-03 08:35:24 -05:00
..
_all VERCEL: Implement Vercel DNS Provider (#3379) (#3542) 2025-12-01 08:41:56 -05:00
adguardhome NEW PROVIDER: ADGUARDHOME (#3638) 2025-07-09 12:06:34 -04:00
akamaiedgedns AKAMAIEDGEDNS: Add ALIAS and AKAMAITLC support to the Akamai Edge DNS provider (#3836) 2025-11-14 09:48:42 -05:00
autodns POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
axfrddns AXFRDDNS: Chunk large changes in multiple packets (#3732) 2025-08-28 12:27:18 -04:00
azuredns POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
azureprivatedns POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
bind BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
bunnydns POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
cloudflare CLOUDFLARE: Add LOC support (#3857) 2025-12-01 09:12:10 -05:00
cloudns POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
cnr POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
cscglobal Warn if IGNORE() is unreliable for this provider (#3683) 2025-07-30 20:41:49 -04:00
desec POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
digitalocean CHORE: Maintainer changes for OPENSRS and DIGITALOCEAN (#3849) 2025-11-24 20:29:43 -05:00
dnsimple Warn if IGNORE() is unreliable for this provider (#3683) 2025-07-30 20:41:49 -04:00
dnsmadeeasy POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
doh DOCS: Reclassify providers concurrency status (#3518) 2025-04-02 16:36:00 -04:00
domainnameshop Warn if IGNORE() is unreliable for this provider (#3683) 2025-07-30 20:41:49 -04:00
dynadot DOCS: Reclassify providers concurrency status (#3518) 2025-04-02 16:36:00 -04:00
easyname DOCS: Reclassify providers concurrency status (#3518) 2025-04-02 16:36:00 -04:00
exoscale POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
fortigate POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
gandiv5 GANDI_V5: Increase API timeouts (#3770) 2025-09-15 14:02:47 -04:00
gcloud POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
gcore POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
hedns POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
hetzner HETZNER: gracefully handle FQDN labels when listing records (#3859) 2025-12-01 09:08:43 -05:00
hetznerv2 HETZNER_V2: Add provider for Hetzner DNS API (#3837) 2025-11-30 09:14:54 -05:00
hexonet POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
hostingde POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
huaweicloud POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
internetbs DOCS: Reclassify providers concurrency status (#3518) 2025-04-02 16:36:00 -04:00
inwx INWX: Enable concurrency support (#3856) 2025-12-01 09:13:06 -05:00
joker POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
linode Warn if IGNORE() is unreliable for this provider (#3683) 2025-07-30 20:41:49 -04:00
loopia security fix: Prevent exposure of creds in debug output (#3733) 2025-08-19 10:47:02 -04:00
luadns POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
mythicbeasts MYTHICBEASTS: Mark as concurrent verified. (#3631) 2025-06-20 10:50:22 -04:00
namecheap NAMECHEAP: Enable get-zones (#3775) 2025-09-29 13:43:03 -04:00
namedotcom Warn if IGNORE() is unreliable for this provider (#3683) 2025-07-30 20:41:49 -04:00
netcup NETCUP: add TLSA support (#3802) 2025-10-23 10:41:35 -04:00
netlify Warn if IGNORE() is unreliable for this provider (#3683) 2025-07-30 20:41:49 -04:00
ns1 POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
opensrs CHORE: Maintainer changes for OPENSRS and DIGITALOCEAN (#3849) 2025-11-24 20:29:43 -05:00
oracle POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
ovh DOCS: Reclassify providers concurrency status (#3518) 2025-04-02 16:36:00 -04:00
packetframe Warn if IGNORE() is unreliable for this provider (#3683) 2025-07-30 20:41:49 -04:00
porkbun CHORE: Upgrade github.com/failsafe-go/failsafe-go v0.6.9 to v0.7.0 (#3760) 2025-09-02 10:59:45 -04:00
powerdns BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
realtimeregister POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
route53 ROUTE53: make caching of zones thread-safe (#3328) 2025-12-03 08:35:24 -05:00
rwth Warn if IGNORE() is unreliable for this provider (#3683) 2025-07-30 20:41:49 -04:00
sakuracloud POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
softlayer Warn if IGNORE() is unreliable for this provider (#3683) 2025-07-30 20:41:49 -04:00
transip TRANSIP: Pause when rate-limited (#3378) 2025-01-16 14:17:47 -05:00
vercel VERCEL: Implement Vercel DNS Provider (#3379) (#3542) 2025-12-01 08:41:56 -05:00
vultr POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
capabilities.go AKAMAIEDGEDNS: Add ALIAS and AKAMAITLC support to the Akamai Edge DNS provider (#3836) 2025-11-14 09:48:42 -05:00
capability_string.go AKAMAIEDGEDNS: Add ALIAS and AKAMAITLC support to the Akamai Edge DNS provider (#3836) 2025-11-14 09:48:42 -05:00
providers.go POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00