PowerDNS / lightningstream

Lightning Stream syncs LMDB databases through S3 buckets between multiple servers, including PowerDNS Authoritative server 4.8+ LMDBs
https://doc.powerdns.com/lightningstream/
MIT License
25 stars 15 forks source link

Downloader: call `Close` on updates that are overwritten in `(*Downlader).LoadOnce` #70

Closed ahouene closed 5 months ago

ahouene commented 5 months ago

When an update that has not been loaded yet is replaced by a more recent one in (*Downloader).LoadOnce, the concurrency token issued by d.r.decompressedSnapshotLimit is lost and can no longer be released.

This eventually leads to decompressedSnapshotLimit being depleted and deadlocked, in turn locking (*Downloader).LoadOnce. In effect, a Syncer may no longer download anything while still appearing healthy.