Uploaded image for project: 'controller'
  1. controller
  2. CONTROLLER-1397

BindingAwareBroker has issues invoking BindingAware RPCs

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Resolution: Cannot Reproduce
    • Beryllium
    • None
    • mdsal
    • None
    • Operating System: All
      Platform: All

    • 4048

    Description

      I am in the process of trying to get IT testing working in the startup archetype.

      In the process of doing that, I am getting IT test failures with an exception:

      Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 477.459 sec <<< FAILURE! - in HelloIT
      testRPC(HelloIT) Time elapsed: 394.96 sec <<< ERROR!
      org.opendaylight.controller.md.sal.dom.api.DOMRpcImplementationNotAvailableException: No implementation of RPC AbsoluteSchemaPath

      {path=[(urn:opendaylight:params:xml:ns:yang:hello?revision=2015-01-05)hello-world]}

      available
      at org.opendaylight.controller.md.sal.dom.broker.impl.DOMRpcRoutingTable.invokeRpc(DOMRpcRoutingTable.java:183)
      at org.opendaylight.controller.md.sal.dom.broker.impl.DOMRpcRouter.invokeRpc(DOMRpcRouter.java:124)
      at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter.invoke0(RpcServiceAdapter.java:64)
      at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter.access$000(RpcServiceAdapter.java:42)
      at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter$RpcInvocationStrategy.invoke(RpcServiceAdapter.java:156)
      at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter.invoke(RpcServiceAdapter.java:95)
      at com.sun.proxy.$Proxy84.helloWorld(Unknown Source)
      at HelloIT.testRPC(HelloIT.java:57)

      This happens in spite of the fact that if I put a debugger breakpoint on HelloIT.java:56 (the line before the exception is thrown) I can successfully access the RPC via Restconf.

      The RPC implementation is registered with the BindingAwareBroker via the ProviderContext, and we are attempting to access if in the IT test via the BindingAwareBroker via a ProviderContext. But it appears that the BindingAwareBroker is forwarding it to the DomBroker where the RPC is not being found.

      If we try to access it via RestConf however its being access correctly.

      To recreate:

      As part of doing that, I am using this patch:

      https://git.opendaylight.org/gerrit/#/c/16294/

      to do IT testing via a parent and base classes, so you will need to build the new directories from there.

      You will find attached a hello.zip file which contains the code I am working from. Building hello/ will build hello/it which will run the IT tests and fail appropriately.

      The POSTMAN to use RESTCONF is here: https://www.getpostman.com/collections/fe835cc9c7b50343f752

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            Unassigned Unassigned
            hagbard Ed Warnicke
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: