Skip to content

cmd/utils/app: wait for background build/merge before MergeLoop in seg retire#21023

Merged
AskAlexSharov merged 2 commits into
mainfrom
seg_retire_wait
May 7, 2026
Merged

cmd/utils/app: wait for background build/merge before MergeLoop in seg retire#21023
AskAlexSharov merged 2 commits into
mainfrom
seg_retire_wait

Conversation

@sudeepdino008

@sudeepdino008 sudeepdino008 commented May 7, 2026

Copy link
Copy Markdown
Member

Summary

  • In seg retire, BuildFiles can leave background build/merge goroutines running. If MergeLoop runs while one of those is still in flight, its mergingFiles CAS loses to the background merge and MergeLoop returns immediately without doing anything.
  • The next MergeLoop is typically skipped because an earlier one is running. And so the whole merge logic was being skipped.
  • Drain background work via agg.WaitForFiles() between BuildFiles/prune and MergeLoop so the merge step actually runs.

Test plan

  • make lint passes
  • make erigon builds
  • Run erigon seg retire on a datadir where background build/merge is active and confirm MergeLoop performs merges (previously a no-op)

…g retire

Wait for any background build/merge work kicked off by BuildFiles to drain
before MergeLoop — otherwise MergeLoop's mergingFiles CAS would lose to the
background merge and return immediately without doing anything.
@AskAlexSharov AskAlexSharov added this pull request to the merge queue May 7, 2026
Merged via the queue into main with commit fa2ab7f May 7, 2026
38 checks passed
@AskAlexSharov AskAlexSharov deleted the seg_retire_wait branch May 7, 2026 08:02
sudeepdino008 added a commit that referenced this pull request May 12, 2026
…, kv integrity (#21135)

Cherry-picks to `release/3.4`:

- #20939 — cmd/integration: allow resume of commitment rebuild (no
history case)
- #21023 — cmd/utils/app: wait for background build/merge before
MergeLoop in seg retire
- #21029 — db/integrity: enable CommitmentRoot check on all .kv files

---------

Co-authored-by: moskud <sudeepdino008@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants