Skip to content

Commit

Permalink
EventListener: Syncronyze the AbortJob and the add new scheduled job
Browse files Browse the repository at this point in the history
If lot of patches are sent the removing on the queue is not working and
job that must be aborted are not aborted. Suppose to have activated
abortTopic and we want to push:

patch A, B, C

We would like that only the last patch is build and not B and A

Jira-Id: JENKINS-70162
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
  • Loading branch information
panicking committed Feb 19, 2024
1 parent 0b104a8 commit 6b957be
Showing 1 changed file with 27 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -124,15 +124,17 @@ public void gerritEvent(GerritEvent event) {
}
if (event instanceof GerritTriggeredEvent) {
GerritTriggeredEvent triggeredEvent = (GerritTriggeredEvent)event;
if (t.isInteresting(triggeredEvent)) {
logger.trace("The event is interesting.");
abortBuild(t, triggeredEvent);
if (t.isOnlyAbortRunningBuild(triggeredEvent)) {
logger.trace("Just aborting build based on event not scheduling new one.");
return;
synchronized (this) {
if (t.isInteresting(triggeredEvent)) {
logger.trace("The event is interesting.");
abortBuild(t, triggeredEvent);
if (t.isOnlyAbortRunningBuild(triggeredEvent)) {
logger.trace("Just aborting build based on event not scheduling new one.");
return;
}
notifyOnTriggered(t, triggeredEvent);
schedule(t, new GerritCause(triggeredEvent, t.isSilentMode()), triggeredEvent);
}
notifyOnTriggered(t, triggeredEvent);
schedule(t, new GerritCause(triggeredEvent, t.isSilentMode()), triggeredEvent);
}
}
}
Expand Down Expand Up @@ -163,14 +165,16 @@ public void gerritEvent(ManualPatchsetCreated event) {
return;
}
if (t.isInteresting(event)) {
logger.trace("The event is interesting.");
abortBuild(t, event);
if (t.isOnlyAbortRunningBuild(event)) {
logger.trace("Just aborting build based on event not scheduling new one.");
return;
synchronized (this) {
logger.trace("The event is interesting.");
abortBuild(t, event);
if (t.isOnlyAbortRunningBuild(event)) {
logger.trace("Just aborting build based on event not scheduling new one.");
return;
}
notifyOnTriggered(t, event);
schedule(t, new GerritManualCause(event, t.isSilentMode()), event);
}
notifyOnTriggered(t, event);
schedule(t, new GerritManualCause(event, t.isSilentMode()), event);
}
}

Expand Down Expand Up @@ -208,13 +212,15 @@ public void gerritEvent(CommentAdded event) {
}
if (t.isInteresting(event) && t.commentAddedMatch(event)) {
logger.trace("The event is interesting.");
abortBuild(t, event);
if (t.isOnlyAbortRunningBuild(event)) {
logger.trace("Just aborting build based on event not scheduling new one.");
return;
synchronized (this) {
abortBuild(t, event);
if (t.isOnlyAbortRunningBuild(event)) {
logger.trace("Just aborting build based on event not scheduling new one.");
return;
}
notifyOnTriggered(t, event);
schedule(t, new GerritCause(event, t.isSilentMode()), event);
}
notifyOnTriggered(t, event);
schedule(t, new GerritCause(event, t.isSilentMode()), event);
}
}

Expand Down

0 comments on commit 6b957be

Please sign in to comment.