[
https://issues.apache.org/jira/browse/UIMA-2078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Marshall Schor closed UIMA-2078.
--------------------------------
> Fix intermittent problem with CAS release while running scaled up AE in UIMA
> AS
> --------------------------------------------------------------------------------
>
> Key: UIMA-2078
> URL: https://issues.apache.org/jira/browse/UIMA-2078
> Project: UIMA
> Issue Type: Bug
> Components: Async Scaleout, Core Java Framework
> Reporter: Jerry Cwiklik
> Assignee: Marshall Schor
> Fix For: 2.4.0SDK
>
>
> While running extended tests on Mac, the testScaledSyncAggregateProcess()
> test failed with:
> org.apache.uima.analysis_engine.AnalysisEngineProcessException:
> CasManager.release(CAS) was called with a CAS that does not belong to this
> CasManager.\
> at
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:701)\
> at
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.<init>(ASB_impl.java:409)\
> at
> org.apache.uima.analysis_engine.asb.impl.ASB_impl.process(ASB_impl.java:342)\
> at
> org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.processAndOutputNewCASes(AggregateAnalysisEngine_impl.java:267)\
> at
> org.apache.uima.aae.controller.PrimitiveAnalysisEngineController_impl.process(PrimitiveAnalysisEngineController_impl.java:514)\
> at
> org.apache.uima.aae.handler.HandlerBase.invokeProcess(HandlerBase.java:121)\
> at
> org.apache.uima.aae.handler.input.ProcessRequestHandler_impl.handleProcessRequestFromRemoteClient(ProcessRequestHandler_impl.java:474)\
> at
> org.apache.uima.aae.handler.input.ProcessRequestHandler_impl.handle(ProcessRequestHandler_impl.java:952)\
> at
> org.apache.uima.aae.handler.input.MetadataRequestHandler_impl.handle(MetadataRequestHandler_impl.java:78)\
> at
> org.apache.uima.adapter.jms.activemq.JmsInputChannel.onMessage(JmsInputChannel.java:702)\
> at
> org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:535)\
> at
> org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:495)\
> at
> org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467)\
> at
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:323)\
> at
> org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261)\
> at
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1056)\
> at
> org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:952)\
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)\
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)\
> at
> org.apache.uima.aae.UimaAsThreadFactory$1.run(UimaAsThreadFactory.java:106)\
> at java.lang.Thread.run(Thread.java:680)\
> Caused by: org.apache.uima.UIMARuntimeException: CasManager.release(CAS) was
> called with a CAS that does not belong to this CasManager.\
> at
> org.apache.uima.resource.impl.CasManager_impl.releaseCas(CasManager_impl.java:131)\
> at
> org.apache.uima.cas.AbstractCas_ImplBase.release(AbstractCas_ImplBase.java:35)\
> at org.apache.uima.cas.impl.CASImpl.release(CASImpl.java:3604)\
> at org.apache.uima.cas.impl.CASImpl.release(CASImpl.java:3602)\
> at
> org.apache.uima.analysis_engine.asb.impl.ASB_impl$AggregateCasIterator.processUntilNextOutputCas(ASB_impl.java:689)\
> The above test deploys 5 instances of synchronous aggregate containing a CM
> and a NoOp Annotator. The CM generates 1 CAS for each input CAS. Total of 5
> CASes are sent to the service for processing. Some of the CASes are processed
> and returned back to the client. I am not totally sure what the problem is at
> this time. It seems like the ASB is trying to release a child CAS when the
> above exception occurs. All instances of sync aggregates share Resource
> Manager containing common CasManager. Unable to reproduce this problem on
> Linux, Windows or Mac.
> Further diagnosis points toward an issue with the UIMA Java SDK, for use
> cases where multiple instances of an aggregate (containing a Cas Multiplier)
> are created and run using a shared common UIMA Context / Resource Manager.
> Several parts of the Resource Manager are not thread safe.
> Figure out where things like getEmptyCas need to be synchronized.
> Come up with a better test case (that isn't so intermittent).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira