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

Regular expression of Doxygen parser is too complex for JDK pattern

    XMLWordPrintable

Details

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

    Description

      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.

      Attachments

        Issue Links

          Activity

            tapiomtr tapiomtr created issue -
            drulli Ulli Hafner added a comment -

            Which parsers do you using?

            Can you please attach the scanned log file?

            Which JDK are you using?

            drulli Ulli Hafner added a comment - Which parsers do you using? Can you please attach the scanned log file? Which JDK are you using?
            tapiomtr tapiomtr made changes -
            Field Original Value New Value
            Attachment consoleText.zip [ 19648 ]
            tapiomtr tapiomtr made changes -
            tapiomtr 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 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_issue_link 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.
            drulli 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.

            drulli 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.
            drulli Ulli Hafner added a comment -

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

            drulli Ulli Hafner added a comment - Integrated in Hudson Plug-ins (Compile) #38 JENKINS-7178 Added test case that exposes JDK bug.
            tapiomtr 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 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)?
            drulli Ulli Hafner added a comment -

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

            drulli Ulli Hafner added a comment - The problem is not the doxygen file. It's the console log. This logfile lets the doxygen parser fail.
            drulli Ulli Hafner made changes -
            Priority Major [ 3 ] Minor [ 4 ]
            drulli Ulli Hafner made changes -
            Link This issue is duplicated by JENKINS-7687 [ JENKINS-7687 ]
            drulli Ulli Hafner made changes -
            Link This issue is duplicated by JENKINS-8047 [ JENKINS-8047 ]
            drulli Ulli Hafner made changes -
            Link This issue is duplicated by JENKINS-10425 [ JENKINS-10425 ]
            drulli Ulli Hafner added a comment -

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

            drulli 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.

            kworr Volodymyr Kostyrko added a comment - FreeBSD 9.1, OpenJDK 7. Same thing - getting java.lang.stackoverflow when trying to process Doxygen logs.
            drulli 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.

            drulli 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.
            drulli Ulli Hafner made changes -
            Link This issue is duplicated by JENKINS-18833 [ JENKINS-18833 ]
            drulli Ulli Hafner made changes -
            Summary Hudson Warning Plugin crash, java.lang.StackOverflowError Regular expression of Doxygen parser is too complex for JDK pattern
            julrich 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.

            julrich 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.
            drulli Ulli Hafner made changes -
            Link This issue is duplicated by JENKINS-30699 [ JENKINS-30699 ]
            rtyler R. Tyler Croy made changes -
            Workflow JNJira [ 137276 ] JNJira + In-Review [ 174670 ]
            drulli Ulli Hafner made changes -
            Component/s analysis-model [ 23523 ]
            Component/s warnings-plugin [ 15513 ]
            drulli Ulli Hafner added a comment -

            It would make sense to re-implement the parser.

            drulli Ulli Hafner added a comment - It would make sense to re-implement the parser.
            drulli Ulli Hafner made changes -
            Assignee Ulli Hafner [ drulli ]
            Labels help-wanted newbie-friendly
            drulli Ulli Hafner made changes -
            Resolution Fixed [ 1 ]
            Status Open [ 1 ] Fixed but Unreleased [ 10203 ]
            drulli Ulli Hafner made changes -
            Released As warnings-ng 4.0.0, analysis-model-api 3.0.0
            Status Fixed but Unreleased [ 10203 ] Resolved [ 5 ]

            People

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

              Dates

                Created:
                Updated:
                Resolved: