mirror of https://github.com/apache/activemq.git
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.
This commit is contained in:
parent
bed86a078d
commit
d1e9ba68b3
|
@ -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…
Reference in New Issue