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