Saketa Chalamchala created HDDS-15598:
-----------------------------------------

             Summary: Release all child locks in 
OMDBCheckpointServlet.Lock.lock() on exception
                 Key: HDDS-15598
                 URL: https://issues.apache.org/jira/browse/HDDS-15598
             Project: Apache Ozone
          Issue Type: Bug
          Components: OM
            Reporter: Saketa Chalamchala
            Assignee: Saketa Chalamchala


OMDBCheckpointServlet.Lock.lock() acquires multiple bootstrap locks 
sequentially (`KDS → DDS → SFS → SDS → RocksDBCheckpointDiffer`) and then calls 
`awaitDoubleBufferFlush()`. If an `InterruptedException` (or any failure) 
occurs mid‑acquisition or during `awaitDoubleBufferFlush()`, the method exits 
before returning. Because the `try‑with‑resources` in the caller never 
initializes, `close()` is not invoked and already‑acquired child locks are 
never released, exhausting bootstrap permits.

This results in background services blocking indefinitely (KDS/DDS/SFS/SDS), 
and SDS cannot purge deleted snapshots.

Ensure `lock()` releases any partially acquired locks if an exception occurs 
before returning. 



--
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