• Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Minor Minor
    • dry-plugin
    • None
    • Jenkin: 1.615 Dry-plugin: 2.41

      I am using Jnekins to 1.615 and Dry-plugin 2.41 to display copy-paste-duplicate results from PMD tool. But Jenkins is getting hung with the below error.

      Exception in thread "Ping thread for channel hudson.remoting.Channel@6f4dbda2:tools" Exception in thread "Channel reader thread: vagrant_buildserver" Exception in thread "Ping thread for channel hudson.remoting.Channel@1d1c75d:xxxxx" Exception in thread "Thread-5" Exception in thread "Ping thread for channel hudson.remoting.Channel@16e7ae76:vagrant_tibi" Exception in thread "Ping thread for channel hudson.remoting.Channel@5d6577bf:InV_CI" java.lang.OutOfMemoryError: GC overhead limit exceeded
      at java.lang.AbstractStringBuilder.<init>(AbstractStringBuilder.java:68)
      at java.lang.StringBuffer.<init>(StringBuffer.java:116)
      java.lang.OutOfMemoryError: GC overhead limit exceeded
      java.lang.OutOfMemoryError: GC overhead limit exceeded
      at java.util.Arrays.copyOf(Arrays.java:3332)
      at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:137)
      at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:121)
      at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:421)
      at java.lang.StringBuilder.append(StringBuilder.java:136)
      at com.trilead.ssh2.transport.TransportConnection.receiveMessage(TransportConnection.java:278)
      at com.trilead.ssh2.transport.TransportManager.receiveLoop(TransportManager.java:693)
      at com.trilead.ssh2.transport.TransportManager$1.run(TransportManager.java:489)
      at java.lang.Thread.run(Thread.java:745)

          [JENKINS-28669] Dry-plugin crashing with GC exception

          Ulli Hafner added a comment -

          How big is your cpd file? Can you please post the whole thread dump?

          Ulli Hafner added a comment - How big is your cpd file? Can you please post the whole thread dump?

          The cpd file is 38MB. Below is the complete dump.
          INFO: Code_Duplicity #1 main build action completed: SUCCESS
          Exception in thread "Ping thread for channel hudson.remoting.Channel@6f4dbda2:tools" Exception in thread "Channel reader thread: vagrant_buildserver" Exception in thread "Ping thread for channel hudson.remoting.Channel@1d1c75d:vagrant_buildserver" Exception in thread "Thread-5" Exception in thread "Ping thread for channel hudson.remoting.Channel@16e7ae76:vagrant_tibi" Exception in thread "Ping thread for channel hudson.remoting.Channel@5d6577bf:InV_CI" java.lang.OutOfMemoryError: GC overhead limit exceeded
          at java.lang.AbstractStringBuilder.<init>(AbstractStringBuilder.java:68)
          at java.lang.StringBuffer.<init>(StringBuffer.java:116)
          java.lang.OutOfMemoryError: GC overhead limit exceeded
          java.lang.OutOfMemoryError: GC overhead limit exceeded
          at java.util.Arrays.copyOf(Arrays.java:3332)
          at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:137)
          at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:121)
          at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:421)
          at java.lang.StringBuilder.append(StringBuilder.java:136)
          at com.trilead.ssh2.transport.TransportConnection.receiveMessage(TransportConnection.java:278)
          at com.trilead.ssh2.transport.TransportManager.receiveLoop(TransportManager.java:693)
          at com.trilead.ssh2.transport.TransportManager$1.run(TransportManager.java:489)
          at java.lang.Thread.run(Thread.java:745)

          Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "Ping thread for channel hudson.remoting.Channel@5d6577bf:InV_CI"
          java.lang.OutOfMemoryError: GC overhead limit exceeded
          java.lang.OutOfMemoryError: GC overhead limit exceeded
          at java.io.ObjectOutputStream$BlockDataOutputStream.<init>(ObjectOutputStream.java:1754)
          at java.io.ObjectOutputStream.<init>(ObjectOutputStream.java:242)
          at hudson.remoting.MultiClassLoaderSerializer$Output.<init>(MultiClassLoaderSerializer.java:38)
          at hudson.remoting.UserRequest._serialize(UserRequest.java:154)
          at hudson.remoting.UserRequest.serialize(UserRequest.java:167)
          at hudson.remoting.UserRequest.<init>(UserRequest.java:63)
          at hudson.remoting.Channel.callAsync(Channel.java:779)
          at hudson.remoting.PingThread.ping(PingThread.java:104)
          at hudson.remoting.PingThread.run(PingThread.java:85)
          java.lang.OutOfMemoryError: GC overhead limit exceeded
          May 27, 2015 6:52:34 PM org.eclipse.jetty.util.log.JavaUtilLog warn
          WARNING:
          java.lang.OutOfMemoryError: GC overhead limit exceeded

          May 27, 2015 6:47:59 PM hudson.triggers.Trigger$Cron doRun

          Debashis Prusty added a comment - The cpd file is 38MB. Below is the complete dump. INFO: Code_Duplicity #1 main build action completed: SUCCESS Exception in thread "Ping thread for channel hudson.remoting.Channel@6f4dbda2:tools" Exception in thread "Channel reader thread: vagrant_buildserver" Exception in thread "Ping thread for channel hudson.remoting.Channel@1d1c75d:vagrant_buildserver" Exception in thread "Thread-5" Exception in thread "Ping thread for channel hudson.remoting.Channel@16e7ae76:vagrant_tibi" Exception in thread "Ping thread for channel hudson.remoting.Channel@5d6577bf:InV_CI" java.lang.OutOfMemoryError: GC overhead limit exceeded at java.lang.AbstractStringBuilder.<init>(AbstractStringBuilder.java:68) at java.lang.StringBuffer.<init>(StringBuffer.java:116) java.lang.OutOfMemoryError: GC overhead limit exceeded java.lang.OutOfMemoryError: GC overhead limit exceeded at java.util.Arrays.copyOf(Arrays.java:3332) at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:137) at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:121) at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:421) at java.lang.StringBuilder.append(StringBuilder.java:136) at com.trilead.ssh2.transport.TransportConnection.receiveMessage(TransportConnection.java:278) at com.trilead.ssh2.transport.TransportManager.receiveLoop(TransportManager.java:693) at com.trilead.ssh2.transport.TransportManager$1.run(TransportManager.java:489) at java.lang.Thread.run(Thread.java:745) Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "Ping thread for channel hudson.remoting.Channel@5d6577bf:InV_CI" java.lang.OutOfMemoryError: GC overhead limit exceeded java.lang.OutOfMemoryError: GC overhead limit exceeded at java.io.ObjectOutputStream$BlockDataOutputStream.<init>(ObjectOutputStream.java:1754) at java.io.ObjectOutputStream.<init>(ObjectOutputStream.java:242) at hudson.remoting.MultiClassLoaderSerializer$Output.<init>(MultiClassLoaderSerializer.java:38) at hudson.remoting.UserRequest._serialize(UserRequest.java:154) at hudson.remoting.UserRequest.serialize(UserRequest.java:167) at hudson.remoting.UserRequest.<init>(UserRequest.java:63) at hudson.remoting.Channel.callAsync(Channel.java:779) at hudson.remoting.PingThread.ping(PingThread.java:104) at hudson.remoting.PingThread.run(PingThread.java:85) java.lang.OutOfMemoryError: GC overhead limit exceeded May 27, 2015 6:52:34 PM org.eclipse.jetty.util.log.JavaUtilLog warn WARNING: java.lang.OutOfMemoryError: GC overhead limit exceeded May 27, 2015 6:47:59 PM hudson.triggers.Trigger$Cron doRun

          This is what I got in Jenkins.

          </pmd-cpd>
          [DRY] Collecting duplicate code analysis files...
          [DRY] Finding all files that match the pattern cpd_report.xml
          [DRY] Parsing 1 file in /home/dprusty/jenkins/workspace/RAA_Code_Duplicity
          [DRY] Successfully parsed file /home/dprusty/jenkins/workspace/RAA_Code_Duplicity/cpd_report.xml with 41062 unique warnings and 0 duplicates.
          FATAL: GC overhead limit exceeded
          java.lang.OutOfMemoryError: GC overhead limit exceeded
          at com.thoughtworks.xstream.io.path.PathTracker.getPath(PathTracker.java:166)
          at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:53)
          at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)
          at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43)
          at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:88)
          at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64)
          at com.thoughtworks.xstream.converters.collections.CollectionConverter.marshal(CollectionConverter.java:74)
          at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69)
          at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)
          at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:84)
          at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:223)
          at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:210)
          at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:182)
          at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:138)
          at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:167)
          at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:108)
          at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69)
          at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)
          at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43)
          at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:88)
          at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64)
          at com.thoughtworks.xstream.converters.collections.CollectionConverter.marshal(CollectionConverter.java:74)
          at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69)
          at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)
          at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:84)
          at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:223)
          at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:210)
          at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:182)
          at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:138)
          at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:167)
          at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:108)
          at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69)
          Finished: FAILURE

          Debashis Prusty added a comment - This is what I got in Jenkins. </pmd-cpd> [DRY] Collecting duplicate code analysis files... [DRY] Finding all files that match the pattern cpd_report.xml [DRY] Parsing 1 file in /home/dprusty/jenkins/workspace/RAA_Code_Duplicity [DRY] Successfully parsed file /home/dprusty/jenkins/workspace/RAA_Code_Duplicity/cpd_report.xml with 41062 unique warnings and 0 duplicates. FATAL: GC overhead limit exceeded java.lang.OutOfMemoryError: GC overhead limit exceeded at com.thoughtworks.xstream.io.path.PathTracker.getPath(PathTracker.java:166) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:53) at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58) at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:88) at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64) at com.thoughtworks.xstream.converters.collections.CollectionConverter.marshal(CollectionConverter.java:74) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69) at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:84) at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:223) at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:210) at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:182) at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:138) at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:167) at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:108) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69) at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58) at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:88) at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64) at com.thoughtworks.xstream.converters.collections.CollectionConverter.marshal(CollectionConverter.java:74) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69) at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:84) at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:223) at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:210) at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:182) at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:138) at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:167) at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:108) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69) Finished: FAILURE

          Ulli Hafner added a comment -

          Hmm, still no dry plugin class in stack trace visible.

          However, this looks like JENKINS-1960. The plug-in is not made for such large amount of warnigs...

          Ulli Hafner added a comment - Hmm, still no dry plugin class in stack trace visible. However, this looks like JENKINS-1960 . The plug-in is not made for such large amount of warnigs...

          Yes. I think you are right. When I run it for Java (about 1200 warnings), it's working fine. But failing for cpp may be due to huge number of warnings. I tried even with -Xmx2048M still it failed.

          So I left it for cpp now and publishing for Java only. Hope the enhancement will come someday.

          Debashis Prusty added a comment - Yes. I think you are right. When I run it for Java (about 1200 warnings), it's working fine. But failing for cpp may be due to huge number of warnings. I tried even with -Xmx2048M still it failed. So I left it for cpp now and publishing for Java only. Hope the enhancement will come someday.

            drulli Ulli Hafner
            puriadeb Debashis Prusty
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: