when multiple requests for the same device arrives:
Scenario 1: (Tested with confd)
When device supports both the capability :candidate and :writable-running :
Even though lock has been denied for the lock transaction , Netconf still continues to execute get-config, edit-config and commit transactions
Later it checks results of all above transactions , if any of the transactions fails then "discard-changes" will be executed.
But commit transaction is already done and therefore all the changes will be updated to running configuration datastore
Scenario 2 :
when device supports only :writable-running :
As per code analysis, It will continue with get-config, edit-config and unlock transactions to running configuration datastore even though lock transaction has been denied.
Response from Restconf :
Restconf returns error response but netconf internally executed all the rpc transactions to the device
<errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf">
<error>
<error-type>application</error-type>
<error-tag>operation-failed</error-tag>
<error-message>Commit of transaction org.opendaylight.netconf.sal.connect.netconf.sal.tx.WriteCandidateRunningTx@3c57aac1 failed</error-message>
<error-info>RemoteDevice{confd-netconf-device}:RPC during tx failed. the configuration database is locked by session 16 admin ssh (netconf from XXX.XX.XX.XX ) on since 2020-06-26 13:47:19<session-id>16</session-id>the configuration database is locked by session 16 admin ssh (netconf from XXX.XX.XX.XX ) on since 2020-06-26 13:47:19<session-id>16</session-id></error-info>
</error>
</errors>
- blocks
-
NETCONF-746 YANG patch request on NETCONF mountpoint is not atomic
- Resolved