sonic-buildimage/platform/mellanox/mlnx-platform-api/tests
Junchao-Mellanox 9240bcb5b1
[Mellanox] Fix race condition while creating SFP (#17544)
Why I did it
Fix issue xcvrd crashes due to cannot import name 'initialize_sfp_thermal':

Nov 27 09:47:16.388639 sonic ERR pmon#xcvrd: Exception occured at CmisManagerTask thread due to ImportError("cannot import name 'initialize_sfp_thermal' from partially initialized module 'sonic_platform.thermal' (most likely due to a circular import) (/usr/local/lib/python3.9/dist-packages/sonic_platform/thermal.py)")
Nov 27 09:47:16.392544 sonic ERR pmon#xcvrd: Traceback (most recent call last):
Nov 27 09:47:16.392643 sonic ERR pmon#xcvrd:   File "/usr/local/lib/python3.9/dist-packages/xcvrd/xcvrd.py", line 1518, in run
Nov 27 09:47:16.392757 sonic ERR pmon#xcvrd:     self.task_worker()
Nov 27 09:47:16.392757 sonic ERR pmon#xcvrd:   File "/usr/local/lib/python3.9/dist-packages/xcvrd/xcvrd.py", line 1240, in task_worker
Nov 27 09:47:16.392757 sonic ERR pmon#xcvrd:     sfp = platform_chassis.get_sfp(pport)
Nov 27 09:47:16.392793 sonic ERR pmon#xcvrd:   File "/usr/local/lib/python3.9/dist-packages/sonic_platform/chassis.py", line 346, in get_sfp
Nov 27 09:47:16.392830 sonic ERR pmon#xcvrd:     self.initialize_single_sfp(index)
Nov 27 09:47:16.392830 sonic ERR pmon#xcvrd:   File "/usr/local/lib/python3.9/dist-packages/sonic_platform/chassis.py", line 288, in initialize_single_sfp
Nov 27 09:47:16.392830 sonic ERR pmon#xcvrd:     self._sfp_list[index] = sfp_module.SFP(index)
Nov 27 09:47:16.392830 sonic ERR pmon#xcvrd:   File "/usr/local/lib/python3.9/dist-packages/sonic_platform/sfp.py", line 272, in __init__
Nov 27 09:47:16.392866 sonic ERR pmon#xcvrd:     from .thermal import initialize_sfp_thermal
Nov 27 09:47:16.392918 sonic ERR pmon#xcvrd: ImportError: cannot import name 'initialize_sfp_thermal' from partially initialized module 'sonic_platform.thermal' (most likely due to a circular import) (/usr/local/lib/python3.9/dist-packages/sonic_platform/thermal.py)
Nov 27 09:47:16.393103 sonic ERR pmon#xcvrd: Xcvrd: exception found at child thread CmisManagerTask due to ImportError("cannot import name 'initialize_sfp_thermal' from partially initialized module 'sonic_platform.thermal' (most likely due to a circular import) (/usr/local/lib/python3.9/dist-packages/sonic_platform/thermal.py)")
Nov 27 09:47:16.393103 sonic ERR pmon#xcvrd: Exiting main loop as child thread raised exception!
Work item tracking
Microsoft ADO (number only):
How I did it
Add lock for creating SFP object

How to verify it
UNIT TEST
Manual Test
2023-12-19 19:52:42 +08:00
..
input_platform [Mellanox] Use sdk sysfs instead of ethtool (#12480) 2022-11-03 11:17:44 -07:00
__init__.py [Mellanox] Add NVIDIA Copyright header to "mellanox" files (#8799) 2021-10-17 19:03:02 +03:00
conftest.py [mellanox] Integrate HW-MGMT Version 7.0030.2008 (#17170) 2023-11-16 22:49:29 +08:00
dmi_file [Mellanox] Add more unit test coverage for platform API (#15842) (#16137) 2023-08-14 22:40:38 +08:00
mock_eeprom_data [Mellanox] Refactor Mellanox platform API to support dynamic port configuration (#8422) 2021-10-25 07:59:06 +03:00
mock_platform.py [Mellanox] Add NVIDIA Copyright header to "mellanox" files (#8799) 2021-10-17 19:03:02 +03:00
mock_psu_vpd [Mellanox] Refactor Mellanox platform API to support dynamic port configuration (#8422) 2021-10-25 07:59:06 +03:00
test_chassis.py [Mellanox] Fix race condition while creating SFP (#17544) 2023-12-19 19:52:42 +08:00
test_component.py [Mellanox] Add more unit test coverage for platform API (#15842) (#16137) 2023-08-14 22:40:38 +08:00
test_device_data.py [Mellanox] Add more unit test coverage for platform API (#15842) (#16137) 2023-08-14 22:40:38 +08:00
test_eeprom.py [Mellanox] Check system eeprom existence in a retry manner (#13884) 2023-02-21 19:40:16 +02:00
test_fan_api.py [mellanox] Integrate HW-MGMT Version 7.0030.2008 (#17170) 2023-11-16 22:49:29 +08:00
test_firmware.py [Mellanox] Update NVIDIA License header for files changed since 1.1.2022 (#10289) 2022-03-23 13:19:25 +02:00
test_led.py [Mellanox] Add more unit test coverage for platform API (#15842) (#16137) 2023-08-14 22:40:38 +08:00
test_module.py [Mellanox] Enhance Platform API to support SN2201 - RJ45 ports and new components mgmt. (#10377) 2022-06-20 19:12:20 -07:00
test_pcie.py [Mellanox] Add more unit test coverage for platform API (#15842) (#16137) 2023-08-14 22:40:38 +08:00
test_psu.py [Mellanox] Add more unit test coverage for platform API (#15842) (#16137) 2023-08-14 22:40:38 +08:00
test_sfp_event.py [Mellanox] Refactor Mellanox platform API to support dynamic port configuration (#8422) 2021-10-25 07:59:06 +03:00
test_sfp.py [Mellanox] Revert LPM implementation to the old way (#17096) (#17366) 2023-12-01 01:45:37 +08:00
test_thermal.py [Mellanox] Update HW-MGMT package to new version V.7.0030.1011 (#16239) 2023-09-21 18:34:07 +08:00
test_utils.py [Mellanox] Add more unit test coverage for platform API (#15842) (#16137) 2023-08-14 22:40:38 +08:00
test_watchdog.py [Mellanox] Fix issue: watchdogutil command does not work (#16091) 2023-09-03 20:44:36 +08:00