uima-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Egbert van der Wal <e...@pointpro.nl>
Subject Re: Debugging a NullPointerException in UIMA AS / processing timeouts
Date Mon, 26 Sep 2016 10:01:58 GMT
Hi again,

After some days of testing and debugging I've been able to narrow down 
the problem somewhat.

It turned out that, after all, it was reproducable by feeding a certain 
document. After attemping to disable the enabled annotators one by one, 
I was able to localize the problem to a specific annotator, which, when, 
disabled, 'fixed' the issue. I still don't know exactly what is causing 
it within this annotator, but now I've got a lead so I should be able to 
fix it.

However, the FINEST loglevel doesn't really give any useful information. 
It shows the current waiting queue of CAS ID's that are in the pipeline. 
However, it still doesn't give me a useful error message, it's still an 
exception somewhere in the internals of UIMA, either a 
'NullPointerException' on

org.apache.uima.cas.impl.CASImpl.ll_getFSForRef(CASImpl.java:3478)

or a a 'IndexOutOfBoundsException' on:

org.apache.uima.cas.impl.XmiCasDeserializer$XmiCasDeserializerHandler.getIndexRepo(XmiCasDeserializer.java:628)


It seems both are related to a faulty annotator choking on a too large 
payload and not returning results in time.

However, in this situation I would expect a exception that the annotator 
doesn't respond in time, rather than these messages, so that I would 
know where to look right away. Have I misconfigured some debugging / 
pipeline settings or is this something for the UIMA wishlist?

Thanks again!

Regards,

Egbert





On 29-08-16 15:28, Jaroslaw Cwiklik wrote:
> Egbert, thanks. I forgot to ask, what version of UIMA-AS are you using?
> Also, are you using sendCAS() or sendAndReceive() API?
>
> Have a great vacation!
>
> -jerry
>
> On Sun, Aug 28, 2016 at 9:39 AM, Egbert van der Wal <ewal@pointpro.nl>
> wrote:
>
>> Hi Jerry,
>>
>> Thanks for the suggestion. I have the feeling that it's a race condition,
>> too, but since I'm doing no multi-threading myself, basically all the
>> threading and synchronization should be UIMA-internal.
>>
>> Anyway, I'll have to postpone researching the issue due to going on
>> vacation. When I get back I'll try to get more information with a increased
>> log level, and get back to you.
>>
>> Thanks again!
>>
>> Regards,
>>
>> Egbert
>>
>>
>> Op 25-8-2016 om 17:17 schreef Jaroslaw Cwiklik:
>>
>> Hi, I have a feeling that there might be a race condition here. In the
>>> client, the timer pops and at the same time a reply is received.
>>> The timout logic is resetting the CAS while its being deserialized which
>>> may lead to NPE. Not 100% certain but this might be the problem.
>>>
>>> Any chance you can increase UIMA log level to FINEST on the client side?
>>> It
>>> would log important information like the internal CAS ID  on each reply
>>> which can be used to correlate events in the log.
>>>
>>> -jerry
>>>
>>> On Thu, Aug 25, 2016 at 10:18 AM, Egbert van der Wal <ewal@pointpro.nl>
>>> wrote:
>>>
>>> Hi,
>>>>
>>>> I'm having a problem using UIMA-AS. I have a pipeline set up that
>>>> processes HTML documents in ~= 10 ms. The total time out value was
>>>> initially 20 seconds, but I increased it to 120 ms at some point to avoid
>>>> this problem, it seemed to help.
>>>>
>>>> However, sometimes the 2 minutes is still hit and a warning is shown.
>>>> When
>>>> this occurs, it will usually be accompanied with NullPointerExceptions in
>>>> combination with Xerces, somewhere in the internals of UIMA. See the
>>>> attached log-file excerpt for the errors I'm seeing. The first 5 lines
>>>> are
>>>> the 'normal' output, which was repeated for several thousand lines before
>>>> during the succesful operation of the pipeline.
>>>>
>>>> The SOFA that is being sent out during this particular exception is a
>>>> quite small HTML-document, just a couple of kilobytes, and it's not
>>>> actually reproducible with the same document; if I run the program again
>>>> it
>>>> will eventually fail, but at some other point.
>>>>
>>>> How can I go about solving this issue? Since the part of my own code in
>>>> the stacktrace is limited to the point where 'sendCAS' is called, I can't
>>>> really think of any additional debugging I can do.
>>>>
>>>> Any suggestions are highly appreciated!
>>>>
>>>> Thanks,
>>>>
>>>> Egbert van der Wal
>>>>
>>>>
>>>
>

Mime
View raw message