minor Device - Mastership fixes
Change-Id: Id6d46e22fb67f01cd5c0802cf4fad135a043ec77
diff --git a/core/net/src/main/java/org/onlab/onos/cluster/impl/MastershipManager.java b/core/net/src/main/java/org/onlab/onos/cluster/impl/MastershipManager.java
index 6180ada..0989867 100644
--- a/core/net/src/main/java/org/onlab/onos/cluster/impl/MastershipManager.java
+++ b/core/net/src/main/java/org/onlab/onos/cluster/impl/MastershipManager.java
@@ -269,10 +269,6 @@
@Override
public void notify(MastershipEvent event) {
- if (clusterService.getLocalNode().id().equals(event.roleInfo().master())) {
- log.info("ignoring locally-generated event {}", event);
- // return;
- }
log.info("dispatching mastership event {}", event);
eventDispatcher.post(event);
}
diff --git a/core/net/src/main/java/org/onlab/onos/net/device/impl/DeviceManager.java b/core/net/src/main/java/org/onlab/onos/net/device/impl/DeviceManager.java
index 2441e88..e163dc5 100644
--- a/core/net/src/main/java/org/onlab/onos/net/device/impl/DeviceManager.java
+++ b/core/net/src/main/java/org/onlab/onos/net/device/impl/DeviceManager.java
@@ -432,7 +432,6 @@
if (!isReachable(device)) {
log.warn("Device {} has disconnected after this event", did);
mastershipService.relinquishMastership(did);
- applyRole(did, MastershipRole.STANDBY);
return;
}
//flag the device as online. Is there a better way to do this?
@@ -448,6 +447,7 @@
if (!isReachable(getDevice(did))) {
log.warn("Device {} has disconnected after this event", did);
mastershipService.relinquishMastership(did);
+ return;
}
applyRole(did, MastershipRole.STANDBY);
}
@@ -455,19 +455,21 @@
// checks for duplicate event, returning true if one is found.
private boolean checkDuplicate(RoleInfo roleInfo, int term) {
- synchronized (eventCache) {
- if (eventCache.get(term).contains(roleInfo)) {
- log.info("duplicate event detected; ignoring");
- return true;
- } else {
- eventCache.put(term, roleInfo);
- // purge by-term oldest entries to keep the cache size under limit
- if (eventCache.size() > cacheSize) {
- eventCache.removeAll(term - cacheSize);
- }
- return false;
- }
- }
+ // turning off duplicate check
+ return false;
+// synchronized (eventCache) {
+// if (eventCache.get(term).contains(roleInfo)) {
+// log.info("duplicate event detected; ignoring");
+// return true;
+// } else {
+// eventCache.put(term, roleInfo);
+// // purge by-term oldest entries to keep the cache size under limit
+// if (eventCache.size() > cacheSize) {
+// eventCache.removeAll(term - cacheSize);
+// }
+// return false;
+// }
+// }
}
}
diff --git a/core/store/dist/src/main/java/org/onlab/onos/store/mastership/impl/DistributedMastershipStore.java b/core/store/dist/src/main/java/org/onlab/onos/store/mastership/impl/DistributedMastershipStore.java
index d1917d6..07120fd 100644
--- a/core/store/dist/src/main/java/org/onlab/onos/store/mastership/impl/DistributedMastershipStore.java
+++ b/core/store/dist/src/main/java/org/onlab/onos/store/mastership/impl/DistributedMastershipStore.java
@@ -358,6 +358,7 @@
@Override
public void entryAdded(EntryEvent<DeviceId, RoleValue> event) {
+ entryUpdated(event);
}
@Override
@@ -366,7 +367,6 @@
@Override
public void entryUpdated(EntryEvent<DeviceId, RoleValue> event) {
- // this subsumes entryAdded event
notifyDelegate(new MastershipEvent(
MASTER_CHANGED, event.getKey(), event.getValue().roleInfo()));
}