alissontadeuoliveira opened a new issue, #6711:
URL: https://github.com/apache/incubator-kie-drools/issues/6711

   We are facing an intermittent runtime error when executing rules dynamically 
built in memory using KieFileSystem and KieContainer.
   
   After a few successful executions, the application starts throwing the 
following exception:
   
   reactor.core.scheduler.Schedulers        : Scheduler worker in group main 
failed with an uncaught exception
   
   _java.lang.NoSuchMethodError: 'void 
org.drools.mvel.EvaluatorHelper.initOperators(org.kie.api.runtime.rule.FactHandle,
 org.drools.core.reteoo.Tuple, 
org.drools.compiler.rule.builder.EvaluatorWrapper[])'
           at 
ConditionEvaluatorbadf67d390ac4035ad664f412fc5e486.evaluate(Unknown Source)
           at org.drools.mvel.MVELConstraint.evaluate(MVELConstraint.java:295)
           at org.drools.mvel.MVELConstraint.isAllowed(MVELConstraint.java:245)
           at 
org.drools.core.phreak.PhreakFromNode.isAllowed(PhreakFromNode.java:231)
           at 
org.drools.core.phreak.PhreakFromNode.doLeftUpdates(PhreakFromNode.java:177)
           at 
org.drools.core.phreak.PhreakFromNode.doNode(PhreakFromNode.java:68)
           at 
org.drools.core.phreak.RuleNetworkEvaluatorImpl.evaluateNonBetaNonTerminalNode(RuleNetworkEvaluatorImpl.java:405)
           at 
org.drools.core.phreak.RuleNetworkEvaluatorImpl.evaluateNonTerminalNode(RuleNetworkEvaluatorImpl.java:385)
           at 
org.drools.core.phreak.RuleNetworkEvaluatorImpl.innerEval(RuleNetworkEvaluatorImpl.java:318)
           at 
org.drools.core.phreak.RuleNetworkEvaluatorImpl.outerEval(RuleNetworkEvaluatorImpl.java:250)
           at 
org.drools.core.phreak.RuleNetworkEvaluatorImpl.evaluateNetwork(RuleNetworkEvaluatorImpl.java:142)
           at 
org.drools.core.phreak.RuleExecutor.evaluateNetwork(RuleExecutor.java:225)
           at 
org.drools.kiesession.agenda.DefaultAgenda.evaluateEagerList(DefaultAgenda.java:499)
           at 
org.drools.core.phreak.RuleExecutor.ruleWithHigherSalienceActivated(RuleExecutor.java:272)
           at org.drools.core.phreak.RuleExecutor.fire(RuleExecutor.java:169)
           at 
org.drools.core.phreak.RuleExecutor.evaluateNetworkAndFire(RuleExecutor.java:91)
           at 
org.drools.core.concurrent.AbstractGroupEvaluator.evaluateAndFire(AbstractGroupEvaluator.java:53)
           at 
org.drools.kiesession.agenda.DefaultAgenda.fireLoop(DefaultAgenda.java:616)
           at 
org.drools.kiesession.agenda.DefaultAgenda.internalFireAllRules(DefaultAgenda.java:569)
           at 
org.drools.kiesession.agenda.DefaultAgenda.fireAllRules(DefaultAgenda.java:561)
           at 
org.drools.kiesession.session.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1110)
           at 
org.drools.kiesession.session.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1101)
           at 
org.drools.kiesession.session.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1089)
           at 
br.sistema.executorderegras.adapter.drools.runtime.Sessao.executar(Sessao.java:36)
           at 
br.sistema.executorderegras.adapter.drools.service.impl.ExecutorDeRegrasService.executarEmLote(ExecutorDeRegrasService.java:101)
           at 
br.sistema.executorderegras.adapter.drools.service.impl.ExecutorDeRegrasService.lambda$executarRegras$7(ExecutorDeRegrasService.java:90)
           at reactor.core.publisher.MonoCallable.call(MonoCallable.java:72)
           at 
reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:407)
           at 
reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmit(FluxFlatMap.java:547)
           at 
reactor.core.publisher.FluxFlatMap$FlatMapInner.onNext(FluxFlatMap.java:988)
           at 
reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129)
           at 
reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2096)
           at 
reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118)
           at 
reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onComplete(FluxMapFuseable.java:152)
           at 
reactor.core.publisher.FluxGroupBy$UnicastGroupedFlux.checkTerminated(FluxGroupBy.java:670)
           at 
reactor.core.publisher.FluxGroupBy$UnicastGroupedFlux.drainRegular(FluxGroupBy.java:559)
           at 
reactor.core.publisher.FluxGroupBy$UnicastGroupedFlux.drain(FluxGroupBy.java:652)
           at 
reactor.core.publisher.FluxGroupBy$UnicastGroupedFlux.onComplete(FluxGroupBy.java:710)
           at 
reactor.core.publisher.FluxGroupBy$GroupByMain.onComplete(FluxGroupBy.java:232)
           at 
reactor.core.publisher.FluxGroupBy$UnicastGroupedFlux.checkTerminated(FluxGroupBy.java:670)
           at 
reactor.core.publisher.FluxGroupBy$UnicastGroupedFlux.drainRegular(FluxGroupBy.java:559)
           at 
reactor.core.publisher.FluxGroupBy$UnicastGroupedFlux.drain(FluxGroupBy.java:652)
           at 
reactor.core.publisher.FluxGroupBy$UnicastGroupedFlux.onComplete(FluxGroupBy.java:710)
           at 
reactor.core.publisher.FluxGroupBy$GroupByMain.onComplete(FluxGroupBy.java:232)
           at 
reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:850)
           at 
reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:612)
           at 
reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:592)
           at 
reactor.core.publisher.FluxFlatMap$FlatMapMain.onComplete(FluxFlatMap.java:469)
           at 
reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:357)
           at 
reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:294)
           at 
reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:373)
           at 
reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201)
           at 
reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83)
           at reactor.core.publisher.Mono.subscribe(Mono.java:4576)
           at 
reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onNext(MonoFlatMapMany.java:196)
           at 
reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2096)
           at 
reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118)
           at 
reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onComplete(FluxMapFuseable.java:152)
           at 
reactor.core.publisher.FluxIterable$IterableSubscription.fastPath(FluxIterable.java:424)
           at 
reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:291)
           at 
reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171)
           at 
reactor.core.publisher.Operators$BaseFluxToMonoOperator.request(Operators.java:2066)
           at 
reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onSubscribe(MonoFlatMapMany.java:141)
           at 
reactor.core.publisher.Operators$BaseFluxToMonoOperator.onSubscribe(Operators.java:2050)
           at 
reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96)
           at 
reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201)
           at 
reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83)
           at 
reactor.core.publisher.InternalFluxOperator.subscribe(InternalFluxOperator.java:68)
           at 
reactor.core.publisher.FluxSubscribeOn$SubscribeOnSubscriber.run(FluxSubscribeOn.java:194)
           at 
io.sentry.spring.jakarta.webflux.SentryScheduleHook.lambda$apply$0(SentryScheduleHook.java:22)
           at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84)
           at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37)
           at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
           at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
           at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
           at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
           at java.base/java.lang.Thread.run(Thread.java:1583)_
   
   The error happens during rule evaluation (not during build/initialization).
   
   **Environment**
   Java: 21
   Spring Boot: 3.5.4
   Reactor: (WebFlux / reactive stack)
   Drools version: 10.2.0
   Execution model: dynamic rule loading (no Maven KJARs)
   
   We build rules dynamically in memory using KieFileSystem:
   
   KieServices ks = KieServices.Factory.get();
   ReleaseId releaseId = ks.newReleaseId(
       "groupId",
       "name",
       "1.0.0"
   );
   KieFileSystem kfs = ks.newKieFileSystem();
   for (Rule rule : rules) {
       kfs.write(
           "src/main/resources/" + rule.getName() + ".drl",
           rule.getContent()
       );
   }
   kfs.generateAndWritePomXML(releaseId);
   KieBuilder kb = ks.newKieBuilder(kfs).buildAll();
   if (kb.getResults().hasMessages(Message.Level.ERROR)) {
       throw new RuntimeException(kb.getResults().toString());
   }
   KieContainer container = ks.newKieContainer(releaseId);


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to