Details
-
Bug
-
Status: Resolved
-
Resolution: Done
-
None
-
None
-
None
-
Operating System: All
Platform: All
-
7736
Description
When a switch connects to a controller, it register a register cluster singleton service and MDSAL clustering gives ownership to one of the controllers.
All controllers are registered as candidates, so if all controllers that contains a valid connections to the switch are rebooted, then another controller which does not have a connection gets the ownerships.
Reproducing this error is very straight forward.
- create a 3 nodes BSC cluster (node A, node B, node C)
- connect a Openflow switch only to 2 controllers (node A, node B)
- restart node A and node B
The ownership of the switch will move to node C. When node A and/or node B are active again with valid Openflow sessions, the ownership does not move to one of the controllers with an active connection.
Making a HTTP GET to clustering service http://bsc:8181/restconf/operational/entity-owners:entity-owners before restarting a any controller will show that all 3 controllers are "candidates" for the switch even though only two have valid connections.
For example,
{
"id": "/odl-general-entity:entity[odl-general-entity:name='openflow:100']",
"candidate": [
,
,
{ "name": "member-2" } ],
"owner": "member-1"
}
Probably, the source of the problem is that in this example "member-3" is shown as valid candidate but it does not hold any active openflow connection to the switch.