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.
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.
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 andNetconfDeviceTopologyAdapter.close()
to delete the node.