This PR is to backport #13100 to the 202205 branch since can not be cleanly cherry-picked. Following code to judge whether a process is running inside a docker could get stuck on the simx platform subprocess.Popen(["docker", "--version"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True) When it gets stuck, the config-chassisdb service can not be successfully started, thus the system can not be booted up. root@sonic:/# service config-chassisdb status config-chassisdb.service - Config chassis_db Loaded: loaded (/lib/systemd/system/config-chassisdb.service; enabled; vendor preset: enabled) Active: activating (start) since Thu 2022-12-15 09:23:02 UTC; 29min ago Main PID: 571 (config-chassisd) Tasks: 14 (limit: 9501) Memory: 132.4M CGroup: /system.slice/config-chassisdb.service ├─571 /bin/bash /usr/bin/config-chassisdb ├─575 /usr/bin/python3 /usr/local/bin/sonic-cfggen -H -v DEVICE_METADATA.localhost.platform ├─602 /bin/sh -c sudo decode-syseeprom -m ├─603 sudo decode-syseeprom -m ├─607 /usr/bin/python3 /usr/local/bin/decode-syseeprom -m ├─616 /bin/sh -c docker --version 2>/dev/null └─617 docker --version - How I did it Use an alternative way to implement this function and issue can be avoided: docker_env_file = '/.dockerenv' return os.path.exists(docker_env_file) is False - How to verify it run regression on real hardware and simx platform. |
||
---|---|---|
.. | ||
docker-saiserver-mlnx | ||
docker-syncd-mlnx | ||
docker-syncd-mlnx-rpc | ||
hw-management | ||
issu-version | ||
mft | ||
mlnx-platform-api | ||
mlnx-sai | ||
sdk-src | ||
.gitignore | ||
asic_table.j2 | ||
docker-saiserver-mlnx.dep | ||
docker-saiserver-mlnx.mk | ||
docker-syncd-mlnx-rpc.dep | ||
docker-syncd-mlnx-rpc.mk | ||
docker-syncd-mlnx.dep | ||
docker-syncd-mlnx.mk | ||
fw.dep | ||
fw.mk | ||
hw-management.dep | ||
hw-management.mk | ||
install-pending-fw.dep | ||
install-pending-fw.mk | ||
install-pending-fw.py | ||
issu-version.dep | ||
issu-version.mk | ||
libsaithrift-dev.dep | ||
libsaithrift-dev.mk | ||
mft.dep | ||
mft.mk | ||
mlnx-ffb.dep | ||
mlnx-ffb.mk | ||
mlnx-ffb.sh | ||
mlnx-fw-upgrade.j2 | ||
mlnx-onie-fw-update.dep | ||
mlnx-onie-fw-update.mk | ||
mlnx-onie-fw-update.sh | ||
mlnx-platform-api.dep | ||
mlnx-platform-api.mk | ||
mlnx-sai.dep | ||
mlnx-sai.mk | ||
mlnx-ssd-fw-update.dep | ||
mlnx-ssd-fw-update.mk | ||
mlnx-ssd-fw-update.sh | ||
one-image.dep | ||
one-image.mk | ||
peripheral_table.j2 | ||
platform.conf | ||
rules.dep | ||
rules.mk | ||
sdk.dep | ||
sdk.mk | ||
zero_profiles.j2 |