Siyao Meng created HDDS-16453:
---------------------------------
Summary: Unguarded transaction buffer flush commits data under a
stale index (masked by idempotent replay)
Key: HDDS-16453
URL: https://issues.apache.org/jira/browse/HDDS-16453
Project: Apache Ozone
Issue Type: Bug
Reporter: Siyao Meng
h3. Finding
An unguarded flush() during an apply commits data under a stale transaction
index (DurableIndexMatchesData violated), so a crash+recover re-applies an
already-durable entry. Reachable from the real notifyLeaderChanged /
saveConfiguration flush callers, but the consequence is masked by SCM's
idempotent-replay design (all @Replicate transactions are absolute-put/CAS; the
one non-idempotent quantity is a deprecated no-op). Internal invariant
violation with no external effect today but real downstream divergence risk the
moment a non-idempotent replicated transaction is added.
h3. Classification
* Verdict: MASKED
* Severity: Medium
* Source: Specula TLA+ model checking and confirmation debate, finding MC-1
h3. Reproduce
{noformat}
Ozone commit: 9fbf9ee0cb1bd2f5f5d437b6719ebbe5309351fb
Specula: v1.1.0 (commit c6aa3dfa)
Target: scm-ha-tx-buffer
Guidance:
campaigns/ozone-9fbf9ee/targets/018-scm-ha-tx-buffer/.prompt-extra.md
{noformat}
{code:none}
specula run --agent=claude-code --effort=medium --keep-original
--max-parallel=2 \
--enable-reviews --confirm-debate --tlc-memory-limit=28G --tlc-worker-limit=8
\
"scm-ha-tx-buffer|apache/ozone|Java|Use the target-specific .prompt-extra.md"
{code}
Discovered under HDDS-16432 (Specula TLA+ verification effort). The TLA+
specification, counterexample, and confirmation debate live in the Specula run
artifacts.
Generated with Specula (Claude Opus 4.8).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]