Bug 5459: Cancel ongoing RPCs routed to the removed node. 46/35746/1
authorShigeru Yasuda <s-yasuda@da.jp.nec.com>
Thu, 3 Mar 2016 19:51:03 +0000 (04:51 +0900)
committerShigeru Yasuda <s-yasuda@da.jp.nec.com>
Fri, 4 Mar 2016 04:40:54 +0000 (04:40 +0000)
commit890069f373421ffc9297b1f14fa362d49f4d01d4
tree999ea2edd4faff1583fd1985f1d26e7cf66cca0a
parent1ad4286f66e3553af96af771f2373dd81113d451
Bug 5459: Cancel ongoing RPCs routed to the removed node.

Ongoing add-flow/remove-flow RPCs may not return result until timeout
if the target node is removed. This may block VTN internal threads.
This patch keeps track of node-routed RPCs, and cancels all the ongoing
RPCs routed to removed nodes.

Change-Id: I0f2485512ccadd88350f33a6887869c16f7222a5
Signed-off-by: Shigeru Yasuda <s-yasuda@da.jp.nec.com>
(cherry picked from commit bea45d2424bed23f511097fc6229ee7dc2dff63b)
38 files changed:
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/VTNManagerProvider.java
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/flow/add/FlowAddTask.java
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/flow/remove/ClearNodeFlowsTask.java
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/flow/remove/NodeFlowRemover.java
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/flow/remove/PortFlowRemover.java
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/flow/remove/RemovedAllFlows.java
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/flow/remove/RemovedDataFlow.java
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/flow/remove/RemovedDataFlows.java
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/flow/remove/RemovedPortFlows.java
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/flow/remove/ScanFlowRemover.java
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/flow/remove/TenantFlowRemover.java
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/flow/remove/TenantIndexFlowRemover.java
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/flow/stats/StatsReaderService.java
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/inventory/VTNInventoryManager.java
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/inventory/VtnNodeManager.java [new file with mode: 0644]
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/packet/TransmitPacketRpc.java [new file with mode: 0644]
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/packet/VTNPacketService.java
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/provider/VTNManagerProviderImpl.java
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/util/flow/AddFlowRpc.java
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/util/flow/FlowUtils.java
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/util/flow/GetFlowStatsRpc.java
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/util/flow/RemoveFlowRpc.java
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/util/flow/RemoveFlowRpcList.java
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/util/inventory/NodeRpcErrorCallback.java [new file with mode: 0644]
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/util/inventory/NodeRpcInvocation.java [new file with mode: 0644]
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/util/inventory/NodeRpcWatcher.java [new file with mode: 0644]
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/util/rpc/RpcErrorCallback.java
manager/implementation/src/main/java/org/opendaylight/vtn/manager/internal/util/rpc/RpcInvocation.java
manager/implementation/src/test/java/org/opendaylight/vtn/manager/internal/inventory/VTNInventoryManagerTest.java
manager/implementation/src/test/java/org/opendaylight/vtn/manager/internal/inventory/VtnNodeManagerTest.java [new file with mode: 0644]
manager/implementation/src/test/java/org/opendaylight/vtn/manager/internal/packet/TransmitPacketRpcTest.java [new file with mode: 0644]
manager/implementation/src/test/java/org/opendaylight/vtn/manager/internal/util/flow/AddFlowRpcTest.java
manager/implementation/src/test/java/org/opendaylight/vtn/manager/internal/util/flow/FlowUtilsTest.java
manager/implementation/src/test/java/org/opendaylight/vtn/manager/internal/util/flow/GetFlowStatsRpcTest.java
manager/implementation/src/test/java/org/opendaylight/vtn/manager/internal/util/flow/RemoveFlowRpcListTest.java
manager/implementation/src/test/java/org/opendaylight/vtn/manager/internal/util/flow/RemoveFlowRpcTest.java
manager/implementation/src/test/java/org/opendaylight/vtn/manager/internal/util/inventory/NodeRpcErrorCallbackTest.java [new file with mode: 0644]
manager/implementation/src/test/java/org/opendaylight/vtn/manager/internal/util/inventory/NodeRpcInvocationTest.java [new file with mode: 0644]