提交 b55c1578 编写于 作者: J Jesse Glick

[JENKINS-22681] Additional logging useful for diagnosing certain lazy-loading bugs.

上级 e12e40ad
......@@ -282,6 +282,7 @@ public abstract class Run <JobT extends Job<JobT,RunT>,RunT extends Run<JobT,Run
protected Run(JobT job) throws IOException {
this(job, new GregorianCalendar());
this.number = project.assignBuildNumber();
LOGGER.log(FINE, "new {0} @{1}", new Object[] {this, hashCode()});
}
/**
......@@ -315,9 +316,16 @@ public abstract class Run <JobT extends Job<JobT,RunT>,RunT extends Run<JobT,Run
*/
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.
}
......@@ -1739,6 +1747,7 @@ public abstract class Run <JobT extends Job<JobT,RunT>,RunT extends Run<JobT,Run
// 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) {
......@@ -1834,6 +1843,7 @@ public abstract class Run <JobT extends Job<JobT,RunT>,RunT extends Run<JobT,Run
* 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)
......@@ -1845,14 +1855,13 @@ public abstract class Run <JobT extends Job<JobT,RunT>,RunT extends Run<JobT,Run
*/
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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册