mirror of
https://github.com/apache/activemq.git
synced 2025-02-10 12:06:05 +00:00
AMQ-8509: Fix TempUsage memory leak
If you have an application that creates lots of queues it will eventually fail with OOM because TempUsage is started on Queue#start but never stopped. The `systemUsage.getTempUsage().start()` used on the Queue#start adds elements on a List from TempUsage parent and these elements are never removed. To reproduce this issue you need to leave an application running for a long time creating different queues. The only way to avoid the leak right now is to stop the BrokerService, which isn't a solution. (cherry picked from commit d1e9ba68b3cbea3e9294cf4993d005c3c8ea86f2)
This commit is contained in:
parent
e84025c267
commit
84a28d78f2
@ -1064,6 +1064,9 @@ public class Queue extends BaseDestination implements Task, UsageListener, Index
|
||||
if (systemUsage.getStoreUsage() != null) {
|
||||
systemUsage.getStoreUsage().stop();
|
||||
}
|
||||
if (this.systemUsage.getTempUsage() != null) {
|
||||
this.systemUsage.getTempUsage().stop();
|
||||
}
|
||||
if (store != null) {
|
||||
store.stop();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user