[
https://issues.apache.org/jira/browse/AMQ-4417?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Timothy Bish closed AMQ-4417.
-----------------------------
Resolution: Cannot Reproduce
No test case provided, code rewritten in later releases.
> Unbalanced usage Exception in Valve.decrement
> ---------------------------------------------
>
> Key: AMQ-4417
> URL: https://issues.apache.org/jira/browse/AMQ-4417
> Project: ActiveMQ
> Issue Type: Bug
> Affects Versions: 5.4.2
> Reporter: Vincent Baudry
>
> One of our production node running ActiveMQ shows a permanent error log every
> milisecond :
> Exception in thread "VMTransport" java.lang.IllegalStateException: Unbalanced
> usage: -274090111
> at org.apache.activemq.thread.Valve.decrement(Valve.java:113)
> at org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:210)
> at
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
>
> at
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:678)
>
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:703)
>
> at java.lang.Thread.run(Thread.java:811)
> The value behind unbalanced usage keeping moving but globally getting
> decremented over time.
> We are for now unable to see the side effect on the app, which is still
> running, except the CPU usage going through the roof, probably because of
> this constant logging.
> As the log doesn't have a root in our code, it's hard to understand what's
> gone wrong initially, and if it might be linked to our usage of ActiveMQ.
> I've read the source code but can't understand why the valve usage int has
> gone initially negative. But it seems to me that when it has gone once
> negative, the only way to have the broker work fine again is to restart the
> server to reinitialize this value (as all subsequent iterate() / increment()
> calls will throw/catch an exception due to usage negative value and finally
> hit the decrement() method ).
> As we don't have a scenario to reproduce the bug, I don't expect you to find
> a solution to it right now, but I wanted to file it in case anyone encounter
> the same bug and has the way to reproduce it.
> And also I would be glad to have answers to the following questions, if
> possible :
> - Do you have any clues concerning this issue ? Things I could investigate
> further ?
> - Doest it seem normal to you that my exception log starts in a Thread.run()
> then plugged to the PooledTaskRunner mechanism ?
> - What kind of ActiveMQ tasks run using this PooledTaskRunner /
> VmTransport.iterate() mechanism ? All AMQ tasks ? Only enqueueing/dequeueing
> tasks ? Internal tasks ?
> - Is it possible that some enqueueing/dequeueing tasks still work fine when
> in this state ? Is this faulty valve not shared by all producers connecting
> to the broker via vm:// ?
> To give you a little technical context, we use this broker with a spring
> producer using Spring JmsTemplate through vm://transport
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira