From: Apurba Mukherjee Date: Thu, 30 Jul 2020 06:47:17 +0000 (+0530) Subject: Fix: ITM tunnels going to Unknown state after cic reboot X-Git-Tag: release/aluminium~5 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=6ae0913971df48b4c22586f26d598b71795a59c5;p=genius.git Fix: ITM tunnels going to Unknown state after cic reboot As part of cic-1 reboot, DPNs connected to cic-1 got disconnected. The tunnels associated to those DPNs went to unknown state. Those DPNs then connected back to cic-3. When cic-3 became entity owner, EoSListener was not invoked by MDSAL since ITM unregisters the listener after 1st invocation. So EoSHandler could not set the unknown tunnels to up. To fix this issue, the listener unregistration is removed. Change-Id: I96c4f7fc4a94d2eeca8f9ea962a26b900c390493 Signed-off-by: Apurba Mukherjee --- diff --git a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/impl/ItmProvider.java b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/impl/ItmProvider.java index 5cab70464..faa434f65 100644 --- a/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/impl/ItmProvider.java +++ b/itm/itm-impl/src/main/java/org/opendaylight/genius/itm/impl/ItmProvider.java @@ -73,6 +73,7 @@ import org.slf4j.LoggerFactory; public class ItmProvider implements AutoCloseable, IITMProvider /*,ItmStateService */ { private static final Logger LOG = LoggerFactory.getLogger(ItmProvider.class); + private static final Logger EVENT_LOGGER = LoggerFactory.getLogger("GeniusEventLogger"); private final DataBroker dataBroker; private final ItmManagerRpcService itmRpcService ; @@ -375,15 +376,14 @@ public class ItmProvider implements AutoCloseable, IITMProvider /*,ItmStateServi EntityOwnershipListenerRegistration listenerRegistration) { if (ownershipChange.getState().isOwner()) { LOG.info("*This* instance of provider is set as a MASTER instance"); + EVENT_LOGGER.debug("****MASTER**** instance"); createDefaultTransportZone(itmConfig); eosChangeEventHandler.recoverUnknownTunnelsOnEosSwitch(); } else { LOG.info("*This* instance of provider is set as a SLAVE instance"); + EVENT_LOGGER.debug("****SLAVE**** instance"); } itmStatusProvider.reportStatus(ServiceState.OPERATIONAL); - if (listenerRegistration != null) { - listenerRegistration.close(); - } } private static class ItmProviderEOSListener implements EntityOwnershipListener { @@ -393,6 +393,7 @@ public class ItmProvider implements AutoCloseable, IITMProvider /*,ItmStateServi ItmProviderEOSListener(ItmProvider itmProviderObj, EntityOwnershipService entityOwnershipService) { this.itmProviderObj = itmProviderObj; this.listenerRegistration = entityOwnershipService.registerListener(ITMConstants.ITM_CONFIG_ENTITY, this); + EVENT_LOGGER.debug("ItmProviderEOSListener: registered"); } public void close() { @@ -401,6 +402,7 @@ public class ItmProvider implements AutoCloseable, IITMProvider /*,ItmStateServi @Override public void ownershipChanged(EntityOwnershipChange ownershipChange) { + EVENT_LOGGER.debug("****ownershipChanged****"); itmProviderObj.handleOwnershipChange(ownershipChange, listenerRegistration); } }