linliu-code opened a new issue, #20162:
URL: https://github.com/apache/hudi/issues/20162

   When a StorageBasedLockProvider release fails (for example the expire write 
throws after its retries), LockManager.unlock() skips close(), so the provider 
keeps a lock object whose heartbeat is already stopped and LockManager keeps 
the provider. The next lock() on the same LockManager reuses it, and the 
provider's reentrant path reports the lock as acquired without restarting the 
heartbeat; its shutdown hook and heartbeat manager also stay alive until the 
JVM exits.
   
   Separately, TimelineArchiverV1 and TimelineArchiverV2 each create a private 
TransactionManager that nothing closes. On the archive path this means a failed 
release is never re-attempted by close(), so the lock stays stranded for its 
full lease and the provider leaks. TimelineArchiverV2 also leaks the provider 
when lock acquisition fails.
   
   Expected: a failed unlock leaves no reused provider, and the archivers close 
their lock resources on every exit path.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to