[ 
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

Reply via email to