Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-7178

Regular expression of Doxygen parser is too complex for JDK pattern

    • warnings-ng 4.0.0, analysis-model-api 3.0.0

      The Hudson Warnings pluging crash when checking warnings during build. See attached crash dump file.
      Hudson version is 1.370. Warnings Plug-in version is 3.8, In general Hudson and it's plugings are up to date.
      In general we are running all jobs in slave computers. I think, when the Warnings pluging 3.8 was installed this crash occurred.
      When this same Warnings pluging is running on Windows environment, it doesn't crash.

          [JENKINS-7178] Regular expression of Doxygen parser is too complex for JDK pattern

          Ulli Hafner added a comment -

          Which parsers do you using?

          Can you please attach the scanned log file?

          Which JDK are you using?

          Ulli Hafner added a comment - Which parsers do you using? Can you please attach the scanned log file? Which JDK are you using?

          tapiomtr added a comment -

          Used parsers can be find out attached "screen shot" picture. It mainly check warnings from the output of the console log, which is also attached as an zip file. The doxygen warnings log file semas to be empty, e.g. it's size is zero.

          Here is the info of the used Java:
          file.encoding UTF-8
          file.encoding.pkg sun.io
          file.separator /
          java.awt.graphicsenv sun.awt.X11GraphicsEnvironment
          java.awt.printerjob sun.print.PSPrinterJob
          java.class.path /usr/share/hudson/slave.jar
          java.class.version 50.0
          java.endorsed.dirs /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/endorsed
          java.ext.dirs /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/ext:/usr/java/packages/lib/ext
          java.home /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre
          java.io.tmpdir /tmp
          java.library.path /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/server:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/../lib/i386::/opt/axis2c/lib:/usr/java/packages/lib/i386:/lib:/usr/lib
          java.runtime.name OpenJDK Runtime Environment
          java.runtime.version 1.6.0_0-b16
          java.specification.name Java Platform API Specification
          java.specification.vendor Sun Microsystems Inc.
          java.specification.version 1.6
          java.vendor Sun Microsystems Inc.
          java.vendor.url http://java.sun.com/
          java.vendor.url.bug http://java.sun.com/cgi-bin/bugreport.cgi
          java.version 1.6.0_0
          java.vm.info mixed mode
          java.vm.name OpenJDK Server VM
          java.vm.specification.name Java Virtual Machine Specification
          java.vm.specification.vendor Sun Microsystems Inc.
          java.vm.specification.version 1.0
          java.vm.vendor Sun Microsystems Inc.
          java.vm.version 14.0-b16
          jna.platform.library.path /usr/lib:/lib
          line.separator
          os.arch i386
          os.name Linux
          os.version 2.6.18-194.3.1.el5
          path.separator :
          sun.arch.data.model 32
          sun.boot.class.path /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/resources.jar:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/rt.jar:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/jsse.jar:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/jce.jar:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/charsets.jar:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/classes
          sun.boot.library.path /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386
          sun.cpu.endian little
          sun.cpu.isalist
          sun.io.unicode.encoding UnicodeLittle
          sun.java.launcher SUN_STANDARD
          sun.jnu.encoding UTF-8
          sun.management.compiler HotSpot Tiered Compilers
          sun.os.patch.level unknown
          svnkit.ssh2.persistent false
          user.country US
          user.dir /root
          user.home /root
          user.language en
          user.name root
          user.timezone Europe/Helsinki
          user.zoneinfo.dir /usr/share/javazi

          tapiomtr added a comment - Used parsers can be find out attached "screen shot" picture. It mainly check warnings from the output of the console log, which is also attached as an zip file. The doxygen warnings log file semas to be empty, e.g. it's size is zero. Here is the info of the used Java: file.encoding UTF-8 file.encoding.pkg sun.io file.separator / java.awt.graphicsenv sun.awt.X11GraphicsEnvironment java.awt.printerjob sun.print.PSPrinterJob java.class.path /usr/share/hudson/slave.jar java.class.version 50.0 java.endorsed.dirs /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/endorsed java.ext.dirs /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/ext:/usr/java/packages/lib/ext java.home /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre java.io.tmpdir /tmp java.library.path /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/server:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/../lib/i386::/opt/axis2c/lib:/usr/java/packages/lib/i386:/lib:/usr/lib java.runtime.name OpenJDK Runtime Environment java.runtime.version 1.6.0_0-b16 java.specification.name Java Platform API Specification java.specification.vendor Sun Microsystems Inc. java.specification.version 1.6 java.vendor Sun Microsystems Inc. java.vendor.url http://java.sun.com/ java.vendor.url.bug http://java.sun.com/cgi-bin/bugreport.cgi java.version 1.6.0_0 java.vm.info mixed mode java.vm.name OpenJDK Server VM java.vm.specification.name Java Virtual Machine Specification java.vm.specification.vendor Sun Microsystems Inc. java.vm.specification.version 1.0 java.vm.vendor Sun Microsystems Inc. java.vm.version 14.0-b16 jna.platform.library.path /usr/lib:/lib line.separator os.arch i386 os.name Linux os.version 2.6.18-194.3.1.el5 path.separator : sun.arch.data.model 32 sun.boot.class.path /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/resources.jar:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/rt.jar:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/jsse.jar:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/jce.jar:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/charsets.jar:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/classes sun.boot.library.path /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386 sun.cpu.endian little sun.cpu.isalist sun.io.unicode.encoding UnicodeLittle sun.java.launcher SUN_STANDARD sun.jnu.encoding UTF-8 sun.management.compiler HotSpot Tiered Compilers sun.os.patch.level unknown svnkit.ssh2.persistent false user.country US user.dir /root user.home /root user.language en user.name root user.timezone Europe/Helsinki user.zoneinfo.dir /usr/share/javazi

          Code changed in hudson
          User: : drulli
          Path:
          trunk/hudson/plugins/warnings/.settings/org.eclipse.core.resources.prefs
          trunk/hudson/plugins/warnings/src/test/java/hudson/plugins/warnings/parser/DoxygenParserTest.java
          trunk/hudson/plugins/warnings/src/test/resources/hudson/plugins/warnings/parser/issue7178.txt
          http://jenkins-ci.org/commit/33696
          Log:
          JENKINS-7178 Added test case that exposes JDK bug.

          SCM/JIRA link daemon added a comment - Code changed in hudson User: : drulli Path: trunk/hudson/plugins/warnings/.settings/org.eclipse.core.resources.prefs trunk/hudson/plugins/warnings/src/test/java/hudson/plugins/warnings/parser/DoxygenParserTest.java trunk/hudson/plugins/warnings/src/test/resources/hudson/plugins/warnings/parser/issue7178.txt http://jenkins-ci.org/commit/33696 Log: JENKINS-7178 Added test case that exposes JDK bug.

          Ulli Hafner added a comment -

          This seems to be a JDK bug, see reference URL. The problematic parser is the Doxygen Parser. Until this is fixed you need to remove that parser.

          Ulli Hafner added a comment - This seems to be a JDK bug, see reference URL. The problematic parser is the Doxygen Parser. Until this is fixed you need to remove that parser.

          Ulli Hafner added a comment -

          Integrated in Hudson Plug-ins (Compile) #38
          JENKINS-7178 Added test case that exposes JDK bug.

          Ulli Hafner added a comment - Integrated in Hudson Plug-ins (Compile) #38 JENKINS-7178 Added test case that exposes JDK bug.

          tapiomtr added a comment -

          When I use same Warnings parser for a Doxygen log file, that has content it doesn't crash at all. But in my case the content of the Doxygen log file is empty (zero bytes)?

          tapiomtr added a comment - When I use same Warnings parser for a Doxygen log file, that has content it doesn't crash at all. But in my case the content of the Doxygen log file is empty (zero bytes)?

          Ulli Hafner added a comment -

          The problem is not the doxygen file. It's the console log. This logfile lets the doxygen parser fail.

          Ulli Hafner added a comment - The problem is not the doxygen file. It's the console log. This logfile lets the doxygen parser fail.

          Ulli Hafner added a comment -

          Can someone please check if Jenkins running on JDK 7 solves this problem?

          Ulli Hafner added a comment - Can someone please check if Jenkins running on JDK 7 solves this problem?

          FreeBSD 9.1, OpenJDK 7. Same thing - getting java.lang.stackoverflow when trying to process Doxygen logs.

          Volodymyr Kostyrko added a comment - FreeBSD 9.1, OpenJDK 7. Same thing - getting java.lang.stackoverflow when trying to process Doxygen logs.

          Ulli Hafner added a comment -

          Ok, thanks for checking. I think the doxygen parser needs to be re-written in order to avoid that JDK bug.

          Ulli Hafner added a comment - Ok, thanks for checking. I think the doxygen parser needs to be re-written in order to avoid that JDK bug.

          Jochen Ulrich added a comment -

          This issue seems to be related to the size of the log (see also this comment in the linked ticket).
          So there is a simple workaround: capture the stderr output of Doxygen in a file (or use the WARN_LOGFILE parameter in the Doxyfile) and let the warnings plugin run on that file.

          Jochen Ulrich added a comment - This issue seems to be related to the size of the log (see also this comment in the linked ticket ). So there is a simple workaround: capture the stderr output of Doxygen in a file (or use the WARN_LOGFILE parameter in the Doxyfile) and let the warnings plugin run on that file.

          Ulli Hafner added a comment -

          It would make sense to re-implement the parser.

          Ulli Hafner added a comment - It would make sense to re-implement the parser.

            Unassigned Unassigned
            tapiomtr tapiomtr
            Votes:
            6 Vote for this issue
            Watchers:
            12 Start watching this issue

              Created:
              Updated:
              Resolved: