-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
[xcvrd] xcvrd crashes during breakout port #18893
[xcvrd] xcvrd crashes during breakout port #18893
Comments
@prgeor , can you please take a look? |
This commit fixes DPB support with CMIS transceivers. CmisManagerTask's port_dict and port_mapping must be updated according to the port add/remove events. Sinse CmisManagerTask uses PortChangeObserver, which emits PORT_SET/PORT_DEL events, not PORT_ADD/PORT_REMOVE, PortMapping is updated to handle these events. fixes sonic-net/sonic-buildimage#18893 Signed-off-by: Wataru Ishida <[email protected]>
Hi, I reproduced this issue on the VS environment. The issue was that xcvrd's sonic-net/sonic-platform-daemons#500 fixes the issue on my environment. Since I don't have access to the real hardware that supports DPB and CMIS transceivers, I enhanced the VS environment to support DPB and run @HaiHuang008 It would be great if you could check whether this fix resolves the issue on your platform. |
@ishidawataru Thanks for your fix, this error no longer appears. But another error appears, causing xcvrd to crash. |
This commit fixes DPB support with CMIS transceivers. CmisManagerTask's `port_dict` must be updated according to the port add/remove events. This commit removes the `port_mapping` field from CmisManagerTask as `port_mapping` was mostly used just for storing `asic_id` information and that can be simply done by `port_dict` instead. Added a helper method `get_asic_id()` method to CmisManagerTask for getting `asic_id` from `logical_port`. fixes sonic-net/sonic-buildimage#18893 Signed-off-by: Wataru Ishida <[email protected]>
@HaiHuang008 Thanks for testing and I'm sorry that the original fix didn't work. I think I could fix the problem of the original fix. |
@ishidawataru Thanks again. This issue is resolved. No xcvrd crash when port breakout. |
This commit fixes DPB support with CMIS transceivers. CmisManagerTask's `port_dict` must be updated according to the port add/remove events. This commit removes the `port_mapping` field from CmisManagerTask as `port_mapping` was mostly used just for storing `asic_id` information and that can be simply done by `port_dict` instead. Added a helper method `get_asic_id()` method to CmisManagerTask for getting `asic_id` from `logical_port`. fixes sonic-net/sonic-buildimage#18893 Signed-off-by: Wataru Ishida <[email protected]>
@HaiHuang008 Thanks for testing. I'll try to get the PR merged. |
This commit fixes DPB support with CMIS transceivers. CmisManagerTask's `port_dict` must be updated according to the port add/remove events. This commit removes the `port_mapping` field from CmisManagerTask as `port_mapping` was mostly used just for storing `asic_id` information and that can be simply done by `port_dict` instead. Added a helper method `get_asic_id()` method to CmisManagerTask for getting `asic_id` from `logical_port`. fixes sonic-net/sonic-buildimage#18893 Signed-off-by: Wataru Ishida <[email protected]>
This commit fixes DPB support with CMIS transceivers. CmisManagerTask's `port_dict` must be updated according to the port add/remove events. This commit removes the `port_mapping` field from CmisManagerTask as `port_mapping` was mostly used just for storing `asic_id` information and that can be simply done by `port_dict` instead. Added a helper method `get_asic_id()` method to CmisManagerTask for getting `asic_id` from `logical_port`. fixes sonic-net/sonic-buildimage#18893 Signed-off-by: Wataru Ishida <[email protected]>
This commit fixes DPB support with CMIS transceivers. CmisManagerTask's `port_dict` must be updated according to the port add/remove events. This commit removes the `port_mapping` field from CmisManagerTask as `port_mapping` was mostly used just for storing `asic_id` information and that can be simply done by `port_dict` instead. Added a helper method `get_asic_id()` method to CmisManagerTask for getting `asic_id` from `logical_port`. fixes sonic-net/sonic-buildimage#18893 Signed-off-by: Wataru Ishida <[email protected]>
This commit fixes DPB support with CMIS transceivers. CmisManagerTask's `port_dict` must be updated according to the port add/remove events. This commit removes the `port_mapping` field from CmisManagerTask as `port_mapping` was mostly used just for storing `asic_id` information and that can be simply done by `port_dict` instead. Added a helper method `get_asic_id()` method to CmisManagerTask for getting `asic_id` from `logical_port`. fixes sonic-net/sonic-buildimage#18893 Signed-off-by: Wataru Ishida <[email protected]>
This commit fixes DPB support with CMIS transceivers. CmisManagerTask's `port_dict` must be updated according to the port add/remove events. This commit removes the `port_mapping` field from CmisManagerTask as `port_mapping` was mostly used just for storing `asic_id` information and that can be simply done by `port_dict` instead. Added a helper method `get_asic_id()` method to CmisManagerTask for getting `asic_id` from `logical_port`. fixes sonic-net/sonic-buildimage#18893 Signed-off-by: Wataru Ishida <[email protected]>
CmisManagerTask's `port_dict` and `port_mapping` must be updated according to the port add/remove events. Before this commit, `port_mapping` is only intialized when CmisManagerTask is initialized and not updated after that, which was causing KeyError exception when DBP is used. (sonic-net/sonic-buildimage#18893) This commit removes the `port_mapping` field from CmisManagerTask as `port_mapping` was used just for storing `asic_id` information and that can be simply done by `port_dict` instead. Also, this commit updates `port_dict` accoding to the port add/remove events to support DPB. Signed-off-by: Wataru Ishida <[email protected]>
CmisManagerTask's `port_dict` and `port_mapping` must be updated according to the port add/remove events. Before this commit, `port_mapping` is only intialized when CmisManagerTask is initialized and not updated after that, which was causing KeyError exception when DBP is used. (sonic-net/sonic-buildimage#18893) This commit removes the `port_mapping` field from CmisManagerTask as `port_mapping` was used just for storing `asic_id` information and that can be simply done by `port_dict` instead. Also, this commit updates `port_dict` accoding to the port add/remove events to support DPB. Signed-off-by: Wataru Ishida <[email protected]>
Description
The ports of the device are all connected to OSFP cables.
The first time a port is breakout, xcvrd crashes out and then it initializes all ports again.
xcvrd crashes:
Due to xcvrd crashes, xcvrd is initialized again, and TRANSCEIVER INFO will be traversed and filled again.
As a result, the Media type display of the current port is very slow (about two minutes) in show interface status, and it will also affect other ports.
Steps to reproduce the issue:
sudo config interface breakout Ethernet0 8x100G -f -y
Describe the results you received:
Describe the results you expected:
Output of
show version
:Output of
show techsupport
:Additional information you deem important (e.g. issue happens only occasionally):
The text was updated successfully, but these errors were encountered: