[VTN-146] Unable to use the restconf on the other members in the 3-node cluster Created: 13/Sep/16  Updated: 30/Oct/17

Status: Open
Project: vtn
Component/s: VTN Manager
Affects Version/s: unspecified
Fix Version/s: None

Type: Bug
Reporter: YOGA LAKSHMI SWETHA PAYYAVULA Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Zip Archive Logs.zip    
External issue ID: 6702

 Description   

Issue : The create RPC fails when trying to configure the network in the other two members of the 3-node cluster.

Scenario: After creating the 3-node cluster, While trying to configure the network, the Create RPC works only for the member-1 in the cluster. The other two members return error saying that the method has not been implemented.

Among the three machines, first created VTN1 in the machine ODL1 ,whcich was successful. Then tried to create vbr1 from the other machine ODL2. Error occurs at this point.PFB for the same:

curl -v --user "admin":"admin" -H "Content-type: application/json" -X POST http://localhost:8181/restconf/operations/vtn-vbridge:update-vbridge -d '{"input":{"tenant-name":"vtn1", "bridge-name":"vbr1"}}'

  • About to connect() to localhost port 8181 (#0)
  • Trying ::1...
  • Connected to localhost (::1) port 8181 (#0)
  • Server auth using Basic with user 'admin'
    > POST /restconf/operations/vtn-vbridge:update-vbridge HTTP/1.1
    > Authorization: Basic YWRtaW46YWRtaW4=
    > User-Agent: curl/7.29.0
    > Host: localhost:8181
    > Accept: /
    > Content-type: application/json
    > Content-Length: 54
    >
  • upload completely sent off: 54 out of 54 bytes
    < HTTP/1.1 501 Not Implemented
    < Set-Cookie: JSESSIONID=1xrsx4m1bp9xx1v4vi6yvgmpyk;Path=/restconf
    < Expires: Thu, 01 Jan 1970 00:00:00 GMT
    < Set-Cookie: rememberMe=deleteMe; Path=/restconf; Max-Age=0; Expires=Mon, 12-Sep-2016 18:23:22 GMT
    < Content-Type: application/json
    < Transfer-Encoding: chunked
    < Server: Jetty(8.1.19.v20160209)
    <
  • Connection #0 to host localhost left intact
    {"errors":{"error":[
    Unknown macro: {"error-type"}

    ]}}[root@localhost data]#

Only the CREATE RPC fails, the GET works fine in all the three machines.



 Comments   
Comment by Venkatrangan Govindarajan [ 14/Sep/16 ]

Please update the version of the code?

Comment by Venkatrangan Govindarajan [ 14/Sep/16 ]

Also, the log files if possible?

Comment by YOGA LAKSHMI SWETHA PAYYAVULA [ 15/Sep/16 ]

Attachment Logs.zip has been added with description: Attaching the logs for the three ODL mahcines

Comment by YOGA LAKSHMI SWETHA PAYYAVULA [ 15/Sep/16 ]

Reproduce bug:

1. Create the 3-node cluster with three ODL machines using the Boron RC2 distribution and install the odl-vtn-manager-rest feature.
2. When the karaf in the three machine's goes UP, check for the cluster status.
3. Now among the three ODL's the machine that was configured as machine-1 in the akka.conf alone works.
For example: ODL1(10.10.0.1) is configured as machine-1 in akka.conf
ODL2(10.0.0.2) is configured as machine-2 and
ODL3 (10.0.0.3) is configured as machine-3 .

Here Create/update RPC works only in the ODL1, in the ODL2 and ODL3 machines when we try to create any configuration it returns the error 501 (method not implemented as mentioned in the previous comments.

But the GET operation works fine in all the three nodes.

Comment by Y Ananth [ 17/Aug/17 ]

I have observed similar issue in 3 node VTN CSIT jobs whenever other member apart from member 1 tries to clear node flows in the specified switch. It Invokes a remove-flow RPC. While Issuing remove-flow RPC request the exception occurs and remove-flow RPC fails.

2017-08-15 16:39:32,307 | ERROR | TN Flow Thread-0 | ClearNodeFlowsTask | 490 - org.opendaylight.vtn.manager.implementation - 0.6.2.Carbon | Failed to remove VTN flows in openflow:1
org.opendaylight.vtn.manager.VTNException: No implementation of RPC AbsoluteSchemaPath

{path=[(urn:opendaylight:flow:service?revision=2013-08-19)remove-flow]}

available
at org.opendaylight.vtn.manager.internal.util.concurrent.AbstractVTNFuture.getException(AbstractVTNFuture.java:86)[490:org.opendaylight.vtn.manager.implementation:0.6.2.Carbon]
at org.opendaylight.vtn.manager.internal.util.rpc.RpcInvocation.getResult(RpcInvocation.java:96)[490:org.opendaylight.vtn.manager.implementation:0.6.2.Carbon]
at org.opendaylight.vtn.manager.internal.util.inventory.NodeRpcInvocation.getResult(NodeRpcInvocation.java:203)[490:org.opendaylight.vtn.manager.implementation:0.6.2.Carbon]
at org.opendaylight.vtn.manager.internal.util.flow.RemoveFlowRpcList.verify(RemoveFlowRpcList.java:141)[490:org.opendaylight.vtn.manager.implementation:0.6.2.Carbon]
at org.opendaylight.vtn.manager.internal.flow.remove.ClearNodeFlowsTask.uninstall(ClearNodeFlowsTask.java:142)[490:org.opendaylight.vtn.manager.implementation:0.6.2.Carbon]
at org.opendaylight.vtn.manager.internal.flow.remove.ClearNodeFlowsTask.run(ClearNodeFlowsTask.java:165)[490:org.opendaylight.vtn.manager.implementation:0.6.2.Carbon]
at org.opendaylight.vtn.manager.internal.util.concurrent.VTNThreadPool$WorkerThread.run(VTNThreadPool.java:400)[490:org.opendaylight.vtn.manager.implementation:0.6.2.Carbon]
Caused by: org.opendaylight.controller.md.sal.dom.api.DOMRpcImplementationNotAvailableException: No implementation of RPC AbsoluteSchemaPath

{path=[(urn:opendaylight:flow:service?revision=2013-08-19)remove-flow]}

available
at org.opendaylight.controller.md.sal.dom.broker.impl.DOMRpcRoutingTable.invokeRpc(DOMRpcRoutingTable.java:173)
at org.opendaylight.controller.md.sal.dom.broker.impl.DOMRpcRouter.invokeRpc(DOMRpcRouter.java:102)
at Proxydf0b4783_4663_43d2_8ab5_22802b4a5542.invokeRpc(Unknown Source)
at Proxyc6de6aa8_7d8d_4f8a_b6be_399f84e0430f.invokeRpc(Unknown Source)
at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter.invoke0(RpcServiceAdapter.java:65)
at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter.access$000(RpcServiceAdapter.java:43)
at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter$RpcInvocationStrategy.invoke(RpcServiceAdapter.java:159)
at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter.invoke(RpcServiceAdapter.java:96)
at com.sun.proxy.$Proxy138.removeFlow(Unknown Source)
at org.opendaylight.vtn.manager.internal.util.flow.RemoveFlowRpc.<init>(RemoveFlowRpc.java:33)[490:org.opendaylight.vtn.manager.implementation:0.6.2.Carbon]
at org.opendaylight.vtn.manager.internal.util.flow.RemoveFlowRpcList.invoke(RemoveFlowRpcList.java:104)[490:org.opendaylight.vtn.manager.implementation:0.6.2.Carbon]
at org.opendaylight.vtn.manager.internal.flow.remove.ClearNodeFlowsTask.<init>(ClearNodeFlowsTask.java:114)[490:org.opendaylight.vtn.manager.implementation:0.6.2.Carbon]
at org.opendaylight.vtn.manager.internal.flow.VTNFlowManager.lambda$clearFlowTable$2(VTNFlowManager.java:622)[490:org.opendaylight.vtn.manager.implementation:0.6.2.Carbon]
at org.opendaylight.vtn.manager.internal.flow.VTNFlowManager.runFlowTask(VTNFlowManager.java:661)[490:org.opendaylight.vtn.manager.implementation:0.6.2.Carbon]
at org.opendaylight.vtn.manager.internal.flow.VTNFlowManager.clearFlowTable(VTNFlowManager.java:624)[490:org.opendaylight.vtn.manager.implementation:0.6.2.Carbon]
at org.opendaylight.vtn.manager.internal.flow.VTNFlowManager.notifyVtnNode(VTNFlowManager.java:837)[490:org.opendaylight.vtn.manager.implementation:0.6.2.Carbon]
at org.opendaylight.vtn.manager.internal.inventory.VtnNodeEvent.notifyEvent(VtnNodeEvent.java:118)[490:org.opendaylight.vtn.manager.implementation:0.6.2.Carbon]
at org.opendaylight.vtn.manager.internal.util.tx.TxEvent.execute(TxEvent.java:38)[490:org.opendaylight.vtn.manager.implementation:0.6.2.Carbon]
at org.opendaylight.vtn.manager.internal.util.tx.TxEvent.execute(TxEvent.java:23)[490:org.opendaylight.vtn.manager.implementation:0.6.2.Carbon]
at org.opendaylight.vtn.manager.internal.util.tx.AbstractTxTask.execute(AbstractTxTask.java:91)[490:org.opendaylight.vtn.manager.implementation:0.6.2.Carbon]
at org.opendaylight.vtn.manager.internal.util.tx.TxQueueImpl$TxFuture.execute(TxQueueImpl.java:193)[490:org.opendaylight.vtn.manager.implementation:0.6.2.Carbon]
at org.opendaylight.vtn.manager.internal.util.tx.TxQueueImpl$TxFuture.access$200(TxQueueImpl.java:107)[490:org.opendaylight.vtn.manager.implementation:0.6.2.Carbon]
at org.opendaylight.vtn.manager.internal.util.tx.TxQueueImpl.execute(TxQueueImpl.java:535)[490:org.opendaylight.vtn.manager.implementation:0.6.2.Carbon]
at org.opendaylight.vtn.manager.internal.util.tx.TxQueueImpl.run(TxQueueImpl.java:673)[490:org.opendaylight.vtn.manager.implementation:0.6.2.Carbon]
at java.lang.Thread.run(Thread.java:748)[:1.8.0_141]

Even under operational/vtn-inventory:vtn-nodes
Port links were not created in failed test cases.

Generated at Wed Feb 07 20:48:10 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.