Details
-
Bug
-
Status: Resolved
-
Resolution: Done
-
None
-
None
-
None
-
Operating System: All
Platform: All
-
5974
Description
Version:
master (0f768f0752ac94e454c3c9e51879fac9abb61144)
I found a bug that He plugin publishes node-removed notification twice for the same switch when switch connection is reset while that switch is in idle state.
1. ConnectionConductorImpl.onSwitchIdleEvent() is called when switch idle state occurs.
It sends a ECHO_REQUEST to that switch and then waits for reply.
2. If that switch reset the connection, openflowjava invokes ConnectionConductorImpl.onDisconnectEvent().
A node-removed notification for that switch is published here because it calls
SessionManagerOFImpl.invalidateOnDisconnect().
3. A thread waiting for ECHO_REPLY gets an error and then calls SessionManagerOFImpl.invalidateOnDisconnect() explicitly.
So a node-removed notification for that switch is also published here.
This bug may remove node associated with valid OF session from operational DS.
If the switch described above reconnects to the controller between 2. and 3, a node associated with reconnected session will be removed by the second node-removed notification.