Hi Thanks for reporting and providing the thread dumps.
I logged a ticket and have a potential fix in the works. Would be great if you could test the fix in your system https://issues.apache.org/jira/browse/CAMEL-6421 On Tue, Jun 4, 2013 at 8:52 AM, miljenko <miljenko.br...@2e-systems.com> wrote: > I've tested with versions 2.10.3 and 2.11.0. > > This is just a short example that can reproduce described problem. You can > put anything else in the splitter, it will not be reached. > > Reducing unnecessary code showed that example worked if "seda" was replaced > with "direct" or "maximumRedeliveries" removed, so I guess problem is > somehow related to that. > > Here is stack trace after it got stucked (I've paused the thread): > > Daemon Thread [Camel (camel-1) thread #0 - seda://queue1] (Suspended) > DefaultCamelContext.getErrorHandlerExecutorService() line: 1321 > DeadLetterChannel(RedeliveryErrorHandler).doStart() line: 1131 > DeadLetterChannel(ChildServiceSupport).start(boolean) line: 41 > DeadLetterChannel(ChildServiceSupport).start() line: 28 > ServiceHelper.startService(Service) line: 64 > ServiceHelper.startService(Object) line: 54 > ServiceHelper.startServices(Object...) line: 75 > RouteContextProcessor(DelegateAsyncProcessor).doStart() line: 78 > RouteContextProcessor(ServiceSupport).start() line: 61 > ServiceHelper.startService(Service) line: 64 > ServiceHelper.startService(Object) line: 54 > ServiceHelper.startServices(Object...) line: 75 > UnitOfWorkProcessor(DelegateAsyncProcessor).doStart() line: 78 > UnitOfWorkProcessor.doStart() line: 88 > UnitOfWorkProcessor(ServiceSupport).start() line: 61 > ServiceHelper.startService(Service) line: 64 > ServiceHelper.startService(Object) line: 54 > ServiceHelper.startServices(Object...) line: 75 > Splitter(MulticastProcessor).createErrorHandler(RouteContext, > Exchange, > Processor) line: 876 > Splitter(MulticastProcessor).createProcessorExchangePair(int, > Processor, > Exchange, RouteContext) line: 833 > Splitter$1$1.next() line: 178 > Splitter$1$1.next() line: 133 > Splitter.createProcessorExchangePairsList(Exchange, Object) line: 195 > Splitter.createProcessorExchangePairs(Exchange) line: 113 > Splitter(MulticastProcessor).process(Exchange, AsyncCallback) line: > 206 > Splitter.process(Exchange, AsyncCallback) line: 98 > AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) > line: > 73 > BacklogTracerInterceptor(DelegateAsyncProcessor).processNext(Exchange, > AsyncCallback) line: 99 > BacklogTracerInterceptor(DelegateAsyncProcessor).process(Exchange, > AsyncCallback) line: 90 > BacklogTracerInterceptor.process(Exchange, AsyncCallback) line: 84 > AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) > line: > 73 > TraceInterceptor(DelegateAsyncProcessor).processNext(Exchange, > AsyncCallback) line: 99 > TraceInterceptor(DelegateAsyncProcessor).process(Exchange, > AsyncCallback) > line: 90 > TraceInterceptor.process(Exchange, AsyncCallback) line: 163 > AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) > line: > 73 > > DeadLetterChannel(RedeliveryErrorHandler).processErrorHandler(Exchange, > AsyncCallback, RedeliveryErrorHandler$RedeliveryData) line: 390 > DeadLetterChannel(RedeliveryErrorHandler).process(Exchange, > AsyncCallback) > line: 273 > RouteContextProcessor.processNext(Exchange, AsyncCallback) line: 46 > RouteContextProcessor(DelegateAsyncProcessor).process(Exchange, > AsyncCallback) line: 90 > DefaultChannel.process(Exchange, AsyncCallback) line: 335 > AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) > line: > 73 > Pipeline.process(Exchange, Exchange, AsyncCallback, > Iterator<Processor>, > AsyncProcessor) line: 117 > Pipeline.process(Exchange, AsyncCallback) line: 80 > RouteContextProcessor.processNext(Exchange, AsyncCallback) line: 46 > RouteContextProcessor(DelegateAsyncProcessor).process(Exchange, > AsyncCallback) line: 90 > UnitOfWorkProcessor.processAsync(Exchange, AsyncCallback, UnitOfWork) > line: > 150 > UnitOfWorkProcessor.process(Exchange, AsyncCallback) line: 117 > RouteInflightRepositoryProcessor.processNext(Exchange, AsyncCallback) > line: > 48 > > RouteInflightRepositoryProcessor(DelegateAsyncProcessor).process(Exchange, > AsyncCallback) line: 90 > AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) > line: > 73 > InstrumentationProcessor(DelegateAsyncProcessor).processNext(Exchange, > AsyncCallback) line: 99 > InstrumentationProcessor(DelegateAsyncProcessor).process(Exchange, > AsyncCallback) line: 90 > InstrumentationProcessor.process(Exchange, AsyncCallback) line: 72 > AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) > line: > 73 > SedaConsumer.sendToConsumers(Exchange) line: 275 > SedaConsumer.doRun() line: 183 > SedaConsumer.run() line: 139 > > RejectableThreadPoolExecutor(ThreadPoolExecutor).runWorker(ThreadPoolExecutor$Worker) > line: 1110 > ThreadPoolExecutor$Worker.run() line: 603 > Thread.run() line: 636 > > > > > -- > View this message in context: > http://camel.465427.n5.nabble.com/Graceful-shutdown-not-working-tp5733697p5733763.html > Sent from the Camel - Users mailing list archive at Nabble.com. -- Claus Ibsen ----------------- www.camelone.org: The open source integration conference. Red Hat, Inc. FuseSource is now part of Red Hat Email: cib...@redhat.com Web: http://fusesource.com Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen