-
Bug
-
Resolution: Done
-
Major
-
AMQ 7.3.0.GA
-
None
JournalStorageManager::stopReplication needs to:
- acquires the manager write lock
- acquires (if any) large message intrinsic locks during performCachedLargeMessageDeletes
- acquires the manager read lock on confirmPendingLargeMessage
JournalStorageManager::stop needs to:
- acquires (if any) large message intrinsic locks during performCachedLargeMessageDeletes
- acquires the manager read lock on confirmPendingLargeMessage
A racing call to JournalStorageManager::stopReplication while stopping could deadlock
the broker:
- JournalStorageManager::stop acquires a large message intrinsic locks during performCachedLargeMessageDeletes
- JournalStorageManager::stopReplication acquires the manager write lock
- JournalStorageManager::stop wait is blocked on the manager write lock before releasing the lock on large message
- JournalStorageManager::stopReplication is blocked on the large message intrinsic lock before releasing the manager write lock
- deadlock occurred: none can proceed