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

Retry connection to node on MuxSDU*Timeout error #3053

Merged
merged 1 commit into from
Dec 15, 2021

Conversation

HeinrichApfelmus
Copy link
Contributor

Issue number

ADP-1301

Overview

This pull request fixes an issue where a wallet would lose the connection to its local node due to a MuxSDUReadTimeout.

Details

A MuxSDUReadTimeout or MuxSDUWriteTimeout is thrown when the bandwidth of the node-to-client inter-process communication (IPC) has deteriorated unexpectedly. Specifially, the ouroboros-network code will close the IPC socket if it did not yield data after a 30 second timeout (sduTimeout).

Chances are that the system is just overloaded and wasn't able to handle the data going through the socket connection in a timely manner. It make sense for the wallet to reconnect its local node after a delay. To give the system a chance to catch up, it also seems reasonable to choose this delay to be of the same order of magnitude as the original timeout; here we specifically choose 30 seconds.

Comments

As the issue likely involves system overload, I do not know how to test this in an automated fashion.

These errors are thrown when the bandwidth of the node-to-client inter-process communication (IPC) has deteriorated and didn't yield data for 30 seconds. Chances are that the system is overloaded and we just need to retry after a delay.
@piotr-iohk
Copy link
Contributor

As the issue likely involves system overload, I do not know how to test this in an automated fashion.

Me neither. Nor how to produce this exception on the node side. 🤔

For now I've asked @dmitrii-gaico to check on his Daedalus instance where the issue was happening for him with cardano-wallet replaced on his Daedalus with the one from this PR (https://hydra.iohk.io/job/Cardano/cardano-wallet-pr-3053/cardano-wallet-macos64/). 🙏

Copy link
Contributor

@piotr-iohk piotr-iohk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dmitrii-gaico says:

App is syncing for already 2 hours and wallet is rock solid!

🎉

@piotr-iohk
Copy link
Contributor

bors r+

@rvl rvl assigned rvl and HeinrichApfelmus and unassigned rvl Dec 15, 2021
@iohk-bors
Copy link
Contributor

iohk-bors bot commented Dec 15, 2021

Build succeeded:

@iohk-bors iohk-bors bot merged commit 9fefef6 into master Dec 15, 2021
@iohk-bors iohk-bors bot deleted the HeinrichApfelmus/ADP-1301 branch December 15, 2021 16:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants