[
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)