sonic-buildimage/platform/mellanox/mlnx-platform-api/sonic_platform
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
..
__init__.py [Mellanox] Add NVIDIA Copyright header to "mellanox" files (#8799) 2021-10-17 19:03:02 +03:00
chassis.py [Mellanox] Fix race condition while creating SFP (#17544) 2023-12-19 19:52:42 +08:00
component.py [Mellanox] Add more unit test coverage for platform API (#15842) (#16137) 2023-08-14 22:40:38 +08:00
cpu_thermal_control.py [Mellanox] Add CPU thermal control for Nvidia platforms (#10202) 2022-03-21 09:54:52 -07:00
device_data.py [Mellanox] add new platform 2700 a1 (#16515) (#16795) 2023-10-08 03:06:03 +08:00
eeprom.py [Mellanox] Check system eeprom existence in a retry manner (#13884) 2023-02-21 19:40:16 +02:00
fan_drawer.py [Mellanox] add PSU fan direction support (#14508) 2023-05-15 21:34:54 +03:00
fan.py [mellanox] Integrate HW-MGMT Version 7.0030.2008 (#17170) 2023-11-16 22:49:29 +08:00
led.py [Mellanox] Support UID LED in platform API (#11592) 2023-05-16 08:24:39 +03:00
module.py [Mellanox] Remove TODO comments which are no longer needed (#13023) 2022-12-14 09:57:48 +02:00
pcie.py [Mellanox] Add NVIDIA Copyright header to "mellanox" files (#8799) 2021-10-17 19:03:02 +03:00
platform.py [Mellanox] Refactor Mellanox platform API to support dynamic port configuration (#8422) 2021-10-25 07:59:06 +03:00
psu.py [mellanox] Integrate HW-MGMT Version 7.0030.2008 (#17170) 2023-11-16 22:49:29 +08:00
sfp_event.py [Mellanox] Fix issue: cannot find label port for logical port when logical port number is larger than 64 (#13710) 2023-02-21 08:14:29 +02:00
sfp.py [Mellanox] Revert LPM implementation to the old way (#17096) (#17366) 2023-12-01 01:45:37 +08:00
thermal_manager.py [Mellanox] Update HW-MGMT package to new version V.7.0030.1011 (#16239) 2023-09-21 18:34:07 +08:00
thermal.py [mellanox] Integrate HW-MGMT Version 7.0030.2008 (#17170) 2023-11-16 22:49:29 +08:00
utils.py [Mellanox] Check system eeprom existence in a retry manner (#13884) 2023-02-21 19:40:16 +02:00
vpd_parser.py [Mellanox] Auto correct PSU voltage threshold (WA) (#10394) 2022-04-14 08:14:40 +03:00
watchdog.py [Mellanox] Fix issue: watchdogutil command does not work (#16091) 2023-09-03 20:44:36 +08:00