Saucelabs session is not closing properly - saucelabs

Even though my test script has run successfully, I'm getting an error saying Error closing result stream.
Below is the body of error:
com.saucelabs.saucerest.SauceREST closeInputStream
WARNING: Error closing result stream
java.io.FileNotFoundException: https://saucelabs.com/rest/v1/myuser/jobs/ef4505aca4cf4c32a08d5d6c425fbf57
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1915)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1515)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:251)
at com.saucelabs.saucerest.SauceREST.closeInputStream(SauceREST.java:700)
at com.saucelabs.saucerest.SauceREST.updateJobInfo(SauceREST.java:643)
at com.saucelabs.junit.SauceOnDemandTestWatcher.succeeded(SauceOnDemandTestWatcher.java:95)
at org.junit.rules.TestWatcher.succeededQuietly(TestWatcher.java:75)
at org.junit.rules.TestWatcher.access$100(TestWatcher.java:46)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:56)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at com.saucelabs.junit.ConcurrentParameterized$SauceClassRunnerForParameters.access$300(ConcurrentParameterized.java:166)
at com.saucelabs.junit.ConcurrentParameterized$SauceClassRunnerForParameters$2.run(ConcurrentParameterized.java:283)
at com.saucelabs.junit.ConcurrentParameterized$NonBlockingAsynchronousRunner$1.call(ConcurrentParameterized.java:308)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:835)

The most common reason for this is when you're changing job status while it's still running (or has just been closed).
Does it happen consistently? If you add a pause before calling the API or a single retry, do you still see this happen?

Related

firebase-admin fails with error maxretry without much information about the underlying cause and stops the node script also

I have a mobile and web app that use firebase realtime database and there are some long running tasks which are served on servers with the help of firebase-queue and firebase-admin. The long running tasks is to find out who else is using the mobile app in a person's contact book. So, if you install the app, the app will send a task to the server with your contact book data and ask it to find the people in the contact book who are also using the app. Every now and then I see two types of errors in the logs. First error is below which also cause the node process to stop.
/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:15373
return queue[i].onComplete(new Error(abortReason), false, null);
^
Error: maxretry
at /Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:15373:52
at exceptionGuard (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:4018:9)
at repoRerunTransactionQueue (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:15386:9)
at repoRerunTransactions (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:15279:5)
at /Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:15260:13
at /Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:7061:17
at PersistentConnection.onDataMessage_ (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:7088:17)
at Connection.onDataMessage_ (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:5882:14)
at Connection.onPrimaryMessageReceived_ (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:5876:18)
at WebSocketConnection.onMessage (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:5778:27)
at WebSocketConnection.appendFrame_ (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:4491:18)
at WebSocketConnection.handleIncomingFrame (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:4539:22)
at Client.mySock.onmessage (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:4438:19)
at Client.dispatchEvent (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:2883:30)
at Client._receiveMessage (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:3042:10)
at Client$2.<anonymous> (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:2924:49)
at Client$2.emit (node:events:539:35)
at Client$2.emit (node:domain:475:12)
at Client$2.<anonymous> (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:2186:14)
at pipe (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:1503:40)
at Pipeline$1._loop (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:1510:3)
at Pipeline$1.processIncomingMessage (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:1479:8)
at Extensions$1.processIncomingMessage (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:1645:20)
at Client$2._emitMessage (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:2177:22)
at Client$2._emitFrame (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:2137:19)
at Client$2.parse (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:1863:18)
at Client$2.parse (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:2369:60)
at IO.write (/Users/varungupta/Projects/myapp-server/node_modules/#firebase/database-compat/dist/index.standalone.js:186:16)
at TLSSocket.ondata (node:internal/streams/readable:754:22)
at TLSSocket.emit (node:events:527:28)
at TLSSocket.emit (node:domain:475:12)
at addChunk (node:internal/streams/readable:315:12)
at readableAddChunk (node:internal/streams/readable:289:9)
at TLSSocket.Readable.push (node:internal/streams/readable:228:10)
at TLSWrap.onStreamRead (node:internal/stream_base_commons:190:23)
There isn't much information about what exactly caused the maxretry error. The error happens at random after a few days of running the script. It doesn't happen right away.
The second error that I see that isn't as disruptive as the one above is
[2022-06-01T10:30:49.722Z] #firebase/database: FIREBASE WARNING: transaction at /queue/tasks/-N3TDQCAdt4y-akb0_MK failed: disconnect
This doesn't stop the node process and I can see that a transaction failed but not sure why did it disconnect and how can I resolve this problem.
I am using firebase-admin 9.6.0.

Pact test - getting initialization error without details

All,
How to enable debugging to figure out why I am getting this initialization Error
Pact version: 4.0.10
Is there a way to enable debug (this is spring boot app)
org.junit.runners.model.InitializationError
at au.com.dius.pact.provider.junit.PactRunner.initialize(PactRunner.kt:112)
at au.com.dius.pact.provider.junit.PactRunner.getChildren(PactRunner.kt:140)
at org.junit.runners.ParentRunner.getFilteredChildren(ParentRunner.java:426)
at org.junit.runners.ParentRunner.getDescription(ParentRunner.java:351)
at com.intellij.junit4.JUnit4IdeaTestRunner.getDescription(JUnit4IdeaTestRunner.java:78)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:50)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:66)
All,
I found my problem. User error. but I wish there was an error or warning log.
I used #PactFilter and the state value I used in that was wrong. but my actual test had the right state value in some. So the filter was not finding any test and would throw this initialization error. I did not realize the PactFilter was optional. I commented it out, and then I got a proper error message indicating state not found in the pact broker.

UCX warn unexpected tag-receive

What can the following be due to / how to debug it? it happens when closing my MPI application
[1612979755.727913] [compute-0-9:21112:0] tag_match.c:61 UCX WARN unexpected tag-receive descriptor 0x2b2bf64cdbc0 was not matched
Assuming the application exited normally, this probably means that some process sent a message (e.g. calling MPI_Send) to a destination process that did not post a matching receive before calling MPI_Finalize. See https://github.com/openucx/ucx/issues/6331#issuecomment-778428537

Weblogic Failed to refresh JDBC Persistence Manager

I am running weblogic portal 10.3
We recently upgraded our oracle from 11.2 to 12.1.0.2.0
The 11g database schema was dumped when Weblogic was running and then imported to the 12c DB.
But now I see a strange problem:
On startup in my managedServer1.log.yyyy-MM-ddTHH-mm log file I see the following exception:
####<Sep 8, 2016 11:28:41 AM CEST> <Error> <DataSync> <devmaster.xxx.com> <managedServer1> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <BEA1-0002F70BB8045A5B8E84> <e54db9af27ea4009:1806ee21:157091f8869:-7ffd-0000000000000002> <1473326921799> <BEA-400610> <Error performing initial refresh of persistent store. DataSync is probably in an incomplete or corrupted state.com.bea.p13n.management.data.repository.PersistenceException: Failed to refresh JDBC Persistence Manager.
at com.bea.p13n.management.data.repository.persistence.transactions.AbstractTx.sync(AbstractTx.java:67)
at com.bea.p13n.management.data.repository.persistence.JdbcDataSource.refresh(JdbcDataSource.java:215)
at com.bea.p13n.management.data.repository.persistence.JdbcPersistenceManager.refresh(JdbcPersistenceManager.java:113)
at com.bea.p13n.management.data.repository.internal.AbstractDataRepository.<init>(AbstractDataRepository.java:164)
at com.bea.p13n.management.data.repository.MasterDataRepository.<init>(MasterDataRepository.java:49)
at com.bea.p13n.management.data.repository.DataRepositoryFactory.getMasterDataRepository(DataRepositoryFactory.java:441)
at com.bea.p13n.property.internal.PropertySetManagerImpl.ejbCreate(PropertySetManagerImpl.java:274)
at com.bea.p13n.property.internal.PropertySetManager_bjbwe8_Impl.ejbCreate(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at weblogic.ejb.container.pool.StatelessSessionPool.createBean(StatelessSessionPool.java:232)
at weblogic.ejb.container.pool.StatelessSessionPool.getBean(StatelessSessionPool.java:132)
at weblogic.ejb.container.manager.StatelessManager.preInvoke(StatelessManager.java:148)
at weblogic.ejb.container.internal.BaseRemoteObject.preInvoke(BaseRemoteObject.java:229)
at weblogic.ejb.container.internal.StatelessRemoteObject.__WL_preInvoke(StatelessRemoteObject.java:41)
at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:24)
at com.bea.p13n.property.internal.PropertySetManager_bjbwe8_EOImpl.getPropertySets(Unknown Source)
at com.bea.wsrp.consumer.management.ProducerManagerImpl.internalGetCustomUserProperties(ProducerManagerImpl.java:867)
at com.bea.wsrp.consumer.management.ProducerManagerImpl.<init>(ProducerManagerImpl.java:116)
at com.bea.wsrp.consumer.management.producer.ProducerManager$Factory.<clinit>(ProducerManager.java:663)
at com.bea.wsrp.consumer.registry.DbProducerRegistryAdapter.sync(DbProducerRegistryAdapter.java:60)
at com.bea.wsrp.consumer.registry.ProducerRegistry$AddOrUpdateProducerAction.run(ProducerRegistry.java:725)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
at com.bea.wsrp.consumer.registry.ProducerRegistry.refreshProducers(ProducerRegistry.java:420)
at com.bea.wsrp.consumer.registry.ProducerRegistry.loadRegistry(ProducerRegistry.java:286)
at com.bea.wsrp.consumer.registry.ProducerRegistry.load(ProducerRegistry.java:196)
at com.bea.wsrp.consumer.registry.ProducerRegistry.getInstance(ProducerRegistry.java:160)
at com.bea.netuix.servlets.manager.PortalServlet.startProducerRegistryFilePoller(PortalServlet.java:599)
at com.bea.netuix.servlets.manager.PortalServlet.reinitInternal(PortalServlet.java:313)
at com.bea.netuix.servlets.manager.PortalServlet.initInternal(PortalServlet.java:268)
at com.bea.netuix.servlets.manager.PortalServlet.access$200(PortalServlet.java:125)
at com.bea.netuix.servlets.manager.PortalServlet$ServletLifecycleListenerImpl.init(PortalServlet.java:2190)
at com.bea.netuix.util.ServletLifecycleListener.initOrReinitInternal(ServletLifecycleListener.java:131)
at com.bea.netuix.util.ServletLifecycleService.addServletLifecycleListener(ServletLifecycleService.java:252)
at com.bea.netuix.util.ServletLifecycleService.addServletLifecycleListener(ServletLifecycleService.java:183)
at com.bea.netuix.servlets.manager.PortalServlet.init(PortalServlet.java:259)
at com.bea.netuix.servlets.manager.PortalServlet.init(PortalServlet.java:236)
at javax.servlet.GenericServlet.init(GenericServlet.java:242)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run(StubSecurityHelper.java:283)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.StubSecurityHelper.createServlet(StubSecurityHelper.java:64)
at weblogic.servlet.internal.StubLifecycleHelper.createOneInstance(StubLifecycleHelper.java:58)
at weblogic.servlet.internal.StubLifecycleHelper.<init>(StubLifecycleHelper.java:48)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:539)
at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:1984)
at weblogic.servlet.internal.WebAppServletContext.loadServletsOnStartup(WebAppServletContext.java:1958)
at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1877)
at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3174)
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1527)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:489)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:427)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
at weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:201)
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:249)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:427)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:28)
at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:672)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)
at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:59)
at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80)
at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:187)
at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:379)
at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:52)
at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:200)
at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:31)
at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:240)
at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:170)
at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:124)
at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:181)
at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:97)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused By: com.bea.p13n.management.data.repository.PersistenceException: Cannot commit: java.sql.SQLException: Could not commit with auto-commit set on
at com.bea.p13n.management.data.repository.persistence.transactions.AbstractTx.doTransaction(AbstractTx.java:118)
at com.bea.p13n.management.data.repository.persistence.transactions.AbstractTx.sync(AbstractTx.java:62)
at com.bea.p13n.management.data.repository.persistence.JdbcDataSource.refresh(JdbcDataSource.java:215)
at com.bea.p13n.management.data.repository.persistence.JdbcPersistenceManager.refresh(JdbcPersistenceManager.java:113)
at com.bea.p13n.management.data.repository.internal.AbstractDataRepository.<init>(AbstractDataRepository.java:164)
at com.bea.p13n.management.data.repository.MasterDataRepository.<init>(MasterDataRepository.java:49)
The result of this is that EJBs cause some NullPointerExceptions and my code fails. If I refresh the page enough times, the EJBs seem to be refreshed and start working fine.
But on restarts this problem shows up again.
I tried clearing out the WEBLOGICJMSSTATE table before start up, but there seems to be no effect.
Any suggestions?
Thanks.
Turned out to be an issue with the new driver. I guess the clue was in the text
java.sql.SQLException: Could not commit with auto-commit set on
I got rid of the error setting this JVM param:
-Doracle.jdbc.autoCommitSpecCompliant=false
Thanks to the answer here: java.sql.SQLException: Could not commit with auto-commit set on at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:4443)

NPE in drools rules resulting into CYCLIC_DEPENDENCY and OOM

We have set up a basic Drools framework with Guvnor UI. Rules are written by semi-technical guys and have scope of errors (scope is always there irrespective of who writes it :))
Yesterday, someone wrote a rule which started throwing NullPoiterException but Drool appears to wrap this exception into CYCLIC_DEPENDENCY_ERROR and showing the same.
Also, we ended up with OOM java.lang.OutOfMemoryError: Java heap space immediately(3-4 minutes) after this issue.
Stacktrace for details:
Feb 2013 08:06:55,447 [ERROR] (SWF Activity DroolsActivityTaskList-2.2 229) com.amazon.mobius.csi.workers.droolsengine.DroolsEngineActivitiesImpl:runRules:220 [CYCLIC_DEPENDENCY_ERROR]: Error
while executing Rules, Please validate all rules against any cyclic dependency
Exception executing consequence for rule "final NON EC" in com.amazon.mobius.csi.workers.droolsengine: java.lang.NullPointerException
at org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39)
at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1101)
at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1029)
at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1251)
at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:708)
at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:672)
at org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:218)
at org.drools.impl.StatelessKnowledgeSessionImpl.execute(StatelessKnowledgeSessionImpl.java:295)
at com.amazon.mobius.csi.workers.droolsengine.DroolsEngineActivitiesImpl.runRules(DroolsEngineActivitiesImpl.java:216)
at com.amazon.mobius.csi.workers.droolsengine.DroolsEngineActivitiesImpl.executeRules(DroolsEngineActivitiesImpl.java:145)
at sun.reflect.GeneratedMethodAccessor173.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.amazonaws.services.simpleworkflow.flow.pojo.POJOActivityImplementation.execute(POJOActivityImplementation.java:63)
at com.amazonaws.services.simpleworkflow.flow.generic.ActivityImplementationBase.execute(ActivityImplementationBase.java:46)
at com.amazonaws.services.simpleworkflow.flow.worker.SynchronousActivityTaskPoller.execute(SynchronousActivityTaskPoller.java:214)
at com.amazonaws.services.simpleworkflow.flow.worker.ActivityTaskPoller$2.run(ActivityTaskPoller.java:95)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NullPointerException
at com.amazon.mobius.csi.workers.droolsengine.Rule_final_NON_EC.defaultConsequence(Unknown Source)
at com.amazon.mobius.csi.workers.droolsengine.Rule_final_NON_ECDefaultConsequenceInvoker.evaluate(Unknown Source)
at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1091)
... 18 more
Why does Drools treat it as CYCLIC_DEPENDENCY and result into OOM? Could we have some other issue? Any help would be appreciated.
Thanks,
I believe this to be a cyclic dependency between rules. The RHS of one rule is causing another to activate, which in turn has a RHS which causes the first rule to activate. Therefore there is an infinite loop of rule activations.
Without seeing the rules themselves, I would recommend setting up an agenda event listener to log which rules are firing. That way you should be able to see which 2 rules are activating in this manner. An example such logging listener is here:
https://github.com/gratiartis/scattercode-drools-scenarios/blob/master/src/main/java/uk/co/scattercode/drools/util/TrackingAgendaEventListener.java

Resources