Skip to content

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

Merged
wojas merged 1 commit into
PowerDNS:mainfrom
ahouene:downloader-close-overwritten-update
Feb 7, 2024
Merged

Downloader: call Close on updates that are overwritten in (*Downlader).LoadOnce#70
wojas merged 1 commit into
PowerDNS:mainfrom
ahouene:downloader-close-overwritten-update

Conversation

@ahouene

@ahouene ahouene commented Jan 25, 2024

Copy link
Copy Markdown
Contributor

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.

…ader).LoadOnce`

When an update is replaced in `(*Downloader).LoadOnce`,
the concurrency token issued by `d.r.decompressedSnapshotLimit`
is lost and can no longer be accessed, and thus be released.
@ahouene
ahouene requested review from Habbie and wojas January 25, 2024 16:56
@ahouene ahouene self-assigned this Jan 25, 2024

@wojas wojas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, LGTM!

@wojas wojas added the bug Something isn't working label Feb 7, 2024
@wojas wojas added this to the v0.4.3 milestone Feb 7, 2024
@wojas
wojas merged commit 1e12340 into PowerDNS:main Feb 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants