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]