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

Permgen leak with SimpleXStreamFlowNodeStorage

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      The workflow plugin can potentially cause a permgen leak if the SimpleXStreamFlowNodeStorage has a lot of flow nodes. Unfortunately I have not been able to reproduce this issue locally.

      Stack track:

          java.lang.String.intern(Native Method)
          org.xmlpull.mxp1.MXParserCachingStrings.newStringIntern(MXParserCachingStrings.java:317)
          org.xmlpull.mxp1.MXParserCachingStrings.newString(MXParserCachingStrings.java:287)
          org.xmlpull.mxp1.MXParser.parseStartTag(MXParser.java:1779)
          org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1127)
          org.xmlpull.mxp1.MXParser.next(MXParser.java:1093)
          com.thoughtworks.xstream.io.xml.XppReader.pullNextEvent(XppReader.java:109)
          com.thoughtworks.xstream.io.xml.AbstractPullReader.readRealEvent(AbstractPullReader.java:148)
          com.thoughtworks.xstream.io.xml.AbstractPullReader.readEvent(AbstractPullReader.java:135)
          com.thoughtworks.xstream.io.xml.AbstractPullReader.hasMoreChildren(AbstractPullReader.java:87)
          com.thoughtworks.xstream.io.ReaderWrapper.hasMoreChildren(ReaderWrapper.java:32)
          hudson.util.RobustReflectionConverter.doUnmarshal(RobustReflectionConverter.java:267)
          hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:228)
          org.jenkinsci.plugins.workflow.support.storage.SimpleXStreamFlowNodeStorage$FlowNodeConverter.unmarshal(SimpleXStreamFlowNodeStorage.java:144)
          com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
          com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
          com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
          hudson.util.RobustReflectionConverter.unmarshalField(RobustReflectionConverter.java:349)
          hudson.util.RobustReflectionConverter.doUnmarshal(RobustReflectionConverter.java:289)
          hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:228)
          com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
          com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
          com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
          com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
          com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134)
          com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
          com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1189)
          hudson.util.XStream2.unmarshal(XStream2.java:113)
          com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1173)
          com.thoughtworks.xstream.XStream.fromXML(XStream.java:1053)
          hudson.XmlFile.read(XmlFile.java:142)
          org.jenkinsci.plugins.workflow.support.storage.SimpleXStreamFlowNodeStorage$PersistenceContext.loadInner(SimpleXStreamFlowNodeStorage.java:224)
          org.jenkinsci.plugins.workflow.support.storage.SimpleXStreamFlowNodeStorage$PersistenceContext.loadOuter(SimpleXStreamFlowNodeStorage.java:213)
          org.jenkinsci.plugins.workflow.support.storage.SimpleXStreamFlowNodeStorage$PersistenceContext.access$100(SimpleXStreamFlowNodeStorage.java:185)
          org.jenkinsci.plugins.workflow.support.storage.SimpleXStreamFlowNodeStorage.getNode(SimpleXStreamFlowNodeStorage.java:87)
          org.jenkinsci.plugins.workflow.cps.CpsFlowExecution$ConverterImpl.unmarshal(CpsFlowExecution.java:857)
      

        Attachments

          Issue Links

            Activity

            Hide
            jglick Jesse Glick added a comment -

            Not sure how to reproduce this. Anyway the permanent generation is gone in (Oracle) Java 8, so most people should not be affected.

            Show
            jglick Jesse Glick added a comment - Not sure how to reproduce this. Anyway the permanent generation is gone in (Oracle) Java 8, so most people should not be affected.

              People

              Assignee:
              jglick Jesse Glick
              Reporter:
              schristou Steven Christou
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: