Operational data of netconf-topology node may not be removed

Description

Discovered in netconf-csit-1node-userfeatures-all-master #283.

The operational state data of the NETCONF node in netconf-topology may not be removed when its configuration is deleted. The following shows the Karaf log when this happens:

It appears that there is a race between NetconfDeviceTopologyAdapter.updateDeviceData() to update operational data of the node after the device is disconnected and NetconfDeviceTopologyAdapter.close() to delete the node.

Environment

None

Activity

Show:

Robert Varga September 4, 2023 at 8:21 PM

I have audited yang-data-tree-ri and I have not found where the iteration would modify the maps. Filed for follow-up.

Robert Varga September 4, 2023 at 9:23 AM

Okay, so this bit:

indicates we are getting interference during iteration. As this is AbstractDataTreeTip.validate(), we have ascertained that the modification is sealed – which in turn there should be no way ModifinedNode.children are modified externally.

With that assumption, this would mean children were modified as part of our iterating through them.

Done

Details

Assignee

Reporter

Labels

Components

Fix versions

Affects versions

Priority

Created September 1, 2023 at 5:36 PM
Updated February 6, 2025 at 2:17 PM
Resolved September 6, 2023 at 9:45 AM