Hi,
From the stack trace , it looks like you are still using Camel 1.x.
It looks like the camel timer thread is blocked by CountingLatch.
So I doubt if the async processor thread has some kind of dead lock with
other thread.
Maybe you can work around it by increasing the timer's period time.
Willem
marcin80 wrote:
Hi,
I'm using Camel with ServiceMix4 (Fuse ESB) and I have problem with timer
component.
From time to time my timer's thread stops. A thread dump is following:
Name: timer:foo?period=5000
State: WAITING on
org.apache.camel.util.concurrent.countinglatch$s...@1b61ebd
Total blocked: 1 Total waited: 9 206
Stack trace:
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747)
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:905)
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1217)
org.apache.camel.util.concurrent.CountingLatch.await(CountingLatch.java:93)
org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:175)
org.apache.camel.processor.interceptor.StreamCachingInterceptor.proceed(StreamCachingInterceptor.java:90)
org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:82)
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41)
org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:69)
org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:55)
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:80)
org.apache.camel.processor.interceptor.StreamCachingInterceptor.proceed(StreamCachingInterceptor.java:87)
org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:82)
org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:189)
org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:133)
org.apache.camel.processor.Pipeline.process(Pipeline.java:115)
org.apache.camel.processor.Pipeline.process(Pipeline.java:89)
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
org.apache.camel.processor.interceptor.StreamCachingInterceptor.proceed(StreamCachingInterceptor.java:87)
org.apache.camel.processor.interceptor.StreamCachingInterceptor.process(StreamCachingInterceptor.java:82)
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:52)
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41)
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:66)
org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:98)
org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:49)
java.util.TimerThread.mainLoop(Timer.java:512)
java.util.TimerThread.run(Timer.java:462)
Where is the problem? Maybe too many threads is created?
Cheers,
Marcin