summaryrefslogtreecommitdiffstats
path: root/src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java')
-rw-r--r--src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java b/src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java
index 20f5a0b..fdf6109 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java
@@ -249,6 +249,10 @@ class PushOne implements ProjectRunnable, CanceledWhileRunning {
return states.toArray(new ReplicationState[states.size()]);
}
+ public int getId() {
+ return id;
+ }
+
void addStates(ListMultimap<String, ReplicationState> states) {
stateMap.putAll(states);
}
@@ -295,10 +299,13 @@ class PushOne implements ProjectRunnable, CanceledWhileRunning {
// created and scheduled for a future point in time.)
//
MDC.put(ID_MDC_KEY, IdGenerator.format(id));
- if (!pool.requestRunway(this)) {
- if (!canceled) {
+ RunwayStatus status = pool.requestRunway(this);
+ if (!status.isAllowed()) {
+ if (!status.isCanceled()) {
repLog.info(
- "Rescheduling replication to {} to avoid collision with an in-flight push.", uri);
+ "Rescheduling replication to {} to avoid collision with the in-flight push [{}].",
+ uri,
+ IdGenerator.format(status.getInFlightPushId()));
pool.reschedule(this, Destination.RetryReason.COLLISION);
}
return;