Skip to content

Bug: LogAnalyzer ignore regexes for CMIS 'no suitable app for the port' no longer match the CmisManagerTask syslog identifier #28074

Description

@wsycqyz

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

  1. 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.
  2. Let the image run a sonic-platform-daemons version in which the CMIS state machine uses the CmisManagerTask syslog identifier.
  3. Wait for pmon#CmisManagerTask to log no suitable app for the port appl ... host_lane_count ... host_speed ... at ERR level.
  4. 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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions