[CONTROLLER-925] Race condition when adding a RPC implementation with an output Created: 07/Oct/14 Updated: 19/Jan/15 Resolved: 19/Jan/15 |
|
| Status: | Resolved |
| Project: | controller |
| Component/s: | mdsal |
| Affects Version/s: | Helium |
| Fix Version/s: | None |
| Type: | Bug | ||
| Reporter: | Sharon Aicler | Assignee: | Jan Hajnar |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Operating System: All |
||
| Attachments: |
|
| External issue ID: | 2157 |
| Description |
|
When you add a RPC Service Implementer that contains an output reply, there is no error. However, when you try to use this RPC you get a message it does not exist. When doing the following lines in your module's "createInstance" method: |
| Comments |
| Comment by Sharon Aicler [ 07/Oct/14 ] |
|
unzip the project under md-sal, it will create the "sal-example" directory. once the controller is up, to invoke the rpc please use the following: url: } you should get an error that this method is not implemented. to make it work: |
| Comment by Sharon Aicler [ 07/Oct/14 ] |
|
Attachment sal-example.zip has been added with description: An example project that reproduce the issue |
| Comment by Tony Tkacik [ 08/Oct/14 ] |
|
The registration of RPC to DOM broker in org.opendaylight.controller.sal.binding.impl.connect.dom.DomToBindingRpcForwarder uses org.opendaylight.yangtools.sal.binding.generator.impl.RuntimeGeneratedMappingServiceImpl#getRpcQNamesFor(...,...) to retrieve QNames. THis method should block thread and wait for schema if unavailable, but currently it returns empty set if schema is still not present, which prevents exposing RPCs to DOM Broker and by extension to Restconf and Clustering. |
| Comment by Jan Hajnar [ 12/Nov/14 ] |
| Comment by Jan Hajnar [ 12/Nov/14 ] |
|
Please ignore the change above |
| Comment by Robert Varga [ 08/Dec/14 ] |