Skip to content
Permalink
Browse files

[JENKINS-22681] Additional logging useful for diagnosing certain lazy…

…-loading bugs.

(cherry picked from commit b55c157)
  • Loading branch information
jglick authored and olivergondza committed May 14, 2014
1 parent 7946d9f commit 4c4ce9c9dd47148201bd2e573bc30dc3f7e03080
Showing with 12 additions and 3 deletions.
  1. +12 −3 core/src/main/java/hudson/model/Run.java
@@ -287,6 +287,7 @@ protected SimpleDateFormat initialValue() {
protected Run(JobT job) throws IOException {
this(job, new GregorianCalendar());
this.number = project.assignBuildNumber();
LOGGER.log(FINE, "new {0} @{1}", new Object[] {this, hashCode()});
}

/**
@@ -320,9 +321,16 @@ protected Run(JobT project, File buildDir) throws IOException {
*/
public void reload() throws IOException {
this.state = State.COMPLETED;
// TODO ABORTED would perhaps make more sense than FAILURE:
this.result = Result.FAILURE; // defensive measure. value should be overwritten by unmarshal, but just in case the saved data is inconsistent
getDataFile().unmarshal(this); // load the rest of the data

if (state == State.COMPLETED) {
LOGGER.log(FINE, "reload {0} @{1}", new Object[] {this, hashCode()});
} else {
LOGGER.log(WARNING, "reload {0} @{1} with anomalous state {2}", new Object[] {this, hashCode(), state});
}

// not calling onLoad upon reload. partly because we don't want to call that from Run constructor,
// and partly because some existing use of onLoad isn't assuming that it can be invoked multiple times.
}
@@ -1714,6 +1722,7 @@ protected final void execute(RunExecution job) {
// will now see this build as completed.
// things like triggering other builds requires this as pre-condition.
// see issue #980.
LOGGER.log(FINE, "moving into POST_PRODUCTION on {0}", this);
state = State.POST_PRODUCTION;

if (listener != null) {
@@ -1809,6 +1818,7 @@ private void handleFatalBuildProblem(BuildListener listener, Throwable e) {
* Called when a job started building.
*/
protected void onStartBuilding() {
LOGGER.log(FINE, "moving to BUILDING on {0}", this);
state = State.BUILDING;
startTime = System.currentTimeMillis();
if (runner!=null)
@@ -1820,14 +1830,13 @@ protected void onStartBuilding() {
*/
protected void onEndBuilding() {
// signal that we've finished building.
state = State.COMPLETED;
LOGGER.log(FINE, "moving to COMPLETED on {0}", this);
if (runner!=null) {
// MavenBuilds may be created without their corresponding runners.
state = State.COMPLETED;
runner.checkpoints.allDone();
runner = null;
RunnerStack.INSTANCE.pop();
} else {
state = State.COMPLETED;
}
if (result == null) {
result = Result.FAILURE;

0 comments on commit 4c4ce9c

Please sign in to comment.
You can’t perform that action at this time.