[ 
https://issues.apache.org/jira/browse/OOZIE-1691?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13907221#comment-13907221
 ] 

Bowen Zhang commented on OOZIE-1691:
------------------------------------

Thanks, Puru. This is actually a critical fix since the stackoverflow error 
happens a lot in production environment.

> StackOverflowError in TimestampedMessageParser.parseNextLine()
> --------------------------------------------------------------
>
>                 Key: OOZIE-1691
>                 URL: https://issues.apache.org/jira/browse/OOZIE-1691
>             Project: Oozie
>          Issue Type: Bug
>            Reporter: purshotam shah
>            Assignee: purshotam shah
>             Fix For: trunk
>
>         Attachments: OOZIE-1691.patch, OOZIE-1691.patch
>
>
> Below function will throws StackOverflowError if no matching line is found 
> for a few consecutive lines.
> This will be a common scenario in HA where bundle/coord/WF got executed in 
> other host. For log aggregation we have to search logs in all host and may 
> lead to StackOverflowError.
> {code:java}
> protected String parseNextLine() throws IOException {
>         String line = reader.readLine();
>         if (line != null) {
>             ArrayList<String> logParts = filter.splitLogMessage(line);
>             if (logParts != null) {
>                 patternMatched = filter.matches(logParts);
>             }
>             if (!patternMatched) {
>                 line = parseNextLine();
>             }
>         }
>         return line;
>     }
> {code}
> Exception
>       Caused by: java.lang.StackOverflowError
>               at java.util.regex.Pattern$GroupTail.match(Pattern.java:4615)
>               at java.util.regex.Pattern$Curly.match0(Pattern.java:4170)
>               ...........................................
>               at 
> java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3715)
>               at 
> java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3715)
>               at java.util.regex.Pattern$GroupHead.match(Pattern.java:4556)
>               at java.util.regex.Matcher.match(Matcher.java:1221)
>               at java.util.regex.Matcher.matches(Matcher.java:559)
>               at 
> org.apache.oozie.util.XLogStreamer$Filter.splitLogMessage(XLogStreamer.java:138)
>               at 
> org.apache.oozie.util.TimestampedMessageParser.parseNextLine(TimestampedMessageParser.java:138)
>               at 
> org.apache.oozie.util.TimestampedMessageParser.parseNextLine(TimestampedMessageParser.java:143)
>               at 
> org.apache.oozie.util.TimestampedMessageParser.parseNextLine(TimestampedMessageParser.java:143)
>               at 
> org.apache.oozie.util.TimestampedMessageParser.parseNextLine(TimestampedMessageParser.java:143)



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to