[ 
https://issues.apache.org/jira/browse/CAMEL-20480?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen resolved CAMEL-20480.
---------------------------------
    Resolution: Won't Fix

its already executed in blocking, but vertx has that extra checker, and if you 
are slow a debugging then the thread is blocked.

> camel-platform-http-vertx - Execute using thread pool to not block event loop
> -----------------------------------------------------------------------------
>
>                 Key: CAMEL-20480
>                 URL: https://issues.apache.org/jira/browse/CAMEL-20480
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-platform-http-vertx
>            Reporter: Claus Ibsen
>            Priority: Major
>             Fix For: 4.x
>
>
> When using camel jbang debug then you can be slow during bebugging and cause 
> the vertx thread to WARN log
> {code}
> 2024-02-28 12:42:26.814  WARN 27518 --- [-thread-checker] 
> ertx.core.impl.BlockedThreadChecker : Thread 
> Thread[vert.x-worker-thread-4,5,main] has been blocked for 264930 ms, time 
> limit is 60000 ms
> io.vertx.core.VertxException: Thread blocked
>       at java.base/jdk.internal.misc.Unsafe.park(Native Method) ~[?:?]
>       at 
> java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
>  ~[?:?]
>       at 
> java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:717)
>  ~[?:?]
>       at 
> java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1074)
>  ~[?:?]
>       at 
> java.base/java.util.concurrent.CountDownLatch.await(CountDownLatch.java:276) 
> ~[?:?]
>       at 
> org.apache.camel.impl.debugger.DefaultBacklogDebugger$NodeBreakpoint.beforeProcess(DefaultBacklogDebugger.java:910)
>  ~[camel-base-engine-4.5.0-SNAPSHOT.jar:4.5.0-SNAPSHOT]
>       at 
> org.apache.camel.impl.debugger.DefaultDebugger.onBeforeProcess(DefaultDebugger.java:290)
>  ~[camel-base-engine-4.5.0-SNAPSHOT.jar:4.5.0-SNAPSHOT]
>       at 
> org.apache.camel.impl.debugger.DefaultDebugger.beforeProcess(DefaultDebugger.java:232)
>  ~[camel-base-engine-4.5.0-SNAPSHOT.jar:4.5.0-SNAPSHOT]
>       at 
> org.apache.camel.impl.debugger.DefaultBacklogDebugger.beforeProcess(DefaultBacklogDebugger.java:776)
>  ~[camel-base-engine-4.5.0-SNAPSHOT.jar:4.5.0-SNAPSHOT]
>       at 
> org.apache.camel.impl.engine.CamelInternalProcessor$BacklogDebuggerAdvice.before(CamelInternalProcessor.java:769)
>  ~[camel-base-engine-4.5.0-SNAPSHOT.jar:4.5.0-SNAPSHOT]
>       at 
> org.apache.camel.impl.engine.CamelInternalProcessor$BacklogDebuggerAdvice.before(CamelInternalProcessor.java:755)
>  ~[camel-base-engine-4.5.0-SNAPSHOT.jar:4.5.0-SNAPSHOT]
>       at 
> org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:317)
>  ~[camel-base-engine-4.5.0-SNAPSHOT.jar:4.5.0-SNAPSHOT]
>       at 
> org.apache.camel.processor.Pipeline$PipelineTask.run(Pipeline.java:102) 
> ~[camel-core-processor-4.5.0-SNAPSHOT.jar:4.5.0-SNAPSHOT]
>       at 
> org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.doRun(DefaultReactiveExecutor.java:199)
>  ~[camel-base-engine-4.5.0-SNAPSHOT.jar:4.5.0-SNAPSHOT]
>       at 
> org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.executeReactiveWork(DefaultReactiveExecutor.java:189)
>  ~[camel-base-engine-4.5.0-SNAPSHOT.jar:4.5.0-SNAPSHOT]
>       at 
> org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.tryExecuteReactiveWork(DefaultReactiveExecutor.java:166)
>  ~[camel-base-engine-4.5.0-SNAPSHOT.jar:4.5.0-SNAPSHOT]
>       at 
> org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
>  ~[camel-base-engine-4.5.0-SNAPSHOT.jar:4.5.0-SNAPSHOT]
>       at 
> org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59)
>  ~[camel-base-engine-4.5.0-SNAPSHOT.jar:4.5.0-SNAPSHOT]
>       at org.apache.camel.processor.Pipeline.process(Pipeline.java:163) 
> ~[camel-core-processor-4.5.0-SNAPSHOT.jar:4.5.0-SNAPSHOT]
>       at 
> org.apache.camel.impl.engine.CamelInternalProcessor.processNonTransacted(CamelInternalProcessor.java:354)
>  ~[camel-base-engine-4.5.0-SNAPSHOT.jar:4.5.0-SNAPSHOT]
>       at 
> org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:330)
>  ~[camel-base-engine-4.5.0-SNAPSHOT.jar:4.5.0-SNAPSHOT]
>       at 
> org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:82)
>  ~[camel-base-engine-4.5.0-SNAPSHOT.jar:4.5.0-SNAPSHOT]
>       at 
> org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:32)
>  ~[camel-support-4.5.0-SNAPSHOT.jar:4.5.0-SNAPSHOT]
>       at 
> org.apache.camel.component.platform.http.vertx.VertxPlatformHttpConsumer.processExchange(VertxPlatformHttpConsumer.java:236)
>  ~[camel-platform-http-vertx-4.5.0-SNAPSHOT.jar:4.5.0-SNAPSHOT]
>       at 
> org.apache.camel.component.platform.http.vertx.VertxPlatformHttpConsumer.lambda$handleRequest$1(VertxPlatformHttpConsumer.java:204)
>  ~[camel-platform-http-vertx-4.5.0-SNAPSHOT.jar:4.5.0-SNAPSHOT]
>       at 
> org.apache.camel.component.platform.http.vertx.VertxPlatformHttpConsumer$$Lambda$514/0x00000008014aa340.call(Unknown
>  Source) ~[?:?]
>       at 
> io.vertx.core.impl.ContextImpl.lambda$executeBlocking$0(ContextImpl.java:177) 
> ~[vertx-core-4.5.2.jar:4.5.2]
>       at 
> io.vertx.core.impl.ContextImpl$$Lambda$515/0x00000008014aa570.handle(Unknown 
> Source) ~[?:?]
>       at 
> io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:276) 
> ~[vertx-core-4.5.2.jar:4.5.2]
>       at 
> io.vertx.core.impl.ContextImpl.lambda$internalExecuteBlocking$2(ContextImpl.java:209)
>  ~[vertx-core-4.5.2.jar:4.5.2]
>       at 
> io.vertx.core.impl.ContextImpl$$Lambda$516/0x00000008014aa9a8.run(Unknown 
> Source) ~[?:?]
>       at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
>  ~[?:?]
>       at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
>  ~[?:?]
>       at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  ~[netty-common-4.1.106.Final.jar:4.1.106.Final]
>       at java.base/java.lang.Thread.run(Thread.java:833) ~[?:?]
> {code}
> We may consider having vertx executed in a blocking thread pool to avoid this 
> noise. And make it an option users can choose to enable also.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to