You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by lzr <js...@163.com> on 2013/06/16 10:07:42 UTC

Thread leak in Activemq 5.6

Dear all,


I found a thread leak issue during try activemq 5.6:
I create connection when sending message and close it once the sending finished.
Occassionally I restart activemq broker and found one thread generated with name "ActiveMQ Connection Executor...".
For deep research, I restarted the broker several times and same number thread generated; I attached the picture of my debug.
Could anybody give me some clues? I just want to know if this is a bug for ActiveMQ. The attachments includes my applications and the debugging pictures.


It would be much appreciated if you make any suggestion!!!


Thanks in advance,
Zhuran Li








At 2013-06-14 23:03:55,"Christian Posta" <ch...@gmail.com> wrote:
>Would need to be able to re-create this... Please put together a unit test
>that reproduces this.
>
>
>On Fri, Jun 14, 2013 at 1:00 AM, lzr <js...@163.com> wrote:
>
>> Dear all,
>>
>>
>> I'm using Acitvemq 5.6 with my app and struggling to handle the following
>> Exception:
>> 2013-06-13 09:53:46,018 | WARN  | Send failed for: ActiveMQObjectMessage
>> {commandId = 6, responseRequired = false, messageId =
>> ID:nfsnnc02-46547-1370842535042-0:547519:1:1:1, originalDestination = null,
>> originalTransactionId = null, producerId =
>> ID:nfsnnc02-46547-1370842535042-0:547519:1:1, destination =
>> queue://10408_base, transactionId =
>> TX:ID:nfsnnc02-46547-1370842535042-0:547519:1, expiration = 0, timestamp =
>> 1371088670829, arrival = 0, brokerInTime = 1371088426003, brokerOutTime =
>> 0, correlationId = null, replyTo = null, persistent = true, type = null,
>> priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null,
>> compressed = false, userID = null, content =
>> org.apache.activemq.util.ByteSequence@c4b67b, marshalledProperties =
>> org.apache.activemq.util.ByteSequence@a84ac2, dataStructure = null,
>> redeliveryCounter = 0, size = 0, properties = {createtime=2013-06-13
>> 09:57:50, datasize=1, syncflag=bd_defdoc}, readOnlyProperties = false,
>> readOnlyBody = false, droppable = fals
>>  e},  missing producer state for:
>> org.apache.activemq.broker.ProducerBrokerExchange@c44470 |
>> org.apache.activemq.broker.region.Queue | ActiveMQ Transport: tcp:///
>> 10.1.100.66:64118
>> 2013-06-13 09:53:46,018 | WARN  | Async error occurred:
>> javax.jms.JMSException: Cannot send message to queue://10408_base with
>> invalid (null) producer state |
>> org.apache.activemq.broker.TransportConnection.Service | ActiveMQ
>> Transport: tcp:///10.1.100.66:64118
>> javax.jms.JMSException: Cannot send message to queue://10408_base with
>> invalid (null) producer state
>> at org.apache.activemq.broker.region.Queue.send(Queue.java:589)
>> at
>> org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:407)
>> at
>> org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:503)
>> at
>> org.apache.activemq.broker.jmx.ManagedRegionBroker.send(ManagedRegionBroker.java:305)
>> at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:129)
>> at
>> org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96)
>> at
>> org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:306)
>> at
>> org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:135)
>> at
>> org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:453)
>> at
>> org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:681)
>> at
>> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:292)
>> at
>> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:150)
>> at
>> org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
>> at
>> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
>> at
>> org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:229)
>> at
>> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
>> at
>> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:222)
>> at
>> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:204)
>> at java.lang.Thread.run(Thread.java:619)
>>
>>
>> Could anybody give me some clue? It would be much appreciated if any
>> questions.
>>
>>
>> Thanks a lot,
>> Zhuran Li
>
>
>
>
>-- 
>*Christian Posta*
>http://www.christianposta.com/blog
>twitter: @christianposta

Re:Re: Thread leak in Activemq 5.6

Posted by lzr <js...@163.com>.
Thanks a lot for the checking. Please kindly let me know if any updates.



At 2013-06-17 23:23:24,"Christian Posta" <ch...@gmail.com> wrote:
>Yah, I can verify this is the case. Threads leak because the
>threadpoolexecutor doesn't evict the threads. Checking for the best
>solution to this.
>
>
>On Sun, Jun 16, 2013 at 4:07 AM, lzr <js...@163.com> wrote:
>
>> Dear all,
>>
>>
>> I found a thread leak issue during try activemq 5.6:
>> I create connection when sending message and close it once the sending
>> finished.
>> Occassionally I restart activemq broker and found one thread generated
>> with name "ActiveMQ Connection Executor...".
>> For deep research, I restarted the broker several times and same number
>> thread generated; I attached the picture of my debug.
>> Could anybody give me some clues? I just want to know if this is a bug for
>> ActiveMQ. The attachments includes my applications and the debugging
>> pictures.
>>
>>
>> It would be much appreciated if you make any suggestion!!!
>>
>>
>> Thanks in advance,
>> Zhuran Li
>>
>>
>>
>>
>>
>>
>>
>>
>> At 2013-06-14 23:03:55,"Christian Posta" <ch...@gmail.com>
>> wrote:
>> >Would need to be able to re-create this... Please put together a unit test
>> >that reproduces this.
>> >
>> >
>> >On Fri, Jun 14, 2013 at 1:00 AM, lzr <js...@163.com> wrote:
>> >
>> >> Dear all,
>> >>
>> >>
>> >> I'm using Acitvemq 5.6 with my app and struggling to handle the
>> following
>> >> Exception:
>> >> 2013-06-13 09:53:46,018 | WARN  | Send failed for: ActiveMQObjectMessage
>> >> {commandId = 6, responseRequired = false, messageId =
>> >> ID:nfsnnc02-46547-1370842535042-0:547519:1:1:1, originalDestination =
>> null,
>> >> originalTransactionId = null, producerId =
>> >> ID:nfsnnc02-46547-1370842535042-0:547519:1:1, destination =
>> >> queue://10408_base, transactionId =
>> >> TX:ID:nfsnnc02-46547-1370842535042-0:547519:1, expiration = 0,
>> timestamp =
>> >> 1371088670829, arrival = 0, brokerInTime = 1371088426003, brokerOutTime
>> =
>> >> 0, correlationId = null, replyTo = null, persistent = true, type = null,
>> >> priority = 4, groupID = null, groupSequence = 0, targetConsumerId =
>> null,
>> >> compressed = false, userID = null, content =
>> >> org.apache.activemq.util.ByteSequence@c4b67b, marshalledProperties =
>> >> org.apache.activemq.util.ByteSequence@a84ac2, dataStructure = null,
>> >> redeliveryCounter = 0, size = 0, properties = {createtime=2013-06-13
>> >> 09:57:50, datasize=1, syncflag=bd_defdoc}, readOnlyProperties = false,
>> >> readOnlyBody = false, droppable = fals
>> >>  e},  missing producer state for:
>> >> org.apache.activemq.broker.ProducerBrokerExchange@c44470 |
>> >> org.apache.activemq.broker.region.Queue | ActiveMQ Transport: tcp:///
>> >> 10.1.100.66:64118
>> >> 2013-06-13 09:53:46,018 | WARN  | Async error occurred:
>> >> javax.jms.JMSException: Cannot send message to queue://10408_base with
>> >> invalid (null) producer state |
>> >> org.apache.activemq.broker.TransportConnection.Service | ActiveMQ
>> >> Transport: tcp:///10.1.100.66:64118
>> >> javax.jms.JMSException: Cannot send message to queue://10408_base with
>> >> invalid (null) producer state
>> >> at org.apache.activemq.broker.region.Queue.send(Queue.java:589)
>> >> at
>> >>
>> org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:407)
>> >> at
>> >>
>> org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:503)
>> >> at
>> >>
>> org.apache.activemq.broker.jmx.ManagedRegionBroker.send(ManagedRegionBroker.java:305)
>> >> at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:129)
>> >> at
>> >>
>> org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96)
>> >> at
>> >>
>> org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:306)
>> >> at
>> >>
>> org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:135)
>> >> at
>> >>
>> org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:453)
>> >> at
>> >>
>> org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:681)
>> >> at
>> >>
>> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:292)
>> >> at
>> >>
>> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:150)
>> >> at
>> >>
>> org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
>> >> at
>> >>
>> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
>> >> at
>> >>
>> org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:229)
>> >> at
>> >>
>> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
>> >> at
>> >>
>> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:222)
>> >> at
>> >>
>> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:204)
>> >> at java.lang.Thread.run(Thread.java:619)
>> >>
>> >>
>> >> Could anybody give me some clue? It would be much appreciated if any
>> >> questions.
>> >>
>> >>
>> >> Thanks a lot,
>> >> Zhuran Li
>> >
>> >
>> >
>> >
>> >--
>> >*Christian Posta*
>> >http://www.christianposta.com/blog
>> >twitter: @christianposta
>>
>
>
>
>-- 
>*Christian Posta*
>http://www.christianposta.com/blog
>twitter: @christianposta

Re: Thread leak in Activemq 5.6

Posted by Christian Posta <ch...@gmail.com>.
I've closed the Jira, this is not an issue. You can take a look at the test
cases to see why. They're adapted from your orignal tests.

Cheers


On Mon, Jun 17, 2013 at 3:35 PM, Christian Posta
<ch...@gmail.com>wrote:

> I've opened a JIRA here: https://issues.apache.org/jira/browse/AMQ-4586
>
> The workaround for your case is to use the failover transport and you
> won't see the executor threads leaked.
>
>
> On Mon, Jun 17, 2013 at 11:23 AM, Christian Posta <
> christian.posta@gmail.com> wrote:
>
>> Yah, I can verify this is the case. Threads leak because the
>> threadpoolexecutor doesn't evict the threads. Checking for the best
>> solution to this.
>>
>>
>> On Sun, Jun 16, 2013 at 4:07 AM, lzr <js...@163.com> wrote:
>>
>>> Dear all,
>>>
>>>
>>> I found a thread leak issue during try activemq 5.6:
>>> I create connection when sending message and close it once the sending
>>> finished.
>>> Occassionally I restart activemq broker and found one thread generated
>>> with name "ActiveMQ Connection Executor...".
>>> For deep research, I restarted the broker several times and same number
>>> thread generated; I attached the picture of my debug.
>>> Could anybody give me some clues? I just want to know if this is a bug
>>> for ActiveMQ. The attachments includes my applications and the debugging
>>> pictures.
>>>
>>>
>>> It would be much appreciated if you make any suggestion!!!
>>>
>>>
>>> Thanks in advance,
>>> Zhuran Li
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> At 2013-06-14 23:03:55,"Christian Posta" <ch...@gmail.com>
>>> wrote:
>>> >Would need to be able to re-create this... Please put together a unit
>>> test
>>> >that reproduces this.
>>> >
>>> >
>>> >On Fri, Jun 14, 2013 at 1:00 AM, lzr <js...@163.com> wrote:
>>> >
>>> >> Dear all,
>>> >>
>>> >>
>>> >> I'm using Acitvemq 5.6 with my app and struggling to handle the
>>> following
>>> >> Exception:
>>> >> 2013-06-13 09:53:46,018 | WARN  | Send failed for:
>>> ActiveMQObjectMessage
>>> >> {commandId = 6, responseRequired = false, messageId =
>>> >> ID:nfsnnc02-46547-1370842535042-0:547519:1:1:1, originalDestination =
>>> null,
>>> >> originalTransactionId = null, producerId =
>>> >> ID:nfsnnc02-46547-1370842535042-0:547519:1:1, destination =
>>> >> queue://10408_base, transactionId =
>>> >> TX:ID:nfsnnc02-46547-1370842535042-0:547519:1, expiration = 0,
>>> timestamp =
>>> >> 1371088670829, arrival = 0, brokerInTime = 1371088426003,
>>> brokerOutTime =
>>> >> 0, correlationId = null, replyTo = null, persistent = true, type =
>>> null,
>>> >> priority = 4, groupID = null, groupSequence = 0, targetConsumerId =
>>> null,
>>> >> compressed = false, userID = null, content =
>>> >> org.apache.activemq.util.ByteSequence@c4b67b, marshalledProperties =
>>> >> org.apache.activemq.util.ByteSequence@a84ac2, dataStructure = null,
>>> >> redeliveryCounter = 0, size = 0, properties = {createtime=2013-06-13
>>> >> 09:57:50, datasize=1, syncflag=bd_defdoc}, readOnlyProperties = false,
>>> >> readOnlyBody = false, droppable = fals
>>> >>  e},  missing producer state for:
>>> >> org.apache.activemq.broker.ProducerBrokerExchange@c44470 |
>>> >> org.apache.activemq.broker.region.Queue | ActiveMQ Transport: tcp:///
>>> >> 10.1.100.66:64118
>>> >> 2013-06-13 09:53:46,018 | WARN  | Async error occurred:
>>> >> javax.jms.JMSException: Cannot send message to queue://10408_base with
>>> >> invalid (null) producer state |
>>> >> org.apache.activemq.broker.TransportConnection.Service | ActiveMQ
>>> >> Transport: tcp:///10.1.100.66:64118
>>> >> javax.jms.JMSException: Cannot send message to queue://10408_base with
>>> >> invalid (null) producer state
>>> >> at org.apache.activemq.broker.region.Queue.send(Queue.java:589)
>>> >> at
>>> >>
>>> org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:407)
>>> >> at
>>> >>
>>> org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:503)
>>> >> at
>>> >>
>>> org.apache.activemq.broker.jmx.ManagedRegionBroker.send(ManagedRegionBroker.java:305)
>>> >> at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:129)
>>> >> at
>>> >>
>>> org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96)
>>> >> at
>>> >>
>>> org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:306)
>>> >> at
>>> >>
>>> org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:135)
>>> >> at
>>> >>
>>> org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:453)
>>> >> at
>>> >>
>>> org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:681)
>>> >> at
>>> >>
>>> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:292)
>>> >> at
>>> >>
>>> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:150)
>>> >> at
>>> >>
>>> org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
>>> >> at
>>> >>
>>> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
>>> >> at
>>> >>
>>> org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:229)
>>> >> at
>>> >>
>>> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
>>> >> at
>>> >>
>>> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:222)
>>> >> at
>>> >>
>>> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:204)
>>> >> at java.lang.Thread.run(Thread.java:619)
>>> >>
>>> >>
>>> >> Could anybody give me some clue? It would be much appreciated if any
>>> >> questions.
>>> >>
>>> >>
>>> >> Thanks a lot,
>>> >> Zhuran Li
>>> >
>>> >
>>> >
>>> >
>>> >--
>>> >*Christian Posta*
>>> >http://www.christianposta.com/blog
>>> >twitter: @christianposta
>>>
>>
>>
>>
>> --
>> *Christian Posta*
>> http://www.christianposta.com/blog
>> twitter: @christianposta
>>
>
>
>
> --
> *Christian Posta*
> http://www.christianposta.com/blog
> twitter: @christianposta
>



-- 
*Christian Posta*
http://www.christianposta.com/blog
twitter: @christianposta

Re: Thread leak in Activemq 5.6

Posted by Christian Posta <ch...@gmail.com>.
I've opened a JIRA here: https://issues.apache.org/jira/browse/AMQ-4586

The workaround for your case is to use the failover transport and you won't
see the executor threads leaked.


On Mon, Jun 17, 2013 at 11:23 AM, Christian Posta <christian.posta@gmail.com
> wrote:

> Yah, I can verify this is the case. Threads leak because the
> threadpoolexecutor doesn't evict the threads. Checking for the best
> solution to this.
>
>
> On Sun, Jun 16, 2013 at 4:07 AM, lzr <js...@163.com> wrote:
>
>> Dear all,
>>
>>
>> I found a thread leak issue during try activemq 5.6:
>> I create connection when sending message and close it once the sending
>> finished.
>> Occassionally I restart activemq broker and found one thread generated
>> with name "ActiveMQ Connection Executor...".
>> For deep research, I restarted the broker several times and same number
>> thread generated; I attached the picture of my debug.
>> Could anybody give me some clues? I just want to know if this is a bug
>> for ActiveMQ. The attachments includes my applications and the debugging
>> pictures.
>>
>>
>> It would be much appreciated if you make any suggestion!!!
>>
>>
>> Thanks in advance,
>> Zhuran Li
>>
>>
>>
>>
>>
>>
>>
>>
>> At 2013-06-14 23:03:55,"Christian Posta" <ch...@gmail.com>
>> wrote:
>> >Would need to be able to re-create this... Please put together a unit
>> test
>> >that reproduces this.
>> >
>> >
>> >On Fri, Jun 14, 2013 at 1:00 AM, lzr <js...@163.com> wrote:
>> >
>> >> Dear all,
>> >>
>> >>
>> >> I'm using Acitvemq 5.6 with my app and struggling to handle the
>> following
>> >> Exception:
>> >> 2013-06-13 09:53:46,018 | WARN  | Send failed for:
>> ActiveMQObjectMessage
>> >> {commandId = 6, responseRequired = false, messageId =
>> >> ID:nfsnnc02-46547-1370842535042-0:547519:1:1:1, originalDestination =
>> null,
>> >> originalTransactionId = null, producerId =
>> >> ID:nfsnnc02-46547-1370842535042-0:547519:1:1, destination =
>> >> queue://10408_base, transactionId =
>> >> TX:ID:nfsnnc02-46547-1370842535042-0:547519:1, expiration = 0,
>> timestamp =
>> >> 1371088670829, arrival = 0, brokerInTime = 1371088426003,
>> brokerOutTime =
>> >> 0, correlationId = null, replyTo = null, persistent = true, type =
>> null,
>> >> priority = 4, groupID = null, groupSequence = 0, targetConsumerId =
>> null,
>> >> compressed = false, userID = null, content =
>> >> org.apache.activemq.util.ByteSequence@c4b67b, marshalledProperties =
>> >> org.apache.activemq.util.ByteSequence@a84ac2, dataStructure = null,
>> >> redeliveryCounter = 0, size = 0, properties = {createtime=2013-06-13
>> >> 09:57:50, datasize=1, syncflag=bd_defdoc}, readOnlyProperties = false,
>> >> readOnlyBody = false, droppable = fals
>> >>  e},  missing producer state for:
>> >> org.apache.activemq.broker.ProducerBrokerExchange@c44470 |
>> >> org.apache.activemq.broker.region.Queue | ActiveMQ Transport: tcp:///
>> >> 10.1.100.66:64118
>> >> 2013-06-13 09:53:46,018 | WARN  | Async error occurred:
>> >> javax.jms.JMSException: Cannot send message to queue://10408_base with
>> >> invalid (null) producer state |
>> >> org.apache.activemq.broker.TransportConnection.Service | ActiveMQ
>> >> Transport: tcp:///10.1.100.66:64118
>> >> javax.jms.JMSException: Cannot send message to queue://10408_base with
>> >> invalid (null) producer state
>> >> at org.apache.activemq.broker.region.Queue.send(Queue.java:589)
>> >> at
>> >>
>> org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:407)
>> >> at
>> >>
>> org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:503)
>> >> at
>> >>
>> org.apache.activemq.broker.jmx.ManagedRegionBroker.send(ManagedRegionBroker.java:305)
>> >> at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:129)
>> >> at
>> >>
>> org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96)
>> >> at
>> >>
>> org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:306)
>> >> at
>> >>
>> org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:135)
>> >> at
>> >>
>> org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:453)
>> >> at
>> >>
>> org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:681)
>> >> at
>> >>
>> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:292)
>> >> at
>> >>
>> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:150)
>> >> at
>> >>
>> org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
>> >> at
>> >>
>> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
>> >> at
>> >>
>> org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:229)
>> >> at
>> >>
>> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
>> >> at
>> >>
>> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:222)
>> >> at
>> >>
>> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:204)
>> >> at java.lang.Thread.run(Thread.java:619)
>> >>
>> >>
>> >> Could anybody give me some clue? It would be much appreciated if any
>> >> questions.
>> >>
>> >>
>> >> Thanks a lot,
>> >> Zhuran Li
>> >
>> >
>> >
>> >
>> >--
>> >*Christian Posta*
>> >http://www.christianposta.com/blog
>> >twitter: @christianposta
>>
>
>
>
> --
> *Christian Posta*
> http://www.christianposta.com/blog
> twitter: @christianposta
>



-- 
*Christian Posta*
http://www.christianposta.com/blog
twitter: @christianposta

Re: Thread leak in Activemq 5.6

Posted by Christian Posta <ch...@gmail.com>.
Yah, I can verify this is the case. Threads leak because the
threadpoolexecutor doesn't evict the threads. Checking for the best
solution to this.


On Sun, Jun 16, 2013 at 4:07 AM, lzr <js...@163.com> wrote:

> Dear all,
>
>
> I found a thread leak issue during try activemq 5.6:
> I create connection when sending message and close it once the sending
> finished.
> Occassionally I restart activemq broker and found one thread generated
> with name "ActiveMQ Connection Executor...".
> For deep research, I restarted the broker several times and same number
> thread generated; I attached the picture of my debug.
> Could anybody give me some clues? I just want to know if this is a bug for
> ActiveMQ. The attachments includes my applications and the debugging
> pictures.
>
>
> It would be much appreciated if you make any suggestion!!!
>
>
> Thanks in advance,
> Zhuran Li
>
>
>
>
>
>
>
>
> At 2013-06-14 23:03:55,"Christian Posta" <ch...@gmail.com>
> wrote:
> >Would need to be able to re-create this... Please put together a unit test
> >that reproduces this.
> >
> >
> >On Fri, Jun 14, 2013 at 1:00 AM, lzr <js...@163.com> wrote:
> >
> >> Dear all,
> >>
> >>
> >> I'm using Acitvemq 5.6 with my app and struggling to handle the
> following
> >> Exception:
> >> 2013-06-13 09:53:46,018 | WARN  | Send failed for: ActiveMQObjectMessage
> >> {commandId = 6, responseRequired = false, messageId =
> >> ID:nfsnnc02-46547-1370842535042-0:547519:1:1:1, originalDestination =
> null,
> >> originalTransactionId = null, producerId =
> >> ID:nfsnnc02-46547-1370842535042-0:547519:1:1, destination =
> >> queue://10408_base, transactionId =
> >> TX:ID:nfsnnc02-46547-1370842535042-0:547519:1, expiration = 0,
> timestamp =
> >> 1371088670829, arrival = 0, brokerInTime = 1371088426003, brokerOutTime
> =
> >> 0, correlationId = null, replyTo = null, persistent = true, type = null,
> >> priority = 4, groupID = null, groupSequence = 0, targetConsumerId =
> null,
> >> compressed = false, userID = null, content =
> >> org.apache.activemq.util.ByteSequence@c4b67b, marshalledProperties =
> >> org.apache.activemq.util.ByteSequence@a84ac2, dataStructure = null,
> >> redeliveryCounter = 0, size = 0, properties = {createtime=2013-06-13
> >> 09:57:50, datasize=1, syncflag=bd_defdoc}, readOnlyProperties = false,
> >> readOnlyBody = false, droppable = fals
> >>  e},  missing producer state for:
> >> org.apache.activemq.broker.ProducerBrokerExchange@c44470 |
> >> org.apache.activemq.broker.region.Queue | ActiveMQ Transport: tcp:///
> >> 10.1.100.66:64118
> >> 2013-06-13 09:53:46,018 | WARN  | Async error occurred:
> >> javax.jms.JMSException: Cannot send message to queue://10408_base with
> >> invalid (null) producer state |
> >> org.apache.activemq.broker.TransportConnection.Service | ActiveMQ
> >> Transport: tcp:///10.1.100.66:64118
> >> javax.jms.JMSException: Cannot send message to queue://10408_base with
> >> invalid (null) producer state
> >> at org.apache.activemq.broker.region.Queue.send(Queue.java:589)
> >> at
> >>
> org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:407)
> >> at
> >>
> org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:503)
> >> at
> >>
> org.apache.activemq.broker.jmx.ManagedRegionBroker.send(ManagedRegionBroker.java:305)
> >> at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:129)
> >> at
> >>
> org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96)
> >> at
> >>
> org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:306)
> >> at
> >>
> org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:135)
> >> at
> >>
> org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:453)
> >> at
> >>
> org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:681)
> >> at
> >>
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:292)
> >> at
> >>
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:150)
> >> at
> >>
> org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
> >> at
> >>
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
> >> at
> >>
> org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:229)
> >> at
> >>
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
> >> at
> >>
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:222)
> >> at
> >>
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:204)
> >> at java.lang.Thread.run(Thread.java:619)
> >>
> >>
> >> Could anybody give me some clue? It would be much appreciated if any
> >> questions.
> >>
> >>
> >> Thanks a lot,
> >> Zhuran Li
> >
> >
> >
> >
> >--
> >*Christian Posta*
> >http://www.christianposta.com/blog
> >twitter: @christianposta
>



-- 
*Christian Posta*
http://www.christianposta.com/blog
twitter: @christianposta

Re:Thread leak in Activemq 5.6

Posted by lzr <js...@163.com>.
Here comes the attachments.

At 2013-06-16 16:07:42,lzr <js...@163.com> wrote:
>Dear all,
>
>
>I found a thread leak issue during try activemq 5.6:
>I create connection when sending message and close it once the sending finished.
>Occassionally I restart activemq broker and found one thread generated with name "ActiveMQ Connection Executor...".
>For deep research, I restarted the broker several times and same number thread generated; I attached the picture of my debug.
>Could anybody give me some clues? I just want to know if this is a bug for ActiveMQ. The attachments includes my applications and the debugging pictures.
>
>
>It would be much appreciated if you make any suggestion!!!
>
>
>Thanks in advance,
>Zhuran Li
>
>
>
>
>
>
>
>
>At 2013-06-14 23:03:55,"Christian Posta" <ch...@gmail.com> wrote:
>>Would need to be able to re-create this... Please put together a unit test
>>that reproduces this.
>>
>>
>>On Fri, Jun 14, 2013 at 1:00 AM, lzr <js...@163.com> wrote:
>>
>>> Dear all,
>>>
>>>
>>> I'm using Acitvemq 5.6 with my app and struggling to handle the following
>>> Exception:
>>> 2013-06-13 09:53:46,018 | WARN  | Send failed for: ActiveMQObjectMessage
>>> {commandId = 6, responseRequired = false, messageId =
>>> ID:nfsnnc02-46547-1370842535042-0:547519:1:1:1, originalDestination = null,
>>> originalTransactionId = null, producerId =
>>> ID:nfsnnc02-46547-1370842535042-0:547519:1:1, destination =
>>> queue://10408_base, transactionId =
>>> TX:ID:nfsnnc02-46547-1370842535042-0:547519:1, expiration = 0, timestamp =
>>> 1371088670829, arrival = 0, brokerInTime = 1371088426003, brokerOutTime =
>>> 0, correlationId = null, replyTo = null, persistent = true, type = null,
>>> priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null,
>>> compressed = false, userID = null, content =
>>> org.apache.activemq.util.ByteSequence@c4b67b, marshalledProperties =
>>> org.apache.activemq.util.ByteSequence@a84ac2, dataStructure = null,
>>> redeliveryCounter = 0, size = 0, properties = {createtime=2013-06-13
>>> 09:57:50, datasize=1, syncflag=bd_defdoc}, readOnlyProperties = false,
>>> readOnlyBody = false, droppable = fals
>>>  e},  missing producer state for:
>>> org.apache.activemq.broker.ProducerBrokerExchange@c44470 |
>>> org.apache.activemq.broker.region.Queue | ActiveMQ Transport: tcp:///
>>> 10.1.100.66:64118
>>> 2013-06-13 09:53:46,018 | WARN  | Async error occurred:
>>> javax.jms.JMSException: Cannot send message to queue://10408_base with
>>> invalid (null) producer state |
>>> org.apache.activemq.broker.TransportConnection.Service | ActiveMQ
>>> Transport: tcp:///10.1.100.66:64118
>>> javax.jms.JMSException: Cannot send message to queue://10408_base with
>>> invalid (null) producer state
>>> at org.apache.activemq.broker.region.Queue.send(Queue.java:589)
>>> at
>>> org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:407)
>>> at
>>> org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:503)
>>> at
>>> org.apache.activemq.broker.jmx.ManagedRegionBroker.send(ManagedRegionBroker.java:305)
>>> at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:129)
>>> at
>>> org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96)
>>> at
>>> org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:306)
>>> at
>>> org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:135)
>>> at
>>> org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:453)
>>> at
>>> org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:681)
>>> at
>>> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:292)
>>> at
>>> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:150)
>>> at
>>> org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
>>> at
>>> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
>>> at
>>> org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:229)
>>> at
>>> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
>>> at
>>> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:222)
>>> at
>>> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:204)
>>> at java.lang.Thread.run(Thread.java:619)
>>>
>>>
>>> Could anybody give me some clue? It would be much appreciated if any
>>> questions.
>>>
>>>
>>> Thanks a lot,
>>> Zhuran Li
>>
>>
>>
>>
>>-- 
>>*Christian Posta*
>>http://www.christianposta.com/blog
>>twitter: @christianposta