Revert "Set forward context for events having a different instanceId" This reverts commit c81f4d85446a5dee65567211c1e5a72631912fa8. Reason for revert: This has caused Issue 16756 where not all stream events listeners receive the events Change-Id: Ice10c9ec3dec097a45d8448c0255807c72234ce7
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedAwareEventBroker.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedAwareEventBroker.java index fb651b7..700d5e1 100644 --- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedAwareEventBroker.java +++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedAwareEventBroker.java
@@ -24,7 +24,6 @@ import com.google.gerrit.server.plugincontext.PluginSetContext; import com.google.gerrit.server.project.ProjectCache; import com.google.inject.Inject; -import java.util.Objects; import javax.annotation.Nullable; class ForwardedAwareEventBroker extends EventBroker { @@ -46,19 +45,8 @@ gerritInstanceId); } - private boolean isProducedByLocalInstance(Event event) { - return Objects.equals(event.instanceId, gerritInstanceId); - } - @Override protected void fireEventForUnrestrictedListeners(Event event) { - // An event should not be dispatched when it is "forwarded". - // Meaning, it was either produced somewhere else - if (!isProducedByLocalInstance(event)) { - Context.setForwardedEvent(true); - } - // or it was consumed by the high-availability rest endpoint and - // thus the context of its consumption has already been set to "forwarded". if (!Context.isForwardedEvent()) { super.fireEventForUnrestrictedListeners(event); }
diff --git a/src/main/resources/Documentation/config.md b/src/main/resources/Documentation/config.md index 3b1fee2..0c10b2e 100644 --- a/src/main/resources/Documentation/config.md +++ b/src/main/resources/Documentation/config.md
@@ -238,23 +238,3 @@ ```healthcheck.enable``` : Whether to enable the health check endpoint. Defaults to 'true'. - -File 'gerrit.config' --------------------- - -```gerrit.instanceId``` -: Optional identifier for this Gerrit instance. -[[docs](https://gerrit-documentation.storage.googleapis.com/Documentation/3.2.0/config-gerrit.html#gerrit.instanceId)]. - -Whilst this is not, specifically, a high-availability plugin configuration, it plays -an important role on which events are forwarded to peers. - -If `instanceId` is set, events produced by that Gerrit instance will contain its -origin in the `instanceId` field, allowing to track where they are coming from. - -The high-availability plugin will check the `instanceId` value to decide whether -an event should be forwarded: events that originated from different Gerrit instances -will not be forwarded. - -When neither `gerrit.instanceId` nor `event.instanceId` are set, it is not possible -to identify the origin of the event and thus the event is always forwarded.
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedAwareEventBrokerTest.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedAwareEventBrokerTest.java index cfe0475..ec5b1de 100644 --- a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedAwareEventBrokerTest.java +++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/ForwardedAwareEventBrokerTest.java
@@ -30,9 +30,7 @@ private EventListener listenerMock; private ForwardedAwareEventBroker broker; - private ForwardedAwareEventBroker brokerWithGerritInstanceId; - private Event event; - private String gerritInstanceId = "gerrit-instance-id"; + private Event event = new TestEvent(); @Before public void setUp() { @@ -40,11 +38,8 @@ listenerMock = mock(EventListener.class); DynamicSet<EventListener> set = DynamicSet.emptySet(); set.add("high-availability", listenerMock); - event = new TestEvent(); PluginSetContext<EventListener> listeners = new PluginSetContext<>(set, mockMetrics); broker = new ForwardedAwareEventBroker(null, listeners, null, null, null, null); - brokerWithGerritInstanceId = - new ForwardedAwareEventBroker(null, listeners, null, null, null, gerritInstanceId); } @Test @@ -63,43 +58,4 @@ } verifyZeroInteractions(listenerMock); } - - @Test - public void shouldNotDispatchEventWhenEventInstanceIdIsDefinedButGerritInstanceIdIsNot() { - event.instanceId = gerritInstanceId; - try { - broker.fireEventForUnrestrictedListeners(event); - } finally { - Context.unsetForwardedEvent(); - } - verifyZeroInteractions(listenerMock); - } - - @Test - public void shouldNotDispatchEventWhenGerritInstanceIdIsDefinedButEventInstanceIdIsNot() { - try { - brokerWithGerritInstanceId.fireEventForUnrestrictedListeners(event); - } finally { - Context.unsetForwardedEvent(); - } - verifyZeroInteractions(listenerMock); - } - - @Test - public void shouldNotDispatchEventWhenInstanceIdsAreDifferent() { - event.instanceId = "some-other-gerrit-instance-id"; - try { - brokerWithGerritInstanceId.fireEventForUnrestrictedListeners(event); - } finally { - Context.unsetForwardedEvent(); - } - verifyZeroInteractions(listenerMock); - } - - @Test - public void shouldDispatchEventWhenInstanceIdsAreEqual() { - event.instanceId = gerritInstanceId; - brokerWithGerritInstanceId.fireEventForUnrestrictedListeners(event); - verify(listenerMock).onEvent(event); - } }