You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@uima.apache.org by Steven Bethard <st...@gmail.com> on 2008/04/13 18:06:36 UTC

Diagnosing a Pattern StackOverflowError

So my CPE is dying with a "java.lang.StackOverflowError" dialog and
the following message printed to the console:

Apr 13, 2008 9:58:31 AM
org.apache.uima.collection.impl.cpm.engine.CPMThreadGroup process
SEVERE: The CPM thread group caught the following unhandled error:
java.lang.StackOverflowError (Thread Name: [Procesing Pipeline#1
Thread]::)
java.lang.StackOverflowError
	at java.util.regex.Pattern$Curly.match1(Pattern.java:4258)
	at java.util.regex.Pattern$Curly.match(Pattern.java:4207)
	at java.util.regex.Pattern$GroupHead.match(Pattern.java:4578)
	at java.util.regex.Pattern$Loop.match(Pattern.java:4705)
	at java.util.regex.Pattern$GroupTail.match(Pattern.java:4637)
	at java.util.regex.Pattern$GroupTail.match(Pattern.java:4637)
	at java.util.regex.Pattern$Single.match(Pattern.java:3314)
	at java.util.regex.Pattern$Branch.match(Pattern.java:4538)
	at java.util.regex.Pattern$GroupHead.match(Pattern.java:4578)
	at java.util.regex.Pattern$Curly.match1(Pattern.java:4258)
        ...
        at java.util.regex.Pattern$Single.match(Pattern.java:3314)

Anyone know how to diagnose this problem? I can't see a reference to
any of my files, or even something in UIMA. (I looked at the
CPMThreadGroup class, but that doesn't seem to do much other than
handle caught exceptions.)

Steve
-- 
I'm not *in*-sane. Indeed, I am so far *out* of sane that you appear a
tiny blip on the distant coast of sanity.
 --- Bucky Katt, Get Fuzzy

Re: Diagnosing a Pattern StackOverflowError

Posted by Steven Bethard <st...@gmail.com>.
On Sun, Apr 13, 2008 at 3:24 PM, Steven Bethard
<st...@gmail.com> wrote:
> On Sun, Apr 13, 2008 at 12:06 PM, Steven Bethard
>  <st...@gmail.com> wrote:
>
> > Apr 13, 2008 9:58:31 AM
>  > org.apache.uima.collection.impl.cpm.engine.CPMThreadGroup process
>  > SEVERE: The CPM thread group caught the following unhandled error:
>  > java.lang.StackOverflowError (Thread Name: [Procesing Pipeline#1
>  > Thread]::)
>  > java.lang.StackOverflowError
>  >        at java.util.regex.Pattern$Curly.match1(Pattern.java:4258)
>  >        at java.util.regex.Pattern$Curly.match(Pattern.java:4207)
>  >        at java.util.regex.Pattern$GroupHead.match(Pattern.java:4578)
>  >        at java.util.regex.Pattern$Loop.match(Pattern.java:4705)
>  >        at java.util.regex.Pattern$GroupTail.match(Pattern.java:4637)
>  >        at java.util.regex.Pattern$GroupTail.match(Pattern.java:4637)
>  >        at java.util.regex.Pattern$Single.match(Pattern.java:3314)
>  >        at java.util.regex.Pattern$Branch.match(Pattern.java:4538)
>  >        at java.util.regex.Pattern$GroupHead.match(Pattern.java:4578)
>  >        at java.util.regex.Pattern$Curly.match1(Pattern.java:4258)
>  >        ...
>  >        at java.util.regex.Pattern$Single.match(Pattern.java:3314)
>
>
> On Sun, Apr 13, 2008 at 1:27 PM, Eddie Epstein <ea...@gmail.com> wrote:
>  > *StackOverflowError *is "thrown when a stack overflow occurs because an
>  >  application recurses too deeply." Maybe the exception catcher is looping.
>
>  Well, it's clearly recursing on java.util.regex.Pattern. But I don't
>  know who is using Pattern or where.
>
>  >  Check in uima.log file for the run. If there is none, make sure UIMA_HOME is
>  >  defined, and if still no log, modify $UIMA_HOME/config/Logger.properties to
>  >  get more logging; try Fine or Finest.
>
>  I don't see any uima.log file generated anywhere. I'm running this
>  through Eclipse, and I tried setting the UIMA_HOME variable, supplying
>  -Djava.util.logging.config.file=myfile as a VM argument, and a few
>  other things, but I've never seen any logging output except that
>  printed to the console (as I showed in my last email). Is there
>  something else I have to do in Eclipse to get a log file?

Nevermind, I figured this out. I set
-Djava.util.logging.config.file=$UIMA_HOME/config/Logger.properties
and then I got a log file. The FINE messages then showed me that the
last AnalysisEngine running before the StackOverflowError was our
SentenceSegmenter module:

4/13/08 3:30:12 PM - 16:
org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.process:
FINE: AnalysisEngine SentenceSegmenter process begin

Thanks for the help!  I should be able to debug the problem from here.

Steve
-- 
I'm not *in*-sane. Indeed, I am so far *out* of sane that you appear a
tiny blip on the distant coast of sanity.
        --- Bucky Katt, Get Fuzzy

Re: Diagnosing a Pattern StackOverflowError

Posted by Eddie Epstein <ea...@gmail.com>.
On Sun, Apr 13, 2008 at 5:24 PM, Steven Bethard <st...@gmail.com>
wrote:

> Well, it's clearly recursing on java.util.regex.Pattern. But I don't
> know who is using Pattern or where.


Oh yeah, even I can see that now :)


>
> I don't see any uima.log file generated anywhere. I'm running this
> through Eclipse, and I tried setting the UIMA_HOME variable, supplying
> -Djava.util.logging.config.file=myfile as a VM argument, and a few
> other things, but I've never seen any logging output except that
> printed to the console (as I showed in my last email). Is there
> something else I have to do in Eclipse to get a log file?
>

Make sure that -Djava.util.logging.config.file points at a valid
configuration file; for example, using $UIMA_HOME/config/Logger.properties,
uncomment the last line and change it from
# org.apache.uima.level = ALL
to
org.apache.uima.level = FINE

That should give you a uima.log in the working directory specified by the
eclipse run configuration.

Eddie

Re: Diagnosing a Pattern StackOverflowError

Posted by Steven Bethard <st...@gmail.com>.
On Sun, Apr 13, 2008 at 12:06 PM, Steven Bethard
<st...@gmail.com> wrote:
> Apr 13, 2008 9:58:31 AM
> org.apache.uima.collection.impl.cpm.engine.CPMThreadGroup process
> SEVERE: The CPM thread group caught the following unhandled error:
> java.lang.StackOverflowError (Thread Name: [Procesing Pipeline#1
> Thread]::)
> java.lang.StackOverflowError
>        at java.util.regex.Pattern$Curly.match1(Pattern.java:4258)
>        at java.util.regex.Pattern$Curly.match(Pattern.java:4207)
>        at java.util.regex.Pattern$GroupHead.match(Pattern.java:4578)
>        at java.util.regex.Pattern$Loop.match(Pattern.java:4705)
>        at java.util.regex.Pattern$GroupTail.match(Pattern.java:4637)
>        at java.util.regex.Pattern$GroupTail.match(Pattern.java:4637)
>        at java.util.regex.Pattern$Single.match(Pattern.java:3314)
>        at java.util.regex.Pattern$Branch.match(Pattern.java:4538)
>        at java.util.regex.Pattern$GroupHead.match(Pattern.java:4578)
>        at java.util.regex.Pattern$Curly.match1(Pattern.java:4258)
>        ...
>        at java.util.regex.Pattern$Single.match(Pattern.java:3314)

On Sun, Apr 13, 2008 at 1:27 PM, Eddie Epstein <ea...@gmail.com> wrote:
> *StackOverflowError *is "thrown when a stack overflow occurs because an
>  application recurses too deeply." Maybe the exception catcher is looping.

Well, it's clearly recursing on java.util.regex.Pattern. But I don't
know who is using Pattern or where.

>  Check in uima.log file for the run. If there is none, make sure UIMA_HOME is
>  defined, and if still no log, modify $UIMA_HOME/config/Logger.properties to
>  get more logging; try Fine or Finest.

I don't see any uima.log file generated anywhere. I'm running this
through Eclipse, and I tried setting the UIMA_HOME variable, supplying
-Djava.util.logging.config.file=myfile as a VM argument, and a few
other things, but I've never seen any logging output except that
printed to the console (as I showed in my last email). Is there
something else I have to do in Eclipse to get a log file?

Steve
-- 
I'm not *in*-sane. Indeed, I am so far *out* of sane that you appear a
tiny blip on the distant coast of sanity.
        --- Bucky Katt, Get Fuzzy

Re: Diagnosing a Pattern StackOverflowError

Posted by Eddie Epstein <ea...@gmail.com>.
*StackOverflowError *is "thrown when a stack overflow occurs because an
application recurses too deeply." Maybe the exception catcher is looping.
Check in uima.log file for the run. If there is none, make sure UIMA_HOME is
defined, and if still no log, modify $UIMA_HOME/config/Logger.properties to
get more logging; try Fine or Finest.

On Sun, Apr 13, 2008 at 12:06 PM, Steven Bethard <st...@gmail.com>
wrote:

> So my CPE is dying with a "java.lang.StackOverflowError" dialog and
> the following message printed to the console:
>
> Apr 13, 2008 9:58:31 AM
> org.apache.uima.collection.impl.cpm.engine.CPMThreadGroup process
> SEVERE: The CPM thread group caught the following unhandled error:
> java.lang.StackOverflowError (Thread Name: [Procesing Pipeline#1
> Thread]::)
> java.lang.StackOverflowError
>        at java.util.regex.Pattern$Curly.match1(Pattern.java:4258)
>        at java.util.regex.Pattern$Curly.match(Pattern.java:4207)
>        at java.util.regex.Pattern$GroupHead.match(Pattern.java:4578)
>        at java.util.regex.Pattern$Loop.match(Pattern.java:4705)
>        at java.util.regex.Pattern$GroupTail.match(Pattern.java:4637)
>        at java.util.regex.Pattern$GroupTail.match(Pattern.java:4637)
>        at java.util.regex.Pattern$Single.match(Pattern.java:3314)
>        at java.util.regex.Pattern$Branch.match(Pattern.java:4538)
>        at java.util.regex.Pattern$GroupHead.match(Pattern.java:4578)
>        at java.util.regex.Pattern$Curly.match1(Pattern.java:4258)
>        ...
>        at java.util.regex.Pattern$Single.match(Pattern.java:3314)
>
> Anyone know how to diagnose this problem? I can't see a reference to
> any of my files, or even something in UIMA. (I looked at the
> CPMThreadGroup class, but that doesn't seem to do much other than
> handle caught exceptions.)
>
> Steve
> --
> I'm not *in*-sane. Indeed, I am so far *out* of sane that you appear a
> tiny blip on the distant coast of sanity.
>  --- Bucky Katt, Get Fuzzy
>