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 <e...@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 <e...@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




Reply via email to