[CONTROLLER-155] DataChangeEvent triggered when sibling attribute changed Created: 11/Feb/14  Updated: 25/Jul/23  Due: 27/Jun/14  Resolved: 15/Jul/14

Status: Resolved
Project: controller
Component/s: mdsal
Affects Version/s: None
Fix Version/s: None

Type: Improvement
Reporter: Robert Varga Assignee: Tony Tkacik
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All



 Description   

In BGP topology exporter, we have the following input data:

container table {
leaf uptodate

{ type boolean; default false; }

list routes

{ leaf ... }

}

We subscribe to changes to 'routes'. Now the producer code, in order to change the 'uptodate' leaf does a full read/update/write cycle, which results in 'table' being reported to our listener:

2014-02-11 16:48:18.538 WET [md-sal-binding-commit-10] INFO  o.o.b.b.t.p.AbstractTopologyBuilder - Identifier InstanceIdentifier [path=[org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.BgpRib, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.bgp.rib.Rib[key=RibKey [_id=Uri [_value=example-bgp-rib]]], org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.bgp.rib.rib.LocRib, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.rib.Tables[key=TablesKey [_afi=class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.Ipv4AddressFamily, _safi=class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.UnicastSubsequentAddressFamily]]]] in update set does not contain listening class interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.rib.tables.routes.ipv4.routes._case.ipv4.routes.Ipv4Route, ignoring it

This seems like a breach in API contract: with this update we'd have to compare before- and after-images to find what changed. In this case that would be nothing, which in turn means that event should have been suppressed.



 Comments   
Comment by Tony Tkacik [ 15/Feb/14 ]

Please verify if this bug is still present in the master.
Commit https://git.opendaylight.org/gerrit/#/c/5320/ could already fix it.

Comment by Tony Tkacik [ 27/Feb/14 ]

Changed to enhacement, from logs, you were notified when deep child was changed.

Comment by Robert Varga [ 08/Apr/14 ]

A further cleanup is needed, as the netconf dispatcher needs to be exposed into the config subsystem, such that the connector does not duplicate functionality.

Comment by Robert Varga [ 08/Apr/14 ]

Disregard the previous comment.

Comment by Robert Varga [ 16/Jun/14 ]

Waiting for data access APIs to be finalized.

Comment by Tony Tkacik [ 15/Jul/14 ]

Regression test suite present in: https://git.opendaylight.org/gerrit/#/c/8926/2

Generated at Wed Feb 07 19:52:19 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.