Quantcast

[JIRA] (JENKINS-14814) "Ping-pong" builds store excessively large CauseAction

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

[JIRA] (JENKINS-14814) "Ping-pong" builds store excessively large CauseAction

JIRA noreply@jenkins-ci.org
Issue Type: Bug Bug
Assignee: jglick
Components: core
Created: 15/Aug/12 6:05 PM
Description:

Create two jobs, a and b, each of which does nothing but trigger the other. (Useless by itself, but a similar idiom can be used to alternate indefinitely between two actions, such as checking for changes in some part of the environment and reacting to those changes.)

Let this run for a few dozen iterations. The build.xml file for each build can soon run into multiple megabytes. For example, on just the fourth cycle, a/builds/4/build.xml has this lengthy "cause" section:

<hudson.model.CauseAction>
  <causes>
    <hudson.model.Cause_-UpstreamCause>
      <upstreamProject>b</upstreamProject>
      <upstreamUrl>job/b/</upstreamUrl>
      <upstreamBuild>3</upstreamBuild>
      <upstreamCauses>
        <hudson.model.Cause_-UpstreamCause>
          <upstreamProject>a</upstreamProject>
          <upstreamUrl>job/a/</upstreamUrl>
          <upstreamBuild>3</upstreamBuild>
          <upstreamCauses>
            <hudson.model.Cause_-UpstreamCause>
              <upstreamProject>b</upstreamProject>
              <upstreamUrl>job/b/</upstreamUrl>
              <upstreamBuild>2</upstreamBuild>
              <upstreamCauses>
                <hudson.model.Cause_-UpstreamCause>
                  <upstreamProject>a</upstreamProject>
                  <upstreamUrl>job/a/</upstreamUrl>
                  <upstreamBuild>2</upstreamBuild>
                  <upstreamCauses>
                    <hudson.model.Cause_-UpstreamCause>
                      <upstreamProject>b</upstreamProject>
                      <upstreamUrl>job/b/</upstreamUrl>
                      <upstreamBuild>1</upstreamBuild>
                      <upstreamCauses>
                        <hudson.model.Cause_-UpstreamCause>
                          <upstreamProject>a</upstreamProject>
                          <upstreamUrl>job/a/</upstreamUrl>
                          <upstreamBuild>1</upstreamBuild>
                          <upstreamCauses>
                            <hudson.model.Cause_-UserIdCause/>
                          </upstreamCauses>
                        </hudson.model.Cause_-UpstreamCause>
                      </upstreamCauses>
                    </hudson.model.Cause_-UpstreamCause>
                  </upstreamCauses>
                </hudson.model.Cause_-UpstreamCause>
              </upstreamCauses>
            </hudson.model.Cause_-UpstreamCause>
          </upstreamCauses>
        </hudson.model.Cause_-UpstreamCause>
      </upstreamCauses>
    </hudson.model.Cause_-UpstreamCause>
  </causes>
</hudson.model.CauseAction>

Excessive disk usage consumption is not the only problem; Jenkins may even refuse to start, since loading one of these files can produce a stack overflow:

hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:180) 
hudson.util.XStream2$PassthruConverter.unmarshal(XStream2.java:323) 
hudson.util.XStream2$AssociatedConverterImpl.unmarshal(XStream2.java:293) 
com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82) 
com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63) 
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76) 
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:60) 
com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71) 
hudson.util.RobustCollectionConverter.populateCollection(RobustCollectionConverter.java:85) 
com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:61) 
hudson.util.RobustCollectionConverter.unmarshal(RobustCollectionConverter.java:76) 
com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82) 
com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63) 
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76) 
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:60) 
hudson.util.RobustReflectionConverter.unmarshalField(RobustReflectionConverter.java:290) 
hudson.util.RobustReflectionConverter.doUnmarshal(RobustReflectionConverter.java:233) 
hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:180)

While recording transitive causes may be useful in general, there must be some sanity cutoff point.

Project: Jenkins
Labels: performance upstream downstream
Priority: Major Major
Reporter: jglick
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

[JIRA] (JENKINS-14814) "Ping-pong" builds store excessively large CauseAction

JIRA noreply@jenkins-ci.org
jglick started work on Bug JENKINS-14814
Change By: jglick (15/Aug/12 9:22 PM)
Status: Open In Progress
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

[JIRA] (JENKINS-14814) "Ping-pong" builds store excessively large CauseAction

JIRA noreply@jenkins-ci.org
In reply to this post by JIRA noreply@jenkins-ci.org
jglick commented on Bug JENKINS-14814
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

[JIRA] (JENKINS-14814) "Ping-pong" builds store excessively large CauseAction

JIRA noreply@jenkins-ci.org
In reply to this post by JIRA noreply@jenkins-ci.org
Change By: SCM/JIRA link daemon (15/Aug/12 10:07 PM)
Status: In Progress Resolved
Resolution: Fixed
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

[JIRA] (JENKINS-14814) "Ping-pong" builds store excessively large CauseAction

JIRA noreply@jenkins-ci.org
In reply to this post by JIRA noreply@jenkins-ci.org

Code changed in jenkins
User: Jesse Glick
Path:
core/src/main/java/hudson/model/Cause.java
http://jenkins-ci.org/commit/jenkins/bfa648152f266540536e76f7b3ebcb1598ad5f6f
Log:
[FIXED JENKINS-14814] Truncate deeply nested upstream causes.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

[JIRA] (JENKINS-14814) "Ping-pong" builds store excessively large CauseAction

JIRA noreply@jenkins-ci.org
In reply to this post by JIRA noreply@jenkins-ci.org

Code changed in jenkins
User: Jesse Glick
Path:
test/src/test/java/hudson/model/CauseTest.java
http://jenkins-ci.org/commit/jenkins/b0278767831d751b93ad77dc2c5c92b6d140e865
Log:
JENKINS-14814 Reproduced.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

[JIRA] (JENKINS-14814) "Ping-pong" builds store excessively large CauseAction

JIRA noreply@jenkins-ci.org
In reply to this post by JIRA noreply@jenkins-ci.org

Code changed in jenkins
User: Nicolas De loof
Path:
core/src/main/java/hudson/model/Cause.java
test/src/test/java/hudson/model/CauseTest.java
http://jenkins-ci.org/commit/jenkins/a56f00040b9fb08537131586533fb162131c8d2a
Log:
Merge pull request #541 from jglick/wicked_deep_cause_14814

JENKINS-14814 "Ping-pong" builds store excessively large CauseAction

Compare: https://github.com/jenkinsci/jenkins/compare/aaecf7915d60...a56f00040b9f

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

[JIRA] (JENKINS-14814) "Ping-pong" builds store excessively large CauseAction

JIRA noreply@jenkins-ci.org
In reply to this post by JIRA noreply@jenkins-ci.org

Code changed in jenkins
User: Jesse Glick
Path:
changelog.html
http://jenkins-ci.org/commit/jenkins/2aa272a0fae0390eb2da679ab7c9e0d402b1f53b
Log:
JENKINS-14814 Noting.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

[JIRA] (JENKINS-14814) "Ping-pong" builds store excessively large CauseAction

JIRA noreply@jenkins-ci.org
In reply to this post by JIRA noreply@jenkins-ci.org
jglick commented on Bug JENKINS-14814

Workaround:

perl -i.bak -n -e 'print unless m{<hudson\.model\.CauseAction>}..m{</hudson\.model\.CauseAction>}' jobs/*/builds/*-*/build.xml
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

[JIRA] (JENKINS-14814) "Ping-pong" builds store excessively large CauseAction

JIRA noreply@jenkins-ci.org
In reply to this post by JIRA noreply@jenkins-ci.org

Do you know which build starts to have this fix? Because I still see similar issue happened in LTS 1.480.2.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira

--
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate
star

[JIRA] (JENKINS-14814) "Ping-pong" builds store excessively large CauseAction

JIRA noreply@jenkins-ci.org
In reply to this post by JIRA noreply@jenkins-ci.org
Jesse Glick commented on Bug JENKINS-14814

Should be in 1.479, but you might be hitting JENKINS-15747.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira

--
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/groups/opt_out.
 
 
Loading...