Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

platform_api_server crashing during platform_tests/api/test_sfp.py::TestSfpApi::test_reset #22002

Open
arista-nwolfe opened this issue Mar 11, 2025 · 1 comment
Assignees

Comments

@arista-nwolfe
Copy link
Contributor

platform_tests/api/test_sfp.py::TestSfpApi::test_reset is failing with:

>           raise RemoteDisconnected("Remote end closed connection without"
                                     " response")
E           http.client.RemoteDisconnected: Remote end closed connection without response

When sfp.reset(platform_api_conn, i) is run the platform_api_server on the dut crashes with the following traceback:

pmon#supervisord: platform_api_server ----------------------------------------
pmon#supervisord: platform_api_server Exception occurred during processing of request from ('10.243.232.10', 38042)
pmon#supervisord: platform_api_server Traceback (most recent call last):
pmon#supervisord: platform_api_server   File "/usr/lib/python3.11/socketserver.py", line 317, in _handle_request_noblock
pmon#supervisord: platform_api_server     self.process_request(request, client_address)
pmon#supervisord: platform_api_server   File "/usr/lib/python3.11/socketserver.py", line 348, in process_request
pmon#supervisord: platform_api_server     self.finish_request(request, client_address)
pmon#supervisord: platform_api_server   File "/usr/lib/python3.11/socketserver.py", line 361, in finish_request
pmon#supervisord: platform_api_server     self.RequestHandlerClass(request, client_address, self)
pmon#supervisord: platform_api_server   File "/usr/lib/python3.11/socketserver.py", line 755, in __init__
pmon#supervisord: platform_api_server     self.handle()
pmon#supervisord: platform_api_server   File "/usr/lib/python3.11/http/server.py", line 432, in handle
pmon#supervisord: platform_api_server     self.handle_one_request()
pmon#supervisord: platform_api_server   File "/usr/lib/python3.11/http/server.py", line 420, in handle_one_request
pmon#supervisord: platform_api_server     method()
pmon#supervisord: platform_api_server   File "/opt/platform_api_server.py", line 58, in do_POST
pmon#supervisord: platform_api_server     self.do_platform_api()
pmon#supervisord: platform_api_server   File "/opt/platform_api_server.py", line 94, in do_platform_api
pmon#supervisord: platform_api_server     res = getattr(obj, api)(*args)
pmon#supervisord: platform_api_server           ^^^^^^^^^^^^^^^^^^^^^^^^
pmon#supervisord: platform_api_server   File "/usr/lib/python3/dist-packages/arista/utils/sonic_platform/sfp_optoe.py", line 110, in reset
pmon#supervisord: platform_api_server     if self.sfp_type == "SFP":
pmon#supervisord: platform_api_server        ^^^^^^^^^^^^^
pmon#supervisord: platform_api_server   File "/usr/lib/python3/dist-packages/arista/utils/sonic_platform/sfp_optoe.py", line 35, in sfp_type
pmon#supervisord: platform_api_server     self._sfp_type = self._detect_sfp_type()
pmon#supervisord: platform_api_server                      ^^^^^^^^^^^^^^^^^^^^^^^
pmon#supervisord: platform_api_server   File "/usr/lib/python3/dist-packages/arista/utils/sonic_platform/sfp_optoe.py", line 40, in _detect_sfp_type
pmon#supervisord: platform_api_server     info = self.get_transceiver_info()
pmon#supervisord: platform_api_server            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
pmon#supervisord: platform_api_server   File "/usr/local/lib/python3.11/dist-packages/sonic_platform_base/sonic_xcvr/sfp_optoe_base.py", line 28, in get_transceiver_info
pmon#supervisord: platform_api_server     return api.get_transceiver_info() if api is not None else None
pmon#supervisord: platform_api_server            ^^^^^^^^^^^^^^^^^^^^^^^^^^
pmon#supervisord: platform_api_server   File "/usr/local/lib/python3.11/dist-packages/sonic_platform_base/sonic_xcvr/api/public/sff8636.py", line 29, in get_transceiver_info
pmon#supervisord: platform_api_server     serial_id = self.xcvr_eeprom.read(consts.SERIAL_ID_FIELD)
pmon#supervisord: platform_api_server                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pmon#supervisord: platform_api_server   File "/usr/local/lib/python3.11/dist-packages/sonic_platform_base/sonic_xcvr/xcvr_eeprom.py", line 26, in read
pmon#supervisord: platform_api_server     raw_data = self.reader(field.get_offset(), field.get_size())
pmon#supervisord: platform_api_server                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pmon#supervisord: platform_api_server   File "/usr/local/lib/python3.11/dist-packages/sonic_platform_base/sonic_xcvr/sfp_optoe_base.py", line 260, in read_eeprom
pmon#supervisord: platform_api_server     self.get_optoe_current_page() != 0:
pmon#supervisord: platform_api_server     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pmon#supervisord: platform_api_server   File "/usr/local/lib/python3.11/dist-packages/sonic_platform_base/sonic_xcvr/sfp_optoe_base.py", line 241, in get_optoe_current_page
pmon#supervisord: platform_api_server     return self.read_eeprom(SFP_OPTOE_PAGE_SELECT_OFFSET, 1)[0]
pmon#supervisord: platform_api_server            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^
pmon#supervisord: platform_api_server TypeError: 'NoneType' object is not subscriptable
pmon#supervisord: platform_api_server ----------------------------------------

This code to read the eeprom was added recently by sonic-net/sonic-platform-common#548

@rlhui
Copy link
Contributor

rlhui commented Mar 12, 2025

@prgeor , would you please take a look?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: No status
Development

No branches or pull requests

3 participants