Skip to content

llmeta: reset the resume key once a resumable scan finishes - #6215

Open
markhannum wants to merge 1 commit into
bloomberg:mainfrom
markhannum:llmeta-resume-reset
Open

markhannum wants to merge 1 commit into
bloomberg:mainfrom
markhannum:llmeta-resume-reset

Conversation

@markhannum

Copy link
Copy Markdown
Contributor

bdb_process_each_entry_resumable scans llmeta straight into the caller's resume buffer, so a scan that walks off the end of its prefix leaves the next file_type's key in *resume. Nothing clears it, and the purge thread's next pass after a master change trips the prefix assert (llmeta.c:10519, seen as a core in phys_rep_tiered); a release build would instead silently stop purging old files.

Keep the resume key only when the callback stops early, don't copy an unfetched key into it, and free it once the scan finishes or fails.

@roborivers roborivers left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cbuild submission: Success ✓.
Regression testing: Success ✓.

The first 10 failing tests are:
sc_truncate [db unavailable at finish]
consumer_non_atomic_default_consumer_generated **quarantined**
sc_downgrade [timeout] **quarantined**
reco-ddlk-sql [timeout] **quarantined**
tsa [timeout]

A completed scan left the next foreign-prefix key in *resume, so the
purge thread's next pass after a master change tripped the prefix
assert.

Signed-off-by: Mark Hannum <mhannum@bloomberg.net>

@roborivers roborivers left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cbuild submission: Error ⚠.
Regression testing: Success ✓.

The first 10 failing tests are:
consumer_non_atomic_default_consumer_generated **quarantined**
bind_query_plan
sc_downgrade [timeout] **quarantined**

@roborivers roborivers left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cbuild submission: Success ✓.
Regression testing: Success ✓.

The first 10 failing tests are:
reco-ddlk-sql **quarantined**
consumer_non_atomic_default_consumer_generated **quarantined**
sc_downgrade [timeout] **quarantined**
truncatesc_offline_generated [timeout] **quarantined**

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