Skip to content

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

Open
@arista-nwolfe

Description

@arista-nwolfe

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

  • Status

    No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions