The parsing depends on the size of the file to read. Each line is
matched with a regular expression. The complexity of these expressions
is quite different for different parsers.

The Java parser has an optimization step: it using a string matcher for
each line that detects the existence of the word "warning". Only lines
containing that text will be matched with the regular expression
afterwards. I don't remember the syntax of JavaDoc warnings, is there a
similar string that can be used?

And 750MB is a really large log file :-) As a workaround you can try to
write the output of the javadoc processing to a different file.

Ulli



On 02/09/2012 05:32 PM, Nord, James wrote:
>
> Hi,
>
>  
>
> We have the warnings plugin enabled – which looks for javac and
> javadoc warnings in the maven2 type build.
>
>  
>
> All is fine until I ran a release.  The warnings plugin took about 9.5
> hours (yes nine and a half) to parse the console to find the javadoc
> warnings!?
>
> A build of deploy site-deploy with the same configuration takes a few
> minutes.
>
>  
>
> The main difference is the maven jobs use
> -Dmaven.test.redirectTestOutputToFile=true (and as such the console
> was large ~700MB)
>
> However the javac error parsing completed in a few minutes…
>
>  
>
> (<consoleLogParsers>
>
> <string>Java Compiler</string>
>
> <string>JavaDoc</string>
>
> </consoleLogParsers>
>
> )
>
>  
>
> The parser found 161 javadoc warnings – so not that many :-P
>
>  
>
> Stack trace from the job is as follows
>
> "Executor #0 for xxxxxxxx: executing yyyycommit #5" Id=63 Group=main RUNNABLE
>
>         at java.util.regex.Pattern$CharProperty.match(Pattern.java:3694)
>
>         at java.util.regex.Pattern$Curly.match0(Pattern.java:4158)
>
>         at java.util.regex.Pattern$Curly.match(Pattern.java:4132)
>
>         at java.util.regex.Pattern$GroupHead.match(Pattern.java:4556)
>
>         at java.util.regex.Pattern$GroupHead.match(Pattern.java:4556)
>
>         at java.util.regex.Pattern$Branch.match(Pattern.java:4502)
>
>         at java.util.regex.Pattern$GroupHead.match(Pattern.java:4556)
>
>         at java.util.regex.Pattern$Branch.match(Pattern.java:4500)
>
>         at java.util.regex.Pattern$Start.match(Pattern.java:3408)
>
>         at java.util.regex.Matcher.search(Matcher.java:1198)
>
>         at java.util.regex.Matcher.find(Matcher.java:591)
>
>         at
> hudson.plugins.warnings.parser.RegexpParser.findAnnotations(RegexpParser.java:81)
>
>         at
> hudson.plugins.warnings.parser.RegexpLineParser.parse(RegexpLineParser.java:82)
>
>         at
> hudson.plugins.warnings.parser.ParserRegistry.parse(ParserRegistry.java:273)
>
>         at
> hudson.plugins.warnings.WarningsPublisher.parseConsoleLog(WarningsPublisher.java:278)
>
>         at
> hudson.plugins.warnings.WarningsPublisher.perform(WarningsPublisher.java:244)
>
>         at
> hudson.plugins.analysis.core.HealthAwarePublisher.perform(HealthAwarePublisher.java:338)
>
>         at
> hudson.tasks.BuildStepMonitor$2.perform(BuildStepMonitor.java:27)
>
>         at
> hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:682)
>
>         at
> hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:657)
>
>         at
> hudson.maven.MavenModuleSetBuild$RunnerImpl.post2(MavenModuleSetBuild.java:942)
>
>         at
> hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:604)
>
>         at hudson.model.Run.run(Run.java:1400)
>
>         at
> hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:476)
>
>         at
> hudson.model.ResourceController.execute(ResourceController.java:88)
>
>         at hudson.model.Executor.run(Executor.java:175)
>
>  
>
>  
>
> Is there something massively different between how javadoc and javac
> warnings are tracked – I’m unclear why it took so long.
>
>  
>
> Monitoring showed there was plenty of heap available and although this
> is on a vm – it pretty much had one core of a X5690 dedicated to this
> parsing (Jenkins itself has 2 vcpus – and the whole system was mostly
> idle.)
>
>  
>
> Jenkins 1.424.2 with 3.26 of the warnings plugin.
>
>  
>
> /James
>
>
> ------------------------------------------------------------------------
>
> **************************************************************************************
> This message is confidential and intended only for the addressee. If
> you have received this message in error, please immediately notify the
> postmas...@nds.com and delete it from your system as well as any
> copies. The content of e-mails as well as traffic data may be
> monitored by NDS for employment and security purposes. To protect the
> environment please do not print this e-mail unless necessary.
>
> NDS Limited. Registered Office: One London Road, Staines, Middlesex,
> TW18 4EX, United Kingdom. A company registered in England and Wales.
> Registered no. 3080780. VAT no. GB 603 8808 40-00
> **************************************************************************************

Reply via email to