[CONTROLLER-1950] CDS frontend incorrectly handles root overwrite with multiple shards Created: 25/Jun/20 Updated: 26/Jun/20 Resolved: 26/Jun/20 |
|
| Status: | Resolved |
| Project: | controller |
| Component/s: | clustering |
| Affects Version/s: | None |
| Fix Version/s: | Magnesium SR2, Sodium SR4, 2.0.3 |
| Type: | Bug | Priority: | High |
| Reporter: | Tibor Král | Assignee: | Robert Varga |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Description |
|
When writing data to path "/" it is written only to default shard without affecting the others. Picture this: Committing WRITE transaction to the ROOT (path "/") should delete everything and then correctly write the data to the right shards. So that after the write succeeds the datastore only contains the written data. |
| Comments |
| Comment by Robert Varga [ 25/Jun/20 ] |
|
This is a failure on part of CDS – if there are multiple shards and the write target is YangInstanceIdentifier.empty(), it needs to split the data being written according to the sharding strategy. This is a counterpart to |
| Comment by Robert Varga [ 25/Jun/20 ] |
|
This essentially means that neither merge(), write(), nor delete() paths in TransactionProxy do the right thing with respect to module-based shard splitting. Note how the read() path is handled, simply because that is required for NETCONF. In the modification paths, though:
|