ironcore-dev / ironcore-dev/network-operator

Cisco NX-OS: gNMI Replace fails with "child cannot be added to deleted object" when replacing nested PIM StaticRP multicast groups

Open
#282 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area/switch-automation firmware-bug vendor/cisco
Dominant language
Go
Stars
11
Forks
7
Avg merge
1d 7h
Merged PRs (30d)
40

Description

Problem Statement

On Cisco NX-OS, a gNMI Replace operation on the PIM rp-items container fails when changing the multicast group of an existing Static RP. NX-OS DME processes the Replace as a delete-parent + add-child within the same transaction, then rejects the child add because the parent is seen as deleted in that same transaction context — violating gNMI Replace atomicity semantics.

Error:

rpc error: code = Internal desc = descr:internal processing error
[error:operation-failed msg:child (Rn) cannot be added to deleted object
Rn=rpgrplist-[226.0.0.0/8], Commit Failed]

Platform: Cisco Nexus 9332D-GX2B (N9K-C9332D-GX2B)
NX-OS: 10.6(2) [Feature Release]


Steps to Reproduce
  1. Enable PIM:
gnmic set --replace-path "System/fm-items/pim-items" \
          --replace-value '{"adminSt":"enabled"}'
  1. Set initial RP with group 225.0.0.0/8:
gnmic set --replace-path "System/pim-items/inst-items/dom-items/Dom-list[name=default]/staticrp-items/rp-items" \
          --replace-value '{"StaticRP-list":[{"addr":"10.0.0.1/32","rpgrplist-items":{"RPGrpList-list":[{"grpListName":"225.0.0.0/8","bidir":false,"override":false}]}}]}'
  1. Replace with new group 226.0.0.0/8FAILS:
gnmic set --replace-path "System/pim-items/inst-items/dom-items/Dom-list[name=default]/staticrp-items/rp-items" \
          --replace-value '{"StaticRP-list":[{"addr":"10.0.0.1/32","rpgrplist-items":{"RPGrpList-list":[{"grpListName":"226.0.0.0/8","bidir":false,"override":false}]}}]}'

# ERROR: child (Rn) cannot be added to deleted objectRn=rpgrplist-[226.0.0.0/8], Commit Failed

Expected Behavior

gNMI Replace should atomically swap the old group with the new group in a single transaction.


Vendor Acknowledgement

Cisco TAC case opened: 700650417

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source file or test is identified in the issue. Start by running the listed gnmic Replace commands against the specified Cisco NX-OS platform and review how the repository handles gNMI Replace requests; done means the nested PIM StaticRP group changes atomically without the deleted-parent error.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.