Skip to content

SDSTOR-24993, SDSTOR-25623: propagate journal flush I/O errors and fail-stop on unrecoverable flush failure - #917

Open
shosseinimotlagh wants to merge 1 commit into
eBay:stable/v7.xfrom
shosseinimotlagh:flush_error_propagation
Open

shosseinimotlagh wants to merge 1 commit into
eBay:stable/v7.xfrom
shosseinimotlagh:flush_error_propagation

Conversation

@shosseinimotlagh

@shosseinimotlagh shosseinimotlagh commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Summary

  • log_write_comp_cb_t/log_req_comp_cb_t now carry a std::error_condition status. LogDev::on_flush_completion() always fires the completion callback -- success or failure -- instead of returning early on a sync_pwritev failure and never calling back at all.
  • HomeRaftLogStore::append/write_at and SoloReplDev::write_journal now check that status: on a flush I/O error they escalate via fault_cmt_service if the embedder registered one, otherwise fail-stop (HS_REL_ASSERT), instead of silently treating a non-durable write as committed.

Test plan

  • New regression tests: FlushIOErrorPropagatesToCallback, FlushIOErrorPropagatesToEveryRequestInGroup in test_log_store.cpp, using a _PRERELEASE flip to force a flush failure.
  • Existing test_log_store/test_log_store_long_run suites updated mechanically for the new callback signature and pass.

…il-stop on unrecoverable flush failure

Propagate journal flush I/O errors to the write_async callback instead of
swallowing them, and fail-stop when a flush failure is unrecoverable so the
process doesn't keep operating against a corrupted log.
@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 40.47619% with 25 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (stable/v7.x@be49268). Learn more about missing BASE report.

Files with missing lines Patch % Lines
.../lib/replication/log_store/home_raft_log_store.cpp 31.25% 5 Missing and 6 partials ⚠️
src/lib/logstore/log_dev.cpp 53.33% 0 Missing and 7 partials ⚠️
src/lib/replication/repl_dev/solo_repl_dev.cpp 14.28% 5 Missing and 1 partial ⚠️
src/lib/logstore/log_store.cpp 75.00% 0 Missing and 1 partial ⚠️
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@              Coverage Diff               @@
##             stable/v7.x     #917   +/-   ##
==============================================
  Coverage               ?   48.27%           
==============================================
  Files                  ?      110           
  Lines                  ?    13136           
  Branches               ?     6343           
==============================================
  Hits                   ?     6342           
  Misses                 ?     2564           
  Partials               ?     4230           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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