-
Bug
-
Resolution: Done
-
Major
-
1.22.0.Final, 1.23.0.Final
-
None
-
False
-
None
-
False
-
Implemented backpressure meechanism for starting event. When the Event Thread pool is pull, Kafka emitter is stopped.
-
---
-
---
-
2022 Week 29-31 (from Jul 18)
Kogito runtime: quarkus.
BPMN process model where start event by kafka message and rest service task (copy of org.kogito.workitem.rest.RestWorkItemHandler):
And under some load errors occur:
2022-06-27 09:50:31,206 ERROR [org.jbp.wor.ins.imp.WorkflowProcessInstanceImpl] (vert.x-eventloop-thread-22) Unexpected error while executing node SrvTaskRest1 in process instance 18443d1f-bcb2-4edf-b5ac-813f71a01101: org.jbpm.workflow.instance.WorkflowRuntimeException: [sequentialServiceTask:18443d1f-bcb2-4edf-b5ac-813f71a01101 - SrvTaskRest1:8] -- The current thread cannot be blocked: vert.x-eventloop-thread-22 at org.jbpm.workflow.instance.node.WorkItemNodeInstance.getExceptionScopeInstance(WorkItemNodeInstance.java:199) at org.jbpm.workflow.instance.node.WorkItemNodeInstance.handleException(WorkItemNodeInstance.java:193) at org.jbpm.workflow.instance.node.WorkItemNodeInstance.processWorkItemHandler(WorkItemNodeInstance.java:183) at org.jbpm.workflow.instance.node.WorkItemNodeInstance.internalTrigger(WorkItemNodeInstance.java:155) at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:225) at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:424) at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:409) at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:379) at org.jbpm.workflow.instance.node.ActionNodeInstance.triggerCompleted(ActionNodeInstance.java:72) at org.jbpm.workflow.instance.node.ActionNodeInstance.internalTrigger(ActionNodeInstance.java:68) at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:225) at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:424) at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:409) at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:379) at org.jbpm.workflow.instance.node.StartNodeInstance.triggerCompleted(StartNodeInstance.java:71) at org.jbpm.workflow.instance.node.StartNodeInstance.internalTrigger(StartNodeInstance.java:53) at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:225) at org.jbpm.ruleflow.instance.RuleFlowProcessInstance.internalStart(RuleFlowProcessInstance.java:36) at org.jbpm.process.instance.impl.ProcessInstanceImpl.start(ProcessInstanceImpl.java:256) at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.start(WorkflowProcessInstanceImpl.java:501) at org.jbpm.process.instance.KogitoProcessRuntimeImpl.startProcessInstance(KogitoProcessRuntimeImpl.java:167) at org.jbpm.process.instance.KogitoProcessRuntimeImpl.startProcessInstance(KogitoProcessRuntimeImpl.java:73) at org.kie.kogito.process.impl.AbstractProcessInstance.start(AbstractProcessInstance.java:245) at org.kie.kogito.process.impl.AbstractProcessInstance.start(AbstractProcessInstance.java:223) at org.kie.kogito.process.impl.ProcessServiceImpl.lambda$createProcessInstance$1(ProcessServiceImpl.java:85) at org.kie.kogito.services.uow.UnitOfWorkExecutor.executeInUnitOfWork(UnitOfWorkExecutor.java:33) at org.kie.kogito.process.impl.ProcessServiceImpl.createProcessInstance(ProcessServiceImpl.java:80) at org.kie.kogito.services.event.impl.ProcessEventDispatcher.startNewInstance(ProcessEventDispatcher.java:114) at org.kie.kogito.services.event.impl.ProcessEventDispatcher.lambda$dispatch$1(ProcessEventDispatcher.java:81) at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1764) at java.base/java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy.rejectedExecution(ThreadPoolExecutor.java:2029) at java.base/java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:827) at java.base/java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1357) at java.base/java.util.concurrent.CompletableFuture.asyncSupplyStage(CompletableFuture.java:1778) at java.base/java.util.concurrent.CompletableFuture.supplyAsync(CompletableFuture.java:1995) at org.kie.kogito.services.event.impl.ProcessEventDispatcher.dispatch(ProcessEventDispatcher.java:81) at org.kie.kogito.services.event.impl.ProcessEventDispatcher.dispatch(ProcessEventDispatcher.java:42) at org.kie.kogito.services.event.impl.AbstractMessageConsumer.consume(AbstractMessageConsumer.java:97) at org.kie.kogito.addon.quarkus.messaging.common.AbstractQuarkusCloudEventReceiver.lambda$produce$1(AbstractQuarkusCloudEventReceiver.java:61) at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1183) at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2299) at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:143) at org.kie.kogito.addon.quarkus.messaging.common.AbstractQuarkusCloudEventReceiver.produce(AbstractQuarkusCloudEventReceiver.java:61) at org.kie.kogito.addon.quarkus.messaging.common.AbstractQuarkusCloudEventReceiver.produce(AbstractQuarkusCloudEventReceiver.java:45) at org.kie.kogito.app.RestmetaEventReceiver_Subclass.produce$$superforward1(Unknown Source) at org.kie.kogito.app.RestmetaEventReceiver_Subclass$$function$$3.apply(Unknown Source) at io.quarkus.arc.impl.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:54) at io.quarkus.arc.runtime.devconsole.InvocationInterceptor.proceed(InvocationInterceptor.java:62) at io.quarkus.arc.runtime.devconsole.InvocationInterceptor.monitor(InvocationInterceptor.java:49) at io.quarkus.arc.runtime.devconsole.InvocationInterceptor_Bean.intercept(Unknown Source) at io.quarkus.arc.impl.InterceptorInvocation.invoke(InterceptorInvocation.java:41) at io.quarkus.arc.impl.AroundInvokeInvocationContext.perform(AroundInvokeInvocationContext.java:41) at io.quarkus.arc.impl.InvocationContexts.performAroundInvoke(InvocationContexts.java:32) at org.kie.kogito.app.RestmetaEventReceiver_Subclass.produce(Unknown Source) at org.kie.kogito.app.RestmetaEventReceiver.onEvent(RestmetaEventReceiver.java:31) at org.kie.kogito.app.RestmetaEventReceiver_Subclass.onEvent$$superforward1(Unknown Source) at org.kie.kogito.app.RestmetaEventReceiver_Subclass$$function$$4.apply(Unknown Source) at io.quarkus.arc.impl.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:54) at io.quarkus.arc.runtime.devconsole.InvocationInterceptor.proceed(InvocationInterceptor.java:62) at io.quarkus.arc.runtime.devconsole.InvocationInterceptor.monitor(InvocationInterceptor.java:49) at io.quarkus.arc.runtime.devconsole.InvocationInterceptor_Bean.intercept(Unknown Source) at io.quarkus.arc.impl.InterceptorInvocation.invoke(InterceptorInvocation.java:41) at io.quarkus.arc.impl.AroundInvokeInvocationContext.perform(AroundInvokeInvocationContext.java:41) at io.quarkus.arc.impl.InvocationContexts.performAroundInvoke(InvocationContexts.java:32) at org.kie.kogito.app.RestmetaEventReceiver_Subclass.onEvent(Unknown Source) at org.kie.kogito.app.RestmetaEventReceiver_ClientProxy.onEvent(Unknown Source) at org.kie.kogito.app.RestmetaEventReceiver_SmallRyeMessagingInvoker_onEvent_767963bef278f2970bf32edb4ba385196aa18167.invoke(Unknown Source) at io.smallrye.reactive.messaging.providers.AbstractMediator.invoke(AbstractMediator.java:91) at io.smallrye.reactive.messaging.providers.SubscriberMediator.lambda$processMethodReturningACompletionStage$18(SubscriberMediator.java:218) at io.smallrye.context.impl.wrappers.SlowContextualSupplier.get(SlowContextualSupplier.java:21) at io.smallrye.mutiny.operators.uni.builders.UniCreateFromCompletionStage.subscribe(UniCreateFromCompletionStage.java:24) at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36) at io.smallrye.mutiny.operators.uni.UniOnItemOrFailureFlatMap.subscribe(UniOnItemOrFailureFlatMap.java:27) at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36) at io.smallrye.mutiny.converters.uni.UniToMultiPublisher$UniToMultiSubscription.request(UniToMultiPublisher.java:74) at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapInner.onSubscribe(MultiFlatMapOp.java:601) at io.smallrye.mutiny.converters.uni.UniToMultiPublisher.subscribe(UniToMultiPublisher.java:26) at io.smallrye.mutiny.groups.MultiCreate$1.subscribe(MultiCreate.java:163) at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.onItem(MultiFlatMapOp.java:193) at io.smallrye.mutiny.operators.multi.MultiMapOp$MapProcessor.onItem(MultiMapOp.java:50) at io.smallrye.mutiny.subscription.MultiSubscriber.onNext(MultiSubscriber.java:61) at io.smallrye.mutiny.subscription.SafeSubscriber.onNext(SafeSubscriber.java:99) at io.smallrye.mutiny.helpers.HalfSerializer.onNext(HalfSerializer.java:31) at io.smallrye.mutiny.helpers.StrictMultiSubscriber.onItem(StrictMultiSubscriber.java:85) at io.smallrye.mutiny.subscription.MultiSubscriber.onNext(MultiSubscriber.java:61) at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.tryEmit(MultiFlatMapOp.java:230) at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapInner.onItem(MultiFlatMapOp.java:607) at io.smallrye.mutiny.subscription.MultiSubscriber.onNext(MultiSubscriber.java:61) at io.smallrye.mutiny.converters.uni.UniToMultiPublisher$UniToMultiSubscription.onItem(UniToMultiPublisher.java:93) at io.smallrye.mutiny.operators.uni.UniOnItemTransformToUni$UniOnItemTransformToUniProcessor.onItem(UniOnItemTransformToUni.java:60) at io.smallrye.mutiny.operators.uni.builders.DefaultUniEmitter.complete(DefaultUniEmitter.java:37) at io.smallrye.mutiny.groups.UniOnNull.lambda$failWith$1(UniOnNull.java:46) at io.smallrye.context.impl.wrappers.SlowContextualBiConsumer.accept(SlowContextualBiConsumer.java:21) at io.smallrye.mutiny.groups.UniOnItem.lambda$transformToUni$4(UniOnItem.java:178) at io.smallrye.context.impl.wrappers.SlowContextualConsumer.accept(SlowContextualConsumer.java:21) at io.smallrye.mutiny.operators.uni.builders.UniCreateWithEmitter.subscribe(UniCreateWithEmitter.java:22) at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36) at io.smallrye.mutiny.operators.uni.UniOnItemTransformToUni$UniOnItemTransformToUniProcessor.performInnerSubscription(UniOnItemTransformToUni.java:81) at io.smallrye.mutiny.operators.uni.UniOnItemTransformToUni$UniOnItemTransformToUniProcessor.onItem(UniOnItemTransformToUni.java:57) at io.smallrye.mutiny.operators.uni.builders.UniCreateFromCompletionStage$CompletionStageUniSubscription.forwardResult(UniCreateFromCompletionStage.java:63) at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859) at java.base/java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:883) at java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2315) at java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:143) at io.smallrye.mutiny.operators.uni.builders.UniCreateFromCompletionStage$CompletionStageUniSubscription.forward(UniCreateFromCompletionStage.java:51) at io.smallrye.mutiny.operators.uni.builders.UniCreateFromCompletionStage.subscribe(UniCreateFromCompletionStage.java:35) at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36) at io.smallrye.mutiny.operators.uni.UniOnItemTransformToUni.subscribe(UniOnItemTransformToUni.java:25) at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36) at io.smallrye.mutiny.converters.uni.UniToMultiPublisher$UniToMultiSubscription.request(UniToMultiPublisher.java:74) at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapInner.onSubscribe(MultiFlatMapOp.java:601) at io.smallrye.mutiny.converters.uni.UniToMultiPublisher.subscribe(UniToMultiPublisher.java:26) at io.smallrye.mutiny.groups.MultiCreate$1.subscribe(MultiCreate.java:163) at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.onItem(MultiFlatMapOp.java:193) at io.smallrye.mutiny.subscription.MultiSubscriber.onNext(MultiSubscriber.java:61) at io.smallrye.mutiny.subscription.SafeSubscriber.onNext(SafeSubscriber.java:99) at io.smallrye.mutiny.helpers.HalfSerializer.onNext(HalfSerializer.java:31) at io.smallrye.mutiny.helpers.StrictMultiSubscriber.onItem(StrictMultiSubscriber.java:85) at io.smallrye.mutiny.operators.multi.MultiOperatorProcessor.onItem(MultiOperatorProcessor.java:100) at io.smallrye.mutiny.operators.multi.MultiOnItemInvoke$MultiOnItemInvokeProcessor.onItem(MultiOnItemInvoke.java:41) at io.smallrye.mutiny.subscription.MultiSubscriber.onNext(MultiSubscriber.java:61) at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.tryEmit(MultiFlatMapOp.java:230) at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapInner.onItem(MultiFlatMapOp.java:607) at io.smallrye.mutiny.subscription.MultiSubscriber.onNext(MultiSubscriber.java:61) at io.smallrye.mutiny.converters.uni.UniToMultiPublisher$UniToMultiSubscription.onItem(UniToMultiPublisher.java:93) at io.smallrye.mutiny.operators.uni.UniOnItemTransform$UniOnItemTransformProcessor.onItem(UniOnItemTransform.java:43) at io.smallrye.mutiny.operators.uni.UniOnItemConsume$UniOnItemComsumeProcessor.onItem(UniOnItemConsume.java:43) at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem$KnownItemSubscription.forward(UniCreateFromKnownItem.java:38) at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem$KnownItemSubscription.access$100(UniCreateFromKnownItem.java:26) at io.smallrye.mutiny.operators.uni.builders.UniCreateFromKnownItem.subscribe(UniCreateFromKnownItem.java:23) at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36) at io.smallrye.mutiny.operators.uni.UniOnItemConsume.subscribe(UniOnItemConsume.java:30) at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36) at io.smallrye.mutiny.operators.uni.UniOnItemTransform.subscribe(UniOnItemTransform.java:22) at io.smallrye.mutiny.operators.AbstractUni.subscribe(AbstractUni.java:36) at io.smallrye.mutiny.converters.uni.UniToMultiPublisher$UniToMultiSubscription.request(UniToMultiPublisher.java:74) at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapInner.onSubscribe(MultiFlatMapOp.java:601) at io.smallrye.mutiny.converters.uni.UniToMultiPublisher.subscribe(UniToMultiPublisher.java:26) at io.smallrye.mutiny.groups.MultiCreate$1.subscribe(MultiCreate.java:163) at io.smallrye.mutiny.operators.multi.MultiFlatMapOp$FlatMapMainSubscriber.onItem(MultiFlatMapOp.java:193) at io.smallrye.mutiny.operators.multi.MultiOperatorProcessor.onItem(MultiOperatorProcessor.java:100) at io.smallrye.mutiny.operators.multi.MultiOperatorProcessor.onItem(MultiOperatorProcessor.java:100) at io.smallrye.mutiny.subscription.MultiSubscriber.onNext(MultiSubscriber.java:61) at io.smallrye.mutiny.operators.uni.UniOnItemTransformToMulti$FlatMapPublisherSubscriber.onNext(UniOnItemTransformToMulti.java:62) at io.smallrye.mutiny.helpers.HalfSerializer.onNext(HalfSerializer.java:31) at io.smallrye.mutiny.helpers.StrictMultiSubscriber.onItem(StrictMultiSubscriber.java:85) at io.smallrye.reactive.messaging.kafka.impl.KafkaRecordStreamSubscription.run(KafkaRecordStreamSubscription.java:198) at io.smallrye.reactive.messaging.kafka.impl.KafkaRecordStreamSubscription.lambda$dispatch$4(KafkaRecordStreamSubscription.java:178) at io.vertx.core.impl.AbstractContext.dispatch(AbstractContext.java:100) at io.vertx.core.impl.AbstractContext.dispatch(AbstractContext.java:63) at io.vertx.core.impl.EventLoopContext.lambda$runOnContext$0(EventLoopContext.java:38) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:832) Caused by: java.lang.IllegalStateException: The current thread cannot be blocked: vert.x-eventloop-thread-22 at io.smallrye.mutiny.operators.uni.UniBlockingAwait.await(UniBlockingAwait.java:30) at io.smallrye.mutiny.groups.UniAwait.atMost(UniAwait.java:65) at io.smallrye.mutiny.groups.UniAwait.indefinitely(UniAwait.java:46) at io.vertx.mutiny.ext.web.client.HttpRequest.sendAndAwait(HttpRequest.java:753) at org.acme.kogitobpmn.RestServiceTaskDelegate.execute(RestServiceTaskDelegate.java:106) at org.acme.kogitobpmn.RestServiceTaskDelegate_Subclass.execute$$superforward1(Unknown Source) at org.acme.kogitobpmn.RestServiceTaskDelegate_Subclass$$function$$1.apply(Unknown Source) at io.quarkus.arc.impl.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:54) at io.quarkus.arc.runtime.devconsole.InvocationInterceptor.proceed(InvocationInterceptor.java:62) at io.quarkus.arc.runtime.devconsole.InvocationInterceptor.monitor(InvocationInterceptor.java:49) at io.quarkus.arc.runtime.devconsole.InvocationInterceptor_Bean.intercept(Unknown Source) at io.quarkus.arc.impl.InterceptorInvocation.invoke(InterceptorInvocation.java:41) at io.quarkus.arc.impl.AroundInvokeInvocationContext.perform(AroundInvokeInvocationContext.java:41) at io.quarkus.arc.impl.InvocationContexts.performAroundInvoke(InvocationContexts.java:32) at org.acme.kogitobpmn.RestServiceTaskDelegate_Subclass.execute(Unknown Source) at org.acme.kogitobpmn.RestServiceTaskDelegate_ClientProxy.execute(Unknown Source) at org.kie.kogito.handlers.RestServiceTaskDelegate_execute_8_Handler.executeWorkItem(RestServiceTaskDelegate_execute_8_Handler.java:21) at org.kie.kogito.handlers.RestServiceTaskDelegate_execute_8_Handler_Subclass.executeWorkItem$$superforward1(Unknown Source) at org.kie.kogito.handlers.RestServiceTaskDelegate_execute_8_Handler_Subclass$$function$$3.apply(Unknown Source) at io.quarkus.arc.impl.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:54) at io.quarkus.arc.runtime.devconsole.InvocationInterceptor.proceed(InvocationInterceptor.java:62) at io.quarkus.arc.runtime.devconsole.InvocationInterceptor.monitor(InvocationInterceptor.java:49) at io.quarkus.arc.runtime.devconsole.InvocationInterceptor_Bean.intercept(Unknown Source) at io.quarkus.arc.impl.InterceptorInvocation.invoke(InterceptorInvocation.java:41) at io.quarkus.arc.impl.AroundInvokeInvocationContext.perform(AroundInvokeInvocationContext.java:41) at io.quarkus.arc.impl.InvocationContexts.performAroundInvoke(InvocationContexts.java:32) at org.kie.kogito.handlers.RestServiceTaskDelegate_execute_8_Handler_Subclass.executeWorkItem(Unknown Source) at org.kie.kogito.handlers.RestServiceTaskDelegate_execute_8_Handler_ClientProxy.executeWorkItem(Unknown Source) at org.jbpm.process.instance.LightWorkItemManager.internalExecuteWorkItem(LightWorkItemManager.java:80) at org.jbpm.workflow.instance.node.WorkItemNodeInstance.lambda$internalTrigger$0(WorkItemNodeInstance.java:156) at org.jbpm.workflow.instance.node.WorkItemNodeInstance.processWorkItemHandler(WorkItemNodeInstance.java:169) ... 155 more
As a result, the process is interrupted with an error, and is not even saved to the repository.
- is related to
-
KOGITO-5884 Review Sync/Blocking operations in process runtime for high throughput
- Closed
-
KOGITO-7686 Add integration test to messaging addon
- Closed