Is it platform specific
generic
Importance or Severity
Medium
Description of the bug
The LogAnalyzer ignore regexes for the xcvrd CMIS "no suitable app for the port" error no longer match, so the error is reported by the global LogAnalyzer teardown and fails whichever unrelated test happens to be running when the line lands.
xcvrd's CMIS state machine was split into its own thread with a dedicated syslog identifier — SYSLOG_IDENTIFIER_CMIS = "CmisManagerTask" in sonic-platform-daemons/sonic-xcvrd/xcvrd/cmis/cmis_manager_task.py — and it no longer emits the CMIS: prefix. The error raised by get_cmis_application_desired() when a transceiver advertises no CMIS application matching the port's host lane count and speed is now logged as:
ERR pmon#CmisManagerTask[33]: Ethernet216: no suitable app for the port appl 0 host_lane_count 4 host_speed 100000
Every existing ignore regex for this message still expects pmon#xcvrd, so none of them fire any more:
| File |
Pattern |
Why it fails |
ansible/roles/test/files/tools/loganalyzer/loganalyzer_common_ignore.txt |
.* ERR pmon#xcvrd:.*CMIS:.*no suitable app for the port appl.* |
wrong identifier and the CMIS: prefix no longer exists |
tests/drop_packets/test_drop_counters.py |
.* ERR pmon#xcvrd.*no suitable app for the port appl.*host_lane_count.*host_speed.* |
wrong identifier |
tests/iface_namingmode/test_iface_namingmode.py |
.*ERR pmon#xcvrd.*: no suitable app for the port appl .* host_lane_count [0-9] host_speed.* |
wrong identifier |
Failure type: regression. The ignore regexes worked until the CMIS state machine moved to its own syslog identifier; they were not updated to follow it.
The syslog line itself is a genuine testbed/optics property, not a software defect — a paged module whose application advertisement does not cover the port's configured host lane count and speed (e.g. a 400ZR advertising only 400GAUI-8 and 100GAUI-2 in a cage whose port is configured as 100G over 4 host lanes). Ignoring it is the intended behaviour, which is what these regexes were added for. Note that passive copper DACs cannot produce this error at all: process_cmis_state_machine() short-circuits on api.is_flat_memory() before application selection is ever reached.
Steps to Reproduce
- Run any test module on a testbed whose DUT has a paged (non-flat-memory) optic whose CMIS application advertisement does not cover the port's configured host lane count / speed — e.g.
Cisco-8101C01-C32, Cisco-8102-28FH-DPU-O, Cisco-8101-O8V48, M2-W6940-64X1-FR4.
- Let the image run a
sonic-platform-daemons version in which the CMIS state machine uses the CmisManagerTask syslog identifier.
- Wait for
pmon#CmisManagerTask to log no suitable app for the port appl ... host_lane_count ... host_speed ... at ERR level.
- Observe the global LogAnalyzer teardown fail the test module that happened to be running.
Actual Behavior and Expected Behavior
Actual: The error is not ignored. Over a recent 21-day window it produced test errors on 4 different testbeds across completely unrelated modules — closa, vlan.test_autostate_disabled, pfcwd.test_pfcwd_cli and iface_namingmode.TestConfigInterface. Every single occurrence used the pmon#CmisManagerTask identifier; none used pmon#xcvrd. iface_namingmode is the clearest symptom: it already carries an ignore regex for this exact message, yet still fails on it.
Expected: The message is matched by the LogAnalyzer ignore regexes — under both the legacy xcvrd identifier and the current CmisManagerTask identifier — and does not fail unrelated tests.
Relevant log output
ERR pmon#CmisManagerTask[33]: Ethernet216: no suitable app for the port appl 0 host_lane_count 4 host_speed 100000
ERR pmon#CmisManagerTask[33]: Ethernet216: no suitable app for the port appl None host_lane_count 4 host_speed 100000
# Per-port platform API state on an affected DUT:
# Ethernet216 400ZR api=CCmisApi flat_memory=False copper=False coherent=True -> CMIS FAILED
# Ethernet224 DAC api=CmisApi flat_memory=True copper=True coherent=False -> CMIS READY
# Ethernet232 DAC api=CmisApi flat_memory=True copper=True coherent=False -> CMIS READY
#
# 31 of the 32 ports log "skipping CMIS state machine for flat memory xcvr";
# the single paged optic is the only port that reaches application selection,
# and the only one that errors.
Output of show version
Affected platforms observed: Cisco-8101C01-C32, Cisco-8102-28FH-DPU-O, Cisco-8101-O8V48, M2-W6940-64X1-FR4
Affected branches: master, 202605
Attach files (if any)
Fix proposed in #27952
Is it platform specific
generic
Importance or Severity
Medium
Description of the bug
The LogAnalyzer ignore regexes for the
xcvrdCMIS "no suitable app for the port" error no longer match, so the error is reported by the global LogAnalyzer teardown and fails whichever unrelated test happens to be running when the line lands.xcvrd's CMIS state machine was split into its own thread with a dedicated syslog identifier —SYSLOG_IDENTIFIER_CMIS = "CmisManagerTask"insonic-platform-daemons/sonic-xcvrd/xcvrd/cmis/cmis_manager_task.py— and it no longer emits theCMIS:prefix. The error raised byget_cmis_application_desired()when a transceiver advertises no CMIS application matching the port's host lane count and speed is now logged as:Every existing ignore regex for this message still expects
pmon#xcvrd, so none of them fire any more:ansible/roles/test/files/tools/loganalyzer/loganalyzer_common_ignore.txt.* ERR pmon#xcvrd:.*CMIS:.*no suitable app for the port appl.*CMIS:prefix no longer existstests/drop_packets/test_drop_counters.py.* ERR pmon#xcvrd.*no suitable app for the port appl.*host_lane_count.*host_speed.*tests/iface_namingmode/test_iface_namingmode.py.*ERR pmon#xcvrd.*: no suitable app for the port appl .* host_lane_count [0-9] host_speed.*Failure type: regression. The ignore regexes worked until the CMIS state machine moved to its own syslog identifier; they were not updated to follow it.
The syslog line itself is a genuine testbed/optics property, not a software defect — a paged module whose application advertisement does not cover the port's configured host lane count and speed (e.g. a 400ZR advertising only
400GAUI-8and100GAUI-2in a cage whose port is configured as 100G over 4 host lanes). Ignoring it is the intended behaviour, which is what these regexes were added for. Note that passive copper DACs cannot produce this error at all:process_cmis_state_machine()short-circuits onapi.is_flat_memory()before application selection is ever reached.Steps to Reproduce
Cisco-8101C01-C32,Cisco-8102-28FH-DPU-O,Cisco-8101-O8V48,M2-W6940-64X1-FR4.sonic-platform-daemonsversion in which the CMIS state machine uses theCmisManagerTasksyslog identifier.pmon#CmisManagerTaskto logno suitable app for the port appl ... host_lane_count ... host_speed ...atERRlevel.Actual Behavior and Expected Behavior
Actual: The error is not ignored. Over a recent 21-day window it produced test errors on 4 different testbeds across completely unrelated modules —
closa,vlan.test_autostate_disabled,pfcwd.test_pfcwd_cliandiface_namingmode.TestConfigInterface. Every single occurrence used thepmon#CmisManagerTaskidentifier; none usedpmon#xcvrd.iface_namingmodeis the clearest symptom: it already carries an ignore regex for this exact message, yet still fails on it.Expected: The message is matched by the LogAnalyzer ignore regexes — under both the legacy
xcvrdidentifier and the currentCmisManagerTaskidentifier — and does not fail unrelated tests.Relevant log output
Output of
show versionAttach files (if any)
Fix proposed in #27952