[jira] [Updated] (AMQ-5447) Memory Leak after shutdown embeded broker with JDBC persistence

2014-11-21 Thread Shi Lei (JIRA)

 [ 
https://issues.apache.org/jira/browse/AMQ-5447?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shi Lei updated AMQ-5447:
-
Attachment: 2.png

path to root

> Memory Leak after shutdown embeded broker with JDBC persistence
> ---
>
> Key: AMQ-5447
> URL: https://issues.apache.org/jira/browse/AMQ-5447
> Project: ActiveMQ
>  Issue Type: Bug
>  Components: Broker, Message Store
>Affects Versions: 5.10.0
> Environment: Windows7, JDK7
>Reporter: Shi Lei
> Attachments: 1.png, 2.png, JDBCPersistenceAdapter.java, patch.txt
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> After shutdown embeded activemq broker with JDBC store, 2 'ActiveMQ JDBC PA 
> Scheduled Task' is still alive.
> Because the 2 thread's Thread factory is object of JDBCPersistenceAdapter's 
> inner class, so the object of JDBCPersistenceAdapter can be reached from the 
> 2 threads, JDBCPersistenceAdapter has a field point to BrokerService. So the 
> instance of BrokerService can be reached from the 2 threads.
> So the stopped brokerService cannot be GC.
> The root cause is that when stopping JDBCPersistenceAdapter, only cancelling 
> cleanupTicket without shutdown clockDaemon, that's why the 2 threads are 
> still alive.
> According to 
> http://activemq.apache.org/how-do-i-restart-embedded-broker.html, it's better 
> (more reliable) to instantiate the broker again instead of reuse old broker. 
> So if I restart embeded broker, there will be  1 more BrokerService in 
> memory. I think it's memory leak.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (AMQ-5447) Memory Leak after shutdown embeded broker with JDBC persistence

2014-11-21 Thread Shi Lei (JIRA)

 [ 
https://issues.apache.org/jira/browse/AMQ-5447?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shi Lei updated AMQ-5447:
-
Attachment: 1.png

Memory Leak

> Memory Leak after shutdown embeded broker with JDBC persistence
> ---
>
> Key: AMQ-5447
> URL: https://issues.apache.org/jira/browse/AMQ-5447
> Project: ActiveMQ
>  Issue Type: Bug
>  Components: Broker, Message Store
>Affects Versions: 5.10.0
> Environment: Windows7, JDK7
>Reporter: Shi Lei
> Attachments: 1.png, 2.png, JDBCPersistenceAdapter.java, patch.txt
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> After shutdown embeded activemq broker with JDBC store, 2 'ActiveMQ JDBC PA 
> Scheduled Task' is still alive.
> Because the 2 thread's Thread factory is object of JDBCPersistenceAdapter's 
> inner class, so the object of JDBCPersistenceAdapter can be reached from the 
> 2 threads, JDBCPersistenceAdapter has a field point to BrokerService. So the 
> instance of BrokerService can be reached from the 2 threads.
> So the stopped brokerService cannot be GC.
> The root cause is that when stopping JDBCPersistenceAdapter, only cancelling 
> cleanupTicket without shutdown clockDaemon, that's why the 2 threads are 
> still alive.
> According to 
> http://activemq.apache.org/how-do-i-restart-embedded-broker.html, it's better 
> (more reliable) to instantiate the broker again instead of reuse old broker. 
> So if I restart embeded broker, there will be  1 more BrokerService in 
> memory. I think it's memory leak.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (AMQ-5447) Memory Leak after shutdown embeded broker with JDBC persistence

2014-11-21 Thread Shi Lei (JIRA)

 [ 
https://issues.apache.org/jira/browse/AMQ-5447?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shi Lei updated AMQ-5447:
-
Attachment: patch.txt

patch

> Memory Leak after shutdown embeded broker with JDBC persistence
> ---
>
> Key: AMQ-5447
> URL: https://issues.apache.org/jira/browse/AMQ-5447
> Project: ActiveMQ
>  Issue Type: Bug
>  Components: Broker, Message Store
>Affects Versions: 5.10.0
> Environment: Windows7, JDK7
>Reporter: Shi Lei
> Attachments: JDBCPersistenceAdapter.java, patch.txt
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> After shutdown embeded activemq broker with JDBC store, 2 'ActiveMQ JDBC PA 
> Scheduled Task' is still alive.
> Because the 2 thread's Thread factory is object of JDBCPersistenceAdapter's 
> inner class, so the object of JDBCPersistenceAdapter can be reached from the 
> 2 threads, JDBCPersistenceAdapter has a field point to BrokerService. So the 
> instance of BrokerService can be reached from the 2 threads.
> So the stopped brokerService cannot be GC.
> The root cause is that when stopping JDBCPersistenceAdapter, only cancelling 
> cleanupTicket without shutdown clockDaemon, that's why the 2 threads are 
> still alive.
> According to 
> http://activemq.apache.org/how-do-i-restart-embedded-broker.html, it's better 
> (more reliable) to instantiate the broker again instead of reuse old broker. 
> So if I restart embeded broker, there will be  1 more BrokerService in 
> memory. I think it's memory leak.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (AMQ-5447) Memory Leak after shutdown embeded broker with JDBC persistence

2014-11-20 Thread Shi Lei (JIRA)

 [ 
https://issues.apache.org/jira/browse/AMQ-5447?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shi Lei updated AMQ-5447:
-
Attachment: JDBCPersistenceAdapter.java

patch on 5.10

> Memory Leak after shutdown embeded broker with JDBC persistence
> ---
>
> Key: AMQ-5447
> URL: https://issues.apache.org/jira/browse/AMQ-5447
> Project: ActiveMQ
>  Issue Type: Bug
>  Components: Broker, Message Store
>Affects Versions: 5.10.0
> Environment: Windows7, JDK7
>Reporter: Shi Lei
> Attachments: JDBCPersistenceAdapter.java
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> After shutdown embeded activemq broker with JDBC store, 2 'ActiveMQ JDBC PA 
> Scheduled Task' is still alive.
> Because the 2 thread's Thread factory is object of JDBCPersistenceAdapter's 
> inner class, so the object of JDBCPersistenceAdapter can be reached from the 
> 2 threads, JDBCPersistenceAdapter has a field point to BrokerService. So the 
> instance of BrokerService can be reached from the 2 threads.
> So the stopped brokerService cannot be GC.
> The root cause is that when stopping JDBCPersistenceAdapter, only cancelling 
> cleanupTicket without shutdown clockDaemon, that's why the 2 threads are 
> still alive.
> According to 
> http://activemq.apache.org/how-do-i-restart-embedded-broker.html, it's better 
> (more reliable) to instantiate the broker again instead of reuse old broker. 
> So if I restart embeded broker, there will be  1 more BrokerService in 
> memory. I think it's memory leak.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (AMQ-5447) Memory Leak after shutdown embeded broker with JDBC persistence

2014-11-20 Thread Shi Lei (JIRA)

 [ 
https://issues.apache.org/jira/browse/AMQ-5447?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shi Lei updated AMQ-5447:
-
Description: 
After shutdown embeded activemq broker with JDBC store, 2 'ActiveMQ JDBC PA 
Scheduled Task' is still alive.
Because the 2 thread's Thread factory is object of JDBCPersistenceAdapter's 
inner class, so the object of JDBCPersistenceAdapter can be reached from the 2 
threads, JDBCPersistenceAdapter has a field point to BrokerService. So the 
instance of BrokerService can be reached from the 2 threads.

So the stopped brokerService cannot be GC.

The root cause is that when stopping JDBCPersistenceAdapter, only cancelling 
cleanupTicket without shutdown clockDaemon, that's why the 2 threads are still 
alive.

According to http://activemq.apache.org/how-do-i-restart-embedded-broker.html, 
it's better (more reliable) to instantiate the broker again instead of reuse 
old broker. So if I restart embeded broker, there will be  1 more BrokerService 
in memory. I think it's memory leak.

  was:
After shutdown embeded activemq broker with JDBC store, 2 'ActiveMQ JDBC PA 
Scheduled Task' is still alive.
Because the 2 thread's Thread factory is object of JDBCPersistenceAdapter's 
inner class, so the object of JDBCPersistenceAdapter can be referenced from the 
2 threads, JDBCPersistenceAdapter has a field point to BrokerService. So the 
instance of BrokerService can be referenced from the 2 threads.

So the stopped brokerService cannot be GC.

The root cause is that when stopping JDBCPersistenceAdapter, only cancelling 
cleanupTicket without shutdown clockDaemon, that's why the 2 threads are still 
alive.

According to http://activemq.apache.org/how-do-i-restart-embedded-broker.html, 
it's better (more reliable) to instantiate the broker again instead of reuse 
old broker. So if I restart embeded broker, there will be  1 more BrokerService 
in memory. I think it's memory leak.


> Memory Leak after shutdown embeded broker with JDBC persistence
> ---
>
> Key: AMQ-5447
> URL: https://issues.apache.org/jira/browse/AMQ-5447
> Project: ActiveMQ
>  Issue Type: Bug
>  Components: Broker, Message Store
>Affects Versions: 5.10.0
> Environment: Windows7, JDK7
>Reporter: Shi Lei
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> After shutdown embeded activemq broker with JDBC store, 2 'ActiveMQ JDBC PA 
> Scheduled Task' is still alive.
> Because the 2 thread's Thread factory is object of JDBCPersistenceAdapter's 
> inner class, so the object of JDBCPersistenceAdapter can be reached from the 
> 2 threads, JDBCPersistenceAdapter has a field point to BrokerService. So the 
> instance of BrokerService can be reached from the 2 threads.
> So the stopped brokerService cannot be GC.
> The root cause is that when stopping JDBCPersistenceAdapter, only cancelling 
> cleanupTicket without shutdown clockDaemon, that's why the 2 threads are 
> still alive.
> According to 
> http://activemq.apache.org/how-do-i-restart-embedded-broker.html, it's better 
> (more reliable) to instantiate the broker again instead of reuse old broker. 
> So if I restart embeded broker, there will be  1 more BrokerService in 
> memory. I think it's memory leak.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)