[pmon]: Install libyaml-cpp runtime dependency#28098
Conversation
|
/azp run Azure.sonic-buildimage |
|
Azure Pipelines successfully started running 1 pipeline(s). |
There was a problem hiding this comment.
Pull request overview
This PR updates the docker-platform-monitor (PMON) container image to include the Debian Trixie runtime package libyaml-cpp0.8, addressing failures where platform daemons load shared objects requiring libyaml-cpp.so.0.8 inside the container.
Changes:
- Add
libyaml-cpp0.8to the PMON container’sapt-get installpackage list.
| build-essential \ | ||
| python3-dev \ | ||
| ipmitool \ | ||
| libyaml-cpp0.8 \ |
There was a problem hiding this comment.
Done in 910e6fa: added libyaml-cpp0.8==0.8.0+dfsg-7 to the PMON Trixie version lock manifests.
b6e7b69 to
230b15a
Compare
|
/azp run Azure.sonic-buildimage |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
Hi @saiarcot895 - please help review |
What's the full backtrace? I don't think this is a generic issue, considering there are different platforms able to run Trixie-based pmon. |
|
Thanks, agreed -- this should not be described as a generic PMON/Trixie issue. More precise scope: this affects platforms whose PMON-loaded platform API dependency chain requires Full traceback from the reproduced failure, with lab identifiers redacted: The same root import failure was also observed in |
Install libyaml-cpp0.8 in the Trixie-based PMON container so platform plugins that depend on libyaml-cpp.so.0.8 can load inside pmon. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Jing Zhang <zhangjing@microsoft.com>
230b15a to
910e6fa
Compare
|
/azp run Azure.sonic-buildimage |
|
Azure Pipelines successfully started running 1 pipeline(s). |
| gcc-14-arm-linux-gnueabihf==14.2.0-19 | ||
| gcc-arm-linux-gnueabihf==4:14.2.0-1 | ||
| libyaml-cpp0.8==0.8.0+dfsg-7 |
|
/azpw run |
|
Retrying failed(or canceled) jobs... |
|
Retrying failed(or canceled) stages in build 1149886: ✅Stage Test:
|
|
Hi @kperumalbfn - can you help merge please |
|
Hi @yxieca - please help merge. |
Why I did it
PMON was upgraded to a Trixie-based container, but
docker-platform-monitordoes not install the Trixie runtime package that provideslibyaml-cpp.so.0.8. This is not expected to affect every Trixie-based PMON platform. The impact is platform-specific: platforms whose PMON-loaded platform API or daemon dependency chain requireslibyaml-cpp.so.0.8can fail with ImportError, while platforms without that dependency can continue to run normally.The issue was reproduced on affected Cisco 8102 SmartSwitch NPU images, where the host had the library while the
pmoncontainer did not. This caused platform daemons such aschassisd,thermalctld,syseepromd,xcvrd,psud, andsensormondto exit with ImportError. Whenchassisdwas down, chassis/DPU state was not initialized and DPU management reachability failed.Evidence from affected 8102 SmartSwitch NPUs:
pmonsupervisor state before live mitigation:Library presence check before live mitigation:
After copying
libyaml-cpp.so.0.8into the runningpmoncontainer and restarting the daemons, the platform daemons recovered and required DPU state became ready again:Work item tracking
How I did it
Install the Trixie runtime package
libyaml-cpp0.8in thedocker-platform-monitorimage so PMON platform daemon dependencies are present inside the container when a platform plugin requires this shared library.How to verify it
libyaml-cpp0.8exists in Debian Trixie:docker run --rm debian:trixie bash -lc 'apt-get update -qq && apt-cache policy libyaml-cpp0.8'make configure PLATFORM=vsandmake SONIC_BUILD_JOBS=4 target/docker-platform-monitor.gz.Observed:
Which release branch to backport (provide reason below if selected)
Tested branch (Please provide the tested image version)
Description for the changelog
Install libyaml-cpp runtime dependency in the PMON container for platforms that require it.
Link to config_db schema for YANG module changes
N/A