Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -374,14 +374,10 @@ public static TimingInfo computeChunkTiming(@NonNull WorkflowRun run, long inter
verifySameRun(run, firstNode, lastNode, after);
long endTime = (after != null) ? TimingAction.getStartTime(after) : System.currentTimeMillis();

// Fudge
boolean isLastChunk = after == null || exec.isCurrentHead(lastNode);
if (isLastChunk && run.isBuilding()) {
if (exec.getCurrentHeads().size() > 1 && lastNode instanceof BlockEndNode blockEndNode) { // Check to see if all the action is on other branches
BlockStartNode start = blockEndNode.getStartNode();
if (start.getAction(ThreadNameAction.class) != null) {
endTime = TimingAction.getStartTime(lastNode); // Completed parallel branch, use the block end time
}
if (lastNode instanceof BlockEndNode blockEndNode) {
BlockStartNode start = blockEndNode.getStartNode();
if (start.getAction(ThreadNameAction.class) != null) {
endTime = TimingAction.getStartTime(lastNode); // Completed parallel branch, use the block end time
}
}
// What about null startTime???
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -319,13 +319,13 @@ public void testBasicParallelFail() throws Exception {
// Passing branch time, 5 ms pause was a present above
TimingInfo successTiming = branchTimings.get("success");
assertEquals(50L, successTiming.getPauseDurationMillis());
long successRunTime = doTiming(exec, 6, 13);
long successRunTime = doTiming(exec, 6, 12);
assertEquals(successRunTime, successTiming.getTotalDurationMillis());
assertEquals(TimingAction.getStartTime(exec.getNode("6")), successTiming.getStartTimeMillis());

// Failing branch time, 50 ms pause was a present above
TimingInfo failTiming = branchTimings.get("fail");
long failRunTime = doTiming(exec, 7, 13);
long failRunTime = doTiming(exec, 7, 10);
assertEquals(Math.min(5L, failRunTime), failTiming.getPauseDurationMillis());
assertEquals(failRunTime, failTiming.getTotalDurationMillis());
assertEquals(TimingAction.getStartTime(exec.getNode("7")), failTiming.getStartTimeMillis());
Expand Down