Is it platform specific
generic
Importance or Severity
Medium
Description of the bug
config macsec port del <port> removes the macsec field from the CONFIG_DB PORT entry immediately, but the APPL_DB MACSEC_PORT_TABLE entry is cleaned up asynchronously by macsecmgrd. If show macsec runs during that window, MACsecPort.dump_str finds the APPL_DB entry but no macsec field in CONFIG_DB and crashes with KeyError: 'macsec'. It is easy to hit when deleting several ports at once.
The error is transient since re-running show macsec a second or two later succeeds once teardown completes.
Steps to Reproduce
- Configure MACsec on one or more ports.
- Delete them in quick succession:
for p in <ports>; do sudo config macsec port del "$p"; done
- Immediately run
show macsec.
Actual Behavior and Expected Behavior
Actual: show macsec exits non-zero with a Python traceback ending in KeyError: 'macsec'.
Expected: show macsec returns cleanly. A port still present in APPL_DB but mid-teardown should be shown with an empty profile.
Relevant log output
Traceback (most recent call last):
File "/usr/local/bin/show", line 8, in <module>
sys.exit(cli())
...
File "/usr/local/lib/python3.13/dist-packages/show/plugins/macsec.py", line 330, in show
print(obj.dump_str(cache_obj))
File "/usr/local/lib/python3.13/dist-packages/show/plugins/macsec.py", line 158, in dump_str
self.meta["profile"] = self.cfgMeta["macsec"]
KeyError: 'macsec'
Output of show version, show techsupport
$ show ver
SONiC Software Version: SONiC.202511.1170712-5cc9b4ce9
SONiC OS Version: 13
Distribution: Debian 13.5
Kernel: 6.12.41+deb13-sonic-amd64
Build commit: 5cc9b4ce9
Build date: Tue Jul 21 16:02:15 UTC 2026
Built by: azureuser@3c48205dc000000
Platform: <>
HwSKU: <>
ASIC: broadcom
ASIC Count: 1
Serial Number: <>
Model Number: <>
Hardware Revision: N/A
Uptime: 21:31:36 up 38 min, 1 user, load average: 0.62, 0.29, 0.58
Date: Wed 22 Jul 2026 21:31:36
Docker images:
REPOSITORY TAG IMAGE ID SIZE
docker-telemetry-sidecar 202511.1170712-5cc9b4ce9 c92fd35215c4 265MB
docker-telemetry-sidecar latest c92fd35215c4 265MB
docker-syncd-brcm-dnx 202511.1170712-5cc9b4ce9 66d7fa9b94ec 854MB
docker-syncd-brcm-dnx latest 66d7fa9b94ec 854MB
docker-gbsyncd-agera2 202511.1170712-5cc9b4ce9 c188a37a56bc 374MB
docker-gbsyncd-agera2 latest c188a37a56bc 374MB
docker-gbsyncd-broncos 202511.1170712-5cc9b4ce9 1f7cc07cbc42 319MB
docker-gbsyncd-broncos latest 1f7cc07cbc42 319MB
docker-gbsyncd-credo 202511.1170712-5cc9b4ce9 bafafce26951 307MB
docker-gbsyncd-credo latest bafafce26951 307MB
docker-dhcp-relay 202511.1170712-5cc9b4ce9 b9f53ab84ebf 297MB
docker-dhcp-relay latest b9f53ab84ebf 297MB
docker-sonic-bmp 202511.1170712-5cc9b4ce9 cf8897fce96d 270MB
docker-sonic-bmp latest cf8897fce96d 270MB
docker-macsec 202511.1170712-5cc9b4ce9 279677ca1a40 302MB
docker-macsec latest 279677ca1a40 302MB
docker-eventd 202511.1170712-5cc9b4ce9 39e5ca31516d 265MB
docker-eventd latest 39e5ca31516d 265MB
docker-telemetry-watchdog 202511.1170712-5cc9b4ce9 71d6d833dcd1 384MB
docker-telemetry-watchdog latest 71d6d833dcd1 384MB
docker-fpm-frr 202511.1170712-5cc9b4ce9 30d544a5eb7c 351MB
docker-fpm-frr latest 30d544a5eb7c 351MB
docker-dash-ha 202511.1170712-5cc9b4ce9 280c789389a7 318MB
docker-dash-ha latest 280c789389a7 318MB
docker-teamd 202511.1170712-5cc9b4ce9 fb74abc55c1e 300MB
docker-teamd latest fb74abc55c1e 300MB
docker-snmp 202511.1170712-5cc9b4ce9 dce180ee3a2e 290MB
docker-snmp latest dce180ee3a2e 290MB
docker-platform-monitor 202511.1170712-5cc9b4ce9 e5efcc538121 399MB
docker-platform-monitor latest e5efcc538121 399MB
docker-sflow 202511.1170712-5cc9b4ce9 48e197b0171b 301MB
docker-sflow latest 48e197b0171b 301MB
docker-router-advertiser 202511.1170712-5cc9b4ce9 29c01174b53c 266MB
docker-router-advertiser latest 29c01174b53c 266MB
docker-orchagent 202511.1170712-5cc9b4ce9 553585895a98 312MB
docker-orchagent latest 553585895a98 312MB
docker-nat 202511.1170712-5cc9b4ce9 042656558b7d 302MB
docker-nat latest 042656558b7d 302MB
docker-gnmi-watchdog 202511.1170712-5cc9b4ce9 c41fbdaeae79 272MB
docker-gnmi-watchdog latest c41fbdaeae79 272MB
docker-mux 202511.1170712-5cc9b4ce9 28725f3689f9 278MB
docker-mux latest 28725f3689f9 278MB
docker-lldp 202511.1170712-5cc9b4ce9 f182651f2d2f 311MB
docker-lldp latest f182651f2d2f 311MB
docker-database 202511.1170712-5cc9b4ce9 e864536f996b 272MB
docker-database latest e864536f996b 272MB
docker-bmp-watchdog 202511.1170712-5cc9b4ce9 648db9cf447d 266MB
docker-bmp-watchdog latest 648db9cf447d 266MB
docker-auditd-watchdog 202511.1170712-5cc9b4ce9 6c56cf1bf69b 268MB
docker-auditd-watchdog latest 6c56cf1bf69b 268MB
docker-auditd 202511.1170712-5cc9b4ce9 2f269bd3a8d8 265MB
docker-auditd latest 2f269bd3a8d8 265MB
docker-sysmgr 202511.1170712-5cc9b4ce9 f27e32a4abb9 277MB
docker-sysmgr latest f27e32a4abb9 277MB
docker-sonic-mgmt-framework 202511.1170712-5cc9b4ce9 42eeb8ddbdff 360MB
docker-sonic-mgmt-framework latest 42eeb8ddbdff 360MB
docker-sonic-otel 202511.1170712-5cc9b4ce9 2eebd9b1835d 607MB
docker-sonic-otel latest 2eebd9b1835d 607MB
docker-sonic-gnmi 202511.1170712-5cc9b4ce9 49c4add5063e 382MB
docker-sonic-gnmi latest 49c4add5063e 382MB
Attach files (if any)
No response
Is it platform specific
generic
Importance or Severity
Medium
Description of the bug
config macsec port del <port>removes themacsecfield from the CONFIG_DBPORTentry immediately, but the APPL_DBMACSEC_PORT_TABLEentry is cleaned up asynchronously bymacsecmgrd. Ifshow macsecruns during that window,MACsecPort.dump_strfinds the APPL_DB entry but nomacsecfield in CONFIG_DB and crashes withKeyError: 'macsec'. It is easy to hit when deleting several ports at once.The error is transient since re-running
show macseca second or two later succeeds once teardown completes.Steps to Reproduce
for p in <ports>; do sudo config macsec port del "$p"; doneshow macsec.Actual Behavior and Expected Behavior
Actual:
show macsecexits non-zero with a Python traceback ending inKeyError: 'macsec'.Expected:
show macsecreturns cleanly. A port still present in APPL_DB but mid-teardown should be shown with an empty profile.Relevant log output
Output of
show version,show techsupportAttach files (if any)
No response