Eddie Epstein | 2 Jan 19:33
Picon

Re: what is the difference between the "base CAS" view and _InitialView?

The base CAS delivered to Sofa aware components has no explicit
view associated with it. The logic is that it is impossible to know the
intent of a sofa aware component and it should use getView as needed.

Sofa unaware components should therefor not declare sofa capabilities.
These components are intended to operate on the view delivered
to the process method as determined by sofa mapping. If there
is no mapping the _InitialView is given to process.

Regards,
Eddie

On Wed, Dec 30, 2009 at 7:18 PM, Philip Ogren <philip@...> wrote:
> I have a component that takes text from the "_InitialView" view, creates a
> second view, and posts a modified version of the text to the second view.  I
> had a unit test that was reading in a JCas from an XMI file and running the
> JCas through my annotator and testing that the text was correctly posted to
> the second view.  Everything was fine.  Later, it occurred to me that I
> should add SofaCapabilities to my annotator which I did.  However, my test
> broke.  The reason seems to be because the JCas I get back from the xmi file
> has the text in the "_InitialView" but the jCas passed into my annotator's
> process method is no longer the "_InitialView".  I tracked this down in the
> debugger and discovered that this is due to the following lines of code in
> PrimitiveAnalysisEngine_impl:
>
>       // Get the right view of the CAS. Sofa-aware components get the base
> CAS.
>       // Sofa-unaware components get whatever is mapped to the _InitialView.
>       CAS view = ((CASImpl) aCAS).getBaseCAS();
>       if (!mSofaAware) {
(Continue reading)

Jörn Kottmann | 5 Jan 15:02
Picon

UIMA AS: Can't flush CAS, flushing is disabled.

Hello,

I found this warning in my worker node log file, but what does it mean ?

1/5/10 2:21:30 PM - 16: 
org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.replyToClient: 
WARNING: CASAdminException: Can't flush CAS, flushing is disabled.

Prior to this warning a Cas Mulitplier throwed a Runtime Exception 
(getEmptyCas() was not called yet) from the
next method.

Afterwards the worker node stopped to process CASes on the input queue.

Thanks,
Jörn

Eddie Epstein | 5 Jan 16:03
Picon

Re: UIMA AS: Can't flush CAS, flushing is disabled.

Hi Jorn,

The problem most likely due to the prior Runtime exception. Is there
a stack trace for that? Is the CasMultiplier doing anything strange,
like calling cas.reset()?

Can you send the full stack trace for the other exception?

Regards,
Eddie

On Tue, Jan 5, 2010 at 9:02 AM, Jörn Kottmann <kottmann@...> wrote:
> Hello,
>
> I found this warning in my worker node log file, but what does it mean ?
>
> 1/5/10 2:21:30 PM - 16:
> org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.replyToClient:
> WARNING: CASAdminException: Can't flush CAS, flushing is disabled.
>
> Prior to this warning a Cas Mulitplier throwed a Runtime Exception
> (getEmptyCas() was not called yet) from the
> next method.
>
> Afterwards the worker node stopped to process CASes on the input queue.
>
> Thanks,
> Jörn
>

(Continue reading)

Jörn Kottmann | 5 Jan 17:45
Picon

Re: UIMA AS: Can't flush CAS, flushing is disabled.

Eddie Epstein wrote:
> Hi Jorn,
>
> The problem most likely due to the prior Runtime exception. Is there
> a stack trace for that? Is the CasMultiplier doing anything strange,
> like calling cas.reset()?
>   
The exception occurs before getEmtpyCas is call, no there is
no cas.reset() call.

There is mistake in the log statement, because the second message
contains {0}.
> Can you send the full stack trace for the other exception?
>   
I think the exception gets logged three times and afterwards
there is the log message of the mentioned warning.
The error repeats a few times, not sure if thats really
the one which causes the hang.

Do you think there is a mistake in the implementation of my Cas Multiplier ?

Stack trace from log file:

1/5/10 3:16:41 PM - 11:

org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentNext(512): 
SEVERE: Exception occurred
java.lang.NullPointerException
        at 
dk.infopaq.dtsearch.DocumentRetriever.next(DocumentRetriever.java:114)
(Continue reading)

Jaroslaw Cwiklik | 5 Jan 18:30
Picon

Re: UIMA AS: Can't flush CAS, flushing is disabled.

Jorn, the NPE exception is coming from your CM as this shows:

org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentNext(512):
SEVERE: Exception occurred
java.lang.NullPointerException
        at
dk.infopaq.dtsearch.DocumentRetriever.next(DocumentRetriever.java:114)

The other exceptions are logged by UIMA AnalysisEngine, then by UIMA AS
Error Handler, and finally by the enclosing Aggregate Error Handler.
It looks like UIMA AS is trying to release CAS more than once while handling
the NPE resulting in the

WARNING: CASAdminException: Can't flush CAS, flushing is disabled.

I will look into this

Jerry C

On Tue, Jan 5, 2010 at 11:45 AM, Jörn Kottmann <kottmann@...> wrote:

> Eddie Epstein wrote:
>
>> Hi Jorn,
>>
>> The problem most likely due to the prior Runtime exception. Is there
>> a stack trace for that? Is the CasMultiplier doing anything strange,
>> like calling cas.reset()?
>>
>>
(Continue reading)

Jaroslaw Cwiklik | 5 Jan 23:38
Picon

Re: UIMA AS: Can't flush CAS, flushing is disabled.

Jorn, I was able to replicate your scenario and see that there are actually
two problems:

1) UIMA core fails to reset CAS's lock if there is an exception in an
Annotator's hasNext() or next() method. If there is an exception,   the
input CAS remains locked and attempt to reset() the CAS results
in CASAdminException: Can't flush CAS, flushing is disabled.

2) UIMA AS aggregate doesn't return exception to the client if there is a
failure in an aggregate's  delegate as described in #1 above.

I will fix both of these tomorrow

Thanks for finding these problems

JC

On Tue, Jan 5, 2010 at 12:30 PM, Jaroslaw Cwiklik <uimaee@...> wrote:

> Jorn, the NPE exception is coming from your CM as this shows:
>
>
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentNext(512):
> SEVERE: Exception occurred
> java.lang.NullPointerException
>         at
> dk.infopaq.dtsearch.DocumentRetriever.next(DocumentRetriever.java:114)
>
> The other exceptions are logged by UIMA AnalysisEngine, then by UIMA AS
> Error Handler, and finally by the enclosing Aggregate Error Handler.
(Continue reading)

Jörn Kottmann | 6 Jan 09:41
Picon

Re: UIMA AS: Can't flush CAS, flushing is disabled.

Jaroslaw Cwiklik wrote:
> Jorn, I was able to replicate your scenario and see that there are actually
> two problems:
>
> 1) UIMA core fails to reset CAS's lock if there is an exception in an
> Annotator's hasNext() or next() method. If there is an exception,   the
> input CAS remains locked and attempt to reset() the CAS results
> in CASAdminException: Can't flush CAS, flushing is disabled.
>
> 2) UIMA AS aggregate doesn't return exception to the client if there is a
> failure in an aggregate's  delegate as described in #1 above.
>
> I will fix both of these tomorrow
>
>   
Thanks :)

Jörn

Jörn Kottmann | 6 Jan 10:10
Picon

UIMA AS: Worker node hangs after errors occur

Hi,

our AEs call a web service and in case the web service
gets updated or is down for a short period of time
the worker nodes stop answering requests from
the input queue, but they should continue answering
requests and reporting errors back to the client.

There is no specific error configuration which I believe means
that all errors are reported back to the client and the terminate
or disable action is not taken. But I think its disconnecting itself
from the input queue.

Maybe this log output is helpful:

Exception stack traces from my AEs process method ..

1/5/10 4:25:16 PM - 15: 
org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.stopCasMultiplier: 
INFO: Controll
er: SearchEngine Stopping Remote Delegate Cas Multiplier: SearchEngine

Exception stack traces from my AEs process method ..

1/5/10 4:25:17 PM - 15: 
org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.stopCasMultiplier: 
INFO: Controller: SearchEngine Stopping Remote Delegate Cas Multiplier: 
SearchEngine

Exception stack traces from my AEs process method ..
(Continue reading)

Matthias Wendt | 6 Jan 15:51
Picon
Favicon

AW: compatibility issues of uimacpp vs. uimaj using uima-as

Hello Eddie,

when trying the new 2.3.0 version of uimacpp yesterday, it turned out that the problem still occurs.
Judging from the JIRA (issue: UIMA-1653), however, there is a fix for this. Could it be, that the test cases
provided with the fix do not exactly reproduce the same behavior?

Regards,
Matthias

-----Ursprüngliche Nachricht-----
Von: Eddie Epstein [mailto:eaepstein@...] 
Gesendet: Freitag, 6. November 2009 22:51
An: uima-user@...
Betreff: Re: compatibility issues of uimacpp vs. uimaj using uima-as

On Fri, Nov 6, 2009 at 10:37 AM, Matthias Wendt
<matthias.wendt@...> wrote:
> I finally found out the difference between the two scenarios. My Annotator
> has "multipleReferencesAllowed" set to true.

Bingo! Problem reproduced here too. Is a bug in Xmi serialization
replies. Normally all features of a type to be sent are checked to
look for FS references. This check is done correctly for new types
created in the service, but missed for types received by a C++
service.

As you already guessed, a workaround with the current code is to add
the new StringArrayFS to the index repository. Will be fixed in the
upcoming release.

(Continue reading)

Jaroslaw Cwiklik | 6 Jan 22:43
Picon

Re: UIMA AS: Worker node hangs after errors occur

Jorn, I need more information to determine the cause of the problem. Can you
clarify your deployment? I understand you have worker nodes running UIMA AS
services. These services connect to a remote Web Service. I presume that
this connection is done your code in the AE. Is this correct?

Your pasted log messages that indicate that a service is stopping. Any
exceptions in the log? Also, can you increase log level to see if there is
more revealing information. Another idea, is to attach jConsole to the UIMA
AS service that is not processing messages and look at the JVM threads to
see if there is a hang somewhere. Also, check UIMA JMX MBeans. There should
be MBeans for CM and their CasPools. Are the pools empty indicating that
CASes are stuck somewhere?

JC

On Wed, Jan 6, 2010 at 4:10 AM, Jörn Kottmann <kottmann@...> wrote:

> Hi,
>
> our AEs call a web service and in case the web service
> gets updated or is down for a short period of time
> the worker nodes stop answering requests from
> the input queue, but they should continue answering
> requests and reporting errors back to the client.
>
> There is no specific error configuration which I believe means
> that all errors are reported back to the client and the terminate
> or disable action is not taken. But I think its disconnecting itself
> from the input queue.
>
(Continue reading)


Gmane