-
Notifications
You must be signed in to change notification settings - Fork 214
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
Daedalus IPC working intermittently on windows #1036
Milestone
Comments
2 tasks
iohk-bors bot
added a commit
that referenced
this issue
Nov 14, 2019
1037: Fix DaedalusIPC race-condition when sending 'Started' too quickly r=KtorZ a=KtorZ # Issue Number <!-- Put here a reference to the issue this PR relates to and which requirements it tackles --> #1036 # Overview <!-- Detail in a few bullet points the work accomplished in this PR --> - [x] I have artificially reproduced the issue in our mock-daedalus and saw it fails (wait infinitely) - [x] I have added some retry logic to re-send `Started` every second if Daedalus has shown any sign of life. # Comments <!-- Additional comments or screenshots to attach if any --> <!-- Don't forget to: ✓ Self-review your changes to make sure nothing unexpected slipped through ✓ Assign yourself to the PR ✓ Assign one or several reviewer(s) ✓ Once created, link this PR to its corresponding ticket ✓ Acknowledge any changes required to the Wiki --> Co-authored-by: KtorZ <[email protected]>
iohk-bors bot
added a commit
that referenced
this issue
Nov 14, 2019
1037: Fix DaedalusIPC race-condition when sending 'Started' too quickly r=KtorZ a=KtorZ # Issue Number <!-- Put here a reference to the issue this PR relates to and which requirements it tackles --> #1036 # Overview <!-- Detail in a few bullet points the work accomplished in this PR --> - [x] I have artificially reproduced the issue in our mock-daedalus and saw it fails (wait infinitely) - [x] I have added some retry logic to re-send `Started` every second if Daedalus has shown any sign of life. # Comments <!-- Additional comments or screenshots to attach if any --> <!-- Don't forget to: ✓ Self-review your changes to make sure nothing unexpected slipped through ✓ Assign yourself to the PR ✓ Assign one or several reviewer(s) ✓ Once created, link this PR to its corresponding ticket ✓ Acknowledge any changes required to the Wiki --> Co-authored-by: KtorZ <[email protected]>
Sending IPC messages down the ipc channel on Windows seems to block on sending the 3rd message. From that point on the daedalusIPC function is stuck. I have added a test case on the rvl/1036/daedalus-ipc-race branch. |
KtorZ
changed the title
Race condition in DaedalusIPC: not receiving 'Started'
Race condition in DaedalusIPC: not receiving 'Started' nor 'ReplyPort'
Nov 15, 2019
KtorZ
changed the title
Race condition in DaedalusIPC: not receiving 'Started' nor 'ReplyPort'
Daedalus IPC working intermittently on windows
Nov 15, 2019
iohk-bors bot
added a commit
that referenced
this issue
Nov 18, 2019
1044: Fix DaedalusIPC startup issue on Windows r=piotr-iohk a=rvl Relates to #1036 # Overview It's not possible to concurrently read and write to Windows named pipes. One of the operations will block until the other completes. The order which this happens in determines whether or not Daedalus receives a `ReplyPort` message on Windows. This PR changes `daedalusIPC` to run sends and receives sequentially. It will fix some of the "Waiting for network..." backend connection issues on Daedalus Windows. # Comments - [x] Tested in Daedalus on Windows - [x] Tested in Daedalus on Linux Later - We should simplify the message scheme so that there is a single message `WalletApiPort <int>`, and no unnecessary request/response. Co-authored-by: Rodney Lorrimar <[email protected]>
rvl
added a commit
that referenced
this issue
Nov 18, 2019
iohk-bors bot
added a commit
that referenced
this issue
Nov 18, 2019
1044: Fix DaedalusIPC startup issue on Windows r=rvl a=rvl Relates to #1036 # Overview It's not possible to concurrently read and write to Windows named pipes. One of the operations will block until the other completes. The order which this happens in determines whether or not Daedalus receives a `ReplyPort` message on Windows. This PR changes `daedalusIPC` to run sends and receives sequentially. It will fix some of the "Waiting for network..." backend connection issues on Daedalus Windows. # Comments - [x] Tested in Daedalus on Windows - [x] Tested in Daedalus on Linux Later - We should simplify the message scheme so that there is a single message `WalletApiPort <int>`, and no unnecessary request/response. Co-authored-by: Rodney Lorrimar <[email protected]>
lgtm. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Context
On some machines, Daedalus remains stuck to the splash screen after starting the wallet backend. From looking at the logs, it seems that it never actually receives a
Started
message from the wallet backend IPC server.This is somewhat strange and suggest that it'd take too long for Daedalus to put their listen handler on the process in such a way that they would miss the initial
Started
message now sent very early by the wallet backend.Steps to Reproduce
Expected behavior
Actual behavior
Resolution Plan
Retry sendingStarted
until we receive a first sign of life for Daedalus (i.e. aQueryPort
request)PR
master
QA
The text was updated successfully, but these errors were encountered: