Best Regards,

Mario Juric
Principal Engineer
UNSILO.ai <http://unsilo.ai/>
mobile:  +45 3082 4100
skype: mario.juric.dk










Hi,

Sorry for not posting the versions right away. This particular older setup runs 
with UIMA version 2.10.2 and Ruta 2.6.1.

According to my source code CASImpl.ll_getFSRef is calling 
FeatureStructureImpl.toString when creating a CASRuntimeException at line 3653 
as specified by the stack trace (UIMA core version 2.10.2). The exception is a 
CASRuntimeException.DEREF_FS_OTHER_CAS, which appears to happen when a feature 
structure reference is set to a FS that belongs to a completely different CAS. 
I am puzzled how that can happen inside a Ruta script that is applied to a 
single view only, and I am pretty sure we have nothing doing stuff across 
multiple CAS’ in our pipeline. We’ve only seen this exception in a Ruta context 
so far, but they are rare and not reproducible after a second run.

Cheers
Mario


> On 11 Nov 2019, at 15:58 , Marshall Schor <m...@schor.com> wrote:
> 
> This stack trace seems impossible, because the 3rd line shows
> 
> CASImpl.ll_getFSRef calling a FeatureStructureImpl.toString method, which I
> believe it doesn't do.
> 
> -M
> 
> On 11/11/2019 3:58 AM, Mario Juric wrote:
>> Hi Peter,
>> 
>> A while ago we started to get some erratic null pointer exceptions from Ruta 
>> because the type of some feature structure element is null (see stack trace 
>> below). The error is not consistently reproducible, in fact it seldomly 
>> occurs and when reprocessing the document it doesn’t happen again. We 
>> therefore think there are some race conditions at play when running in a 
>> multithreaded environment as we do in production, and I was hoping that 
>> maybe you would get an idea what might be causing it just by looking at the 
>> stack trace.
>> 
>> Cheers
>> Mario
>> 
>> java.lang.NullPointerException at 
>> org.apache.uima.cas.impl.FeatureStructureImpl.prettyPrint(FeatureStructureImpl.java:501)
>>  at 
>> org.apache.uima.cas.impl.FeatureStructureImpl.prettyPrint(FeatureStructureImpl.java:483)
>>  at 
>> org.apache.uima.cas.impl.FeatureStructureImpl.toString(FeatureStructureImpl.java:472)
>>  at 
>> org.apache.uima.cas.impl.FeatureStructureImpl.toString(FeatureStructureImpl.java:467)
>>  at org.apache.uima.cas.impl.CASImpl.ll_getFSRef(CASImpl.java:3653) at 
>> org.apache.uima.cas.impl.FeatureStructureImpl.setFeatureValue(FeatureStructureImpl.java:61)
>>  at org.apache.uima.ruta.RutaStream.assignFeatureValue(RutaStream.java:1140) 
>> at org.apache.uima.ruta.RutaStream.assignFeatureValues(RutaStream.java:1020) 
>> at org.apache.uima.ruta.action.CreateAction.execute(CreateAction.java:74) at 
>> org.apache.uima.ruta.rule.AbstractRuleElement.apply(AbstractRuleElement.java:133)
>>  at 
>> org.apache.uima.ruta.rule.RuleElementCaretaker.applyRuleElements(RuleElementCaretaker.java:121)
>>  at 
>> org.apache.uima.ruta.rule.ComposedRuleElement.applyRuleElements(ComposedRuleElement.java:621)
>>  at 
>> org.apache.uima.ruta.rule.AbstractRuleElement.doneMatching(AbstractRuleElement.java:86)
>>  at 
>> org.apache.uima.ruta.rule.ComposedRuleElement.fallback(ComposedRuleElement.java:526)
>>  at 
>> org.apache.uima.ruta.rule.ComposedRuleElement.fallbackContinue(ComposedRuleElement.java:419)
>>  at 
>> org.apache.uima.ruta.rule.RutaRuleElement.startMatch(RutaRuleElement.java:103)
>>  at 
>> org.apache.uima.ruta.rule.ComposedRuleElement.startMatch(ComposedRuleElement.java:76)
>>  at org.apache.uima.ruta.rule.RutaRule.apply(RutaRule.java:63) at 
>> org.apache.uima.ruta.rule.RutaRule.apply(RutaRule.java:54) at 
>> org.apache.uima.ruta.rule.RutaRule.apply(RutaRule.java:36) at 
>> org.apache.uima.ruta.block.RutaScriptBlock.apply(RutaScriptBlock.java:67) at 
>> org.apache.uima.ruta.RutaModule.apply(RutaModule.java:56) at 
>> org.apache.uima.ruta.engine.RutaEngine.process(RutaEngine.java:561) at 
>> org.apache.uima.analysis_component.JCasAnnotator_ImplBase.process(JCasAnnotator_ImplBase.java:48)
>>  at 
>> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:401)
>>  at 
>> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.processAndOutputNewCASes(PrimitiveAnalysisEngine_impl.java:318)
>>  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.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.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.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.collection.impl.cpm.engine.ProcessingUnit.processNext(ProcessingUnit.java:895)
>>  at 
>> org.apache.uima.collection.impl.cpm.engine.ProcessingUnit.run(ProcessingUnit.java:575)
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
> 

Reply via email to