Bug 3141 - OVSDB southbound operational MDSAL stops getting populated after ovs-vsctl...
authorSam Hague <shague@redhat.com>
Thu, 11 Jun 2015 20:46:22 +0000 (16:46 -0400)
committerSam Hague <shague@redhat.com>
Thu, 11 Jun 2015 20:46:28 +0000 (16:46 -0400)
The symptom looked like the OvsdbDataChangeListener#onDataChanged() was not being called when the node was added back to config (after it was deleted from operational followed by deleted from config)

This was because of a AbstractFuture.get() was not returning. This was a get() for the transaction responses for ovsdb transactions. In this particular path the node was deleted from oeprational. Then the node is deleted from config. During the processing of the config update there was an expectation that some ovsdb updates would happen but there aren't any because the node was already removed from operational and there is no active connection to the ovsdb node. This caused the invoker thread to block on the future result.get(). Later when the node was added to config, the onDataChanged() was not called since the thread was still blocked on the get().

Solution: check if there were any ovsdb transactions and not call get() if there aren't any.

Change-Id: Id183aed2ae9b4f1d156cf89d7899a1868a6451f6
Signed-off-by: Sam Hague <shague@redhat.com>

No differences found