[CONTROLLER-1409] Listening on root node does not work in registerDataChangeListener Created: 21/Aug/15 Updated: 19/Oct/17 Resolved: 24/Aug/17 |
|
| Status: | Resolved |
| Project: | controller |
| Component/s: | clustering |
| Affects Version/s: | Beryllium |
| Fix Version/s: | None |
| Type: | Bug | ||
| Reporter: | Jakub Morvay | Assignee: | Unassigned |
| Resolution: | Won't Do | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Operating System: All |
||
| Issue Links: |
|
||||||||
| External issue ID: | 4167 | ||||||||
| Description |
|
If I register a listener like this domDataBroker.registerDataChangeListener(LogicalDatastoreType.CONFIGURATION, YangInstanceIdentifier.builder().build(), new myDOMDataChangeListener(), AsyncDataBroker.DataChangeScope.SUBTREE); I get exception java.util.NoSuchElementException |
| Comments |
| Comment by Moiz Raja [ 01/Sep/15 ] |
|
Jakub what is the use case for this? |
| Comment by Robert Varga [ 15/Jul/16 ] |
|
The use case for this BUG-1045, which needs to collect all changes happening in the data store. This works just fine with IMDS, but the CDS implementation fails here, simply because it cannot determine the single shard for the listener. The implementation should instantiate listeners for each shard in existence and combine the results to provide a seamless experience. |
| Comment by Robert Varga [ 15/Jul/16 ] |
| Comment by Robert Varga [ 03/Aug/16 ] |
|
The fix merged does not completely solve the problem, as it does not work across shards (e.g. it does not report data in shards outside of the default shard). |
| Comment by Robert Varga [ 24/Aug/17 ] |
|
This issue will not be fixed for DataChangeListeners, since they are deprecated. Underlying issue is addressed in the MD-SAL's Consumer APIs, which properly assemble changes from a shard hierarchy, supporting listening on root (as it no longer is special). |