You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@uima.apache.org by "azazali30 (via GitHub)" <gi...@apache.org> on 2023/03/18 14:00:10 UTC

[GitHub] [uima-uimaj] azazali30 opened a new issue, #313: concurrent modification exception on high load

azazali30 opened a new issue, #313:
URL: https://github.com/apache/uima-uimaj/issues/313

   **Describe the bug**
   A clear and concise description of what the bug is.
   
   **To Reproduce**
   Steps to reproduce the behavior:
   1. Go to '...'
   2. Click on '....'
   3. Scroll down to '....'
   4. See error
   
   **Expected behavior**
   we are running our tests with 1000 concurrent users simulated using Gatling test runner. we see this exception in our logs and we are not able to reproduce with less concurrent users or in local env. So i cannot provide any particular steps to reproduce.
   
   **Screenshots**
   ar 18, 2023 1:18:07 PM org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl callAnalysisComponentProcess(445)
   SEVERE: Exception occurred
   org.apache.uima.analysis_engine.AnalysisEngineProcessException: Annotator processing failed.    
   	at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:427)
   	at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.innerCall(PrimitiveAnalysisEngine_impl.java:329)
   	at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:321)
   	at org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:570)
   	at org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:412)
   	at org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:344)
   	at org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:271)
   	at org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:269)
   	at org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:284)
   	at com.pega.nlp.textanalytics.engines.pool.AnalysisEnginePoolHolder.analyze(AnalysisEnginePoolHolder.java:204)
   	at com.pega.nlp.textanalytics.accessor.TextAnalyticsAccessor.runTextAnalytics(TextAnalyticsAccessor.java:113)
   	at com.pega.fnx.textservice.prediction.PredictionExecutionManager.executePrediction(PredictionExecutionManager.java:127)
   	at com.pega.fnx.textservice.prediction.$PredictionExecutionManager$Definition$Intercepted.$$access$$executePrediction(Unknown Source)
   	at com.pega.fnx.textservice.prediction.$PredictionExecutionManager$Definition$Exec.dispatch(Unknown Source)
   	at io.micronaut.context.AbstractExecutableMethodsDefinition$DispatchedExecutableMethod.invoke(AbstractExecutableMethodsDefinition.java:378)
   	at io.micronaut.aop.chain.MethodInterceptorChain.proceed(MethodInterceptorChain.java:128)
   	at io.micronaut.tracing.interceptor.TraceInterceptor.intercept(TraceInterceptor.java:117)
   	at io.micronaut.aop.chain.MethodInterceptorChain.proceed(MethodInterceptorChain.java:137)
   	at io.micronaut.validation.ValidatingInterceptor.intercept(ValidatingInterceptor.java:143)
   	at io.micronaut.aop.chain.MethodInterceptorChain.proceed(MethodInterceptorChain.java:137)
   	at com.pega.fnx.textservice.prediction.$PredictionExecutionManager$Definition$Intercepted.executePrediction(Unknown Source)
   	at com.pega.fnx.textservice.controllers.TextPredictionController.runTextAnalysis(TextPredictionController.java:210)
   	at com.pega.fnx.textservice.controllers.TextPredictionController.lambda$executePrediction$0(TextPredictionController.java:157)
   	at io.reactivex.internal.operators.flowable.FlowableFromCallable.subscribeActual(FlowableFromCallable.java:39)
   	at io.reactivex.Flowable.subscribe(Flowable.java:14935)
   	at io.reactivex.Flowable.subscribe(Flowable.java:14882)
   	at io.micronaut.rxjava2.instrument.RxInstrumentedFlowable.subscribeActual(RxInstrumentedFlowable.java:57)
   	at io.reactivex.Flowable.subscribe(Flowable.java:14935)
   	at io.reactivex.Flowable.subscribe(Flowable.java:14882)
   	at io.reactivex.internal.operators.flowable.FlowableSubscribeOn$SubscribeOnSubscriber.run(FlowableSubscribeOn.java:82)
   	at io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$BooleanRunnable.run(ExecutorScheduler.java:288)
   	at io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker.run(ExecutorScheduler.java:253)
   	at io.micrometer.core.instrument.composite.CompositeTimer.record(CompositeTimer.java:89)
   	at io.micrometer.core.instrument.Timer.lambda$wrap$0(Timer.java:152)
   	at io.micronaut.scheduling.instrument.InvocationInstrumenterWrappedRunnable.run(InvocationInstrumenterWrappedRunnable.java:47)
   	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
   	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
   	at java.base/java.lang.Thread.run(Thread.java:833)
   Caused by: java.util.ConcurrentModificationException
   	at java.base/java.util.HashMap$HashIterator.nextNode(HashMap.java:1597)
   	at java.base/java.util.HashMap$ValueIterator.next(HashMap.java:1625)
   	at org.apache.uima.analysis_engine.impl.ResultSpecification_impl.compile(ResultSpecification_impl.java:597)
   	at org.apache.uima.analysis_engine.impl.ResultSpecification_impl.compileIfNeeded(ResultSpecification_impl.java:583)
   	at org.apache.uima.analysis_engine.impl.ResultSpecification_impl.intersect(ResultSpecification_impl.java:703)
   	at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:403)
   	... 37 more
   
   Mar 18, 2023 1:18:07 PM org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl processAndOutputNewCASes(279)
   SEVERE: Exception occurred
   org.apache.uima.analysis_engine.AnalysisEngineProcessException: Annotator processing failed.    
   	at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:427)
   	at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.innerCall(PrimitiveAnalysisEngine_impl.java:329)
   	at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:321)
   	at org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:570)
   	at org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:412)
   	at org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:344)
   	at org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:271)
   	at org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:269)
   	at org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:284)
   	at com.pega.nlp.textanalytics.engines.pool.AnalysisEnginePoolHolder.analyze(AnalysisEnginePoolHolder.java:204)
   	at com.pega.nlp.textanalytics.accessor.TextAnalyticsAccessor.runTextAnalytics(TextAnalyticsAccessor.java:113)
   	at com.pega.fnx.textservice.prediction.PredictionExecutionManager.executePrediction(PredictionExecutionManager.java:127)
   	at com.pega.fnx.textservice.prediction.$PredictionExecutionManager$Definition$Intercepted.$$access$$executePrediction(Unknown Source)
   	at com.pega.fnx.textservice.prediction.$PredictionExecutionManager$Definition$Exec.dispatch(Unknown Source)
   	at io.micronaut.context.AbstractExecutableMethodsDefinition$DispatchedExecutableMethod.invoke(AbstractExecutableMethodsDefinition.java:378)
   	at io.micronaut.aop.chain.MethodInterceptorChain.proceed(MethodInterceptorChain.java:128)
   	at io.micronaut.tracing.interceptor.TraceInterceptor.intercept(TraceInterceptor.java:117)
   	at io.micronaut.aop.chain.MethodInterceptorChain.proceed(MethodInterceptorChain.java:137)
   	at io.micronaut.validation.ValidatingInterceptor.intercept(ValidatingInterceptor.java:143)
   	at io.micronaut.aop.chain.MethodInterceptorChain.proceed(MethodInterceptorChain.java:137)
   	at com.pega.fnx.textservice.prediction.$PredictionExecutionManager$Definition$Intercepted.executePrediction(Unknown Source)
   	at com.pega.fnx.textservice.controllers.TextPredictionController.runTextAnalysis(TextPredictionController.java:210)
   	at com.pega.fnx.textservice.controllers.TextPredictionController.lambda$executePrediction$0(TextPredictionController.java:157)
   	at io.reactivex.internal.operators.flowable.FlowableFromCallable.subscribeActual(FlowableFromCallable.java:39)
   	at io.reactivex.Flowable.subscribe(Flowable.java:14935)
   	at io.reactivex.Flowable.subscribe(Flowable.java:14882)
   	at io.micronaut.rxjava2.instrument.RxInstrumentedFlowable.subscribeActual(RxInstrumentedFlowable.java:57)
   	at io.reactivex.Flowable.subscribe(Flowable.java:14935)
   	at io.reactivex.Flowable.subscribe(Flowable.java:14882)
   	at io.reactivex.internal.operators.flowable.FlowableSubscribeOn$SubscribeOnSubscriber.run(FlowableSubscribeOn.java:82)
   	at io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker$BooleanRunnable.run(ExecutorScheduler.java:288)
   	at io.reactivex.internal.schedulers.ExecutorScheduler$ExecutorWorker.run(ExecutorScheduler.java:253)
   	at io.micrometer.core.instrument.composite.CompositeTimer.record(CompositeTimer.java:89)
   	at io.micrometer.core.instrument.Timer.lambda$wrap$0(Timer.java:152)
   	at io.micronaut.scheduling.instrument.InvocationInstrumenterWrappedRunnable.run(InvocationInstrumenterWrappedRunnable.java:47)
   	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
   	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
   	at java.base/java.lang.Thread.run(Thread.java:833)
   Caused by: java.util.ConcurrentModificationException
   	at java.base/java.util.HashMap$HashIterator.nextNode(HashMap.java:1597)
   	at java.base/java.util.HashMap$ValueIterator.next(HashMap.java:1625)
   	at org.apache.uima.analysis_engine.impl.ResultSpecification_impl.compile(ResultSpecification_impl.java:597)
   	at org.apache.uima.analysis_engine.impl.ResultSpecification_impl.compileIfNeeded(ResultSpecification_impl.java:583)
   	at org.apache.uima.analysis_engine.impl.ResultSpecification_impl.intersect(ResultSpecification_impl.java:703)
   	at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:403)
   	... 37 more
   
   - Version uimaj-core-2.11.0
   - OS: Linux
   **Please complete the following information:**
    - Version: [e.g. 3.2.0]
    - OS: [e.g. Windows, Linux, OS X]
   
   **Additional context**
   
   We are using JcasPool to reuse jcas  
   i am expecting any heads up which can help in debugging the issue
   


-- 
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: dev-unsubscribe@uima.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [uima-uimaj] azazali30 commented on issue #313: concurrent modification exception on high load

Posted by "azazali30 (via GitHub)" <gi...@apache.org>.
azazali30 commented on issue #313:
URL: https://github.com/apache/uima-uimaj/issues/313#issuecomment-1557038576

   after upgrade we don't see this issue thanks


-- 
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: dev-unsubscribe@uima.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [uima-uimaj] reckart commented on issue #313: concurrent modification exception on high load

Posted by "reckart (via GitHub)" <gi...@apache.org>.
reckart commented on issue #313:
URL: https://github.com/apache/uima-uimaj/issues/313#issuecomment-1474920221

   You can have a look at these methods and see whether e.g. adding a synchronize block to them resolves the problem:
   
   ```
   at org.apache.uima.analysis_engine.impl.ResultSpecification_impl.compile(ResultSpecification_impl.java:597)
   at org.apache.uima.analysis_engine.impl.ResultSpecification_impl.compileIfNeeded(ResultSpecification_impl.java:583)
   at org.apache.uima.analysis_engine.impl.ResultSpecification_impl.intersect(ResultSpecification_impl.java:703)
   ```
   
   That said, UIMA 2.x is no longer maintained. Best upgrade to 3.x and check if the issue persists.


-- 
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: dev-unsubscribe@uima.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [uima-uimaj] azazali30 commented on issue #313: concurrent modification exception on high load

Posted by "azazali30 (via GitHub)" <gi...@apache.org>.
azazali30 commented on issue #313:
URL: https://github.com/apache/uima-uimaj/issues/313#issuecomment-1553072783

   @reckart we recently upgraded to uima3.4.1 and ruta3.3.0 we are still seeing similar issues on concurrent load
   
   org.apache.uima.analysis_engine.AnalysisEngineProcessException: Annotator processing failed.    
   	at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:415)
   	at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:299)
   	at org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:590)
   	at org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:422)
   	at org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:352)
   	at org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:276)
   	at org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:295)
   	at org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.process(AnalysisEngineImplBase.java:312)
   	at com.pega.nlp.textanalytics.engines.pool.AnalysisEnginePoolHolder.analyze(AnalysisEnginePoolHolder.java:230)
   	at com.pega.nlp.textanalytics.accessor.TextAnalyticsAccessor.runTextAnalytics(TextAnalyticsAccessor.java:117)
   	at com.pega.nlp.textanalytics.accessor.TextAnalyticsAccessor.runTextAnalytics(TextAnalyticsAccessor.java:62)
   	at com.pega.nlp.textanalytics.accessor.TextAnalyticsAccessorTest.lambda$testConcurrency$0(TextAnalyticsAccessorTest.java:223)
   	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
   	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
   	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
   	at java.lang.Thread.run(Thread.java:748)
   Caused by: java.lang.NullPointerException
   	at org.apache.uima.analysis_engine.impl.ResultSpecification_impl.intersect(ResultSpecification_impl.java:743)
   	at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:377)
   	... 15 more


-- 
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: dev-unsubscribe@uima.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [uima-uimaj] azazali30 closed issue #313: concurrent modification exception on high load

Posted by "azazali30 (via GitHub)" <gi...@apache.org>.
azazali30 closed issue #313: concurrent modification exception on high load
URL: https://github.com/apache/uima-uimaj/issues/313


-- 
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: dev-unsubscribe@uima.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org