Siyao Meng created HDDS-16461:
---------------------------------

             Summary: Asymmetric decrement inflates persisted 
pendingDeleteBlockCount (masked by restart reset)
                 Key: HDDS-16461
                 URL: https://issues.apache.org/jira/browse/HDDS-16461
             Project: Apache Ozone
          Issue Type: Bug
            Reporter: Siyao Meng


h3. Finding
An asymmetric decrement in the V2/V3 block-deletion path leaves the persisted 
pendingDeleteBlockCount inflated on a fully drained container (an internal 
invariant violation reachable via the real mark path plus one background 
deletion pass when a block is processed more times than it is unlinked, e.g. 
duplicate txns per HDDS-11267 or SCM at-least-once redelivery). No live 
consumer reads the persisted value while the DN runs; the only activation path 
(restart reload) is masked by resetPendingDeleteBlockCount (HDDS-7156), which 
converts the divergence into one wasted deletion pass and a log line rather 
than external corruption.

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:       dn-block-deletion
Guidance:     
campaigns/ozone-9fbf9ee/targets/017-dn-block-deletion/.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 
\
  "dn-block-deletion|apache/ozone|Java|Use the target-specific .prompt-extra.md"
{code}
Discovered under HDDS-16433 (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]

Reply via email to