[ 
https://issues.apache.org/jira/browse/HDDS-15598?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Saketa Chalamchala resolved HDDS-15598.
---------------------------------------
    Resolution: Duplicate

> 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
>            Priority: Major
>
> 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