-
Notifications
You must be signed in to change notification settings - Fork 4.6k
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
Daemon client fails while closing connection to the daemon #25905
Comments
bot-gradle
added a commit
that referenced
this issue
Jul 27, 2023
…connection Once the daemon client has received the build result from the daemon, it tries to send a "finished" message to the daemon to initiate shutdown of the connection. If the daemon has already shut the connection down from its side, the client should not care since it's preparing to shutdown its side of the connection anyways. If the daemon is actually waiting, but does not receive the message for some reason, it will just timeout and close the connection. This changes the client to ignore any errors while sending the "finished" message so that this scenario does not cause a failure in the client on a potentially successful build. Fixes #25905 Co-authored-by: Gary Hale <gary@gradle.com>
bot-gradle
added a commit
that referenced
this issue
Jul 27, 2023
…connection Once the daemon client has received the build result from the daemon, it tries to send a "finished" message to the daemon to initiate shutdown of the connection. If the daemon has already shut the connection down from its side, the client should not care since it's preparing to shutdown its side of the connection anyways. If the daemon is actually waiting, but does not receive the message for some reason, it will just timeout and close the connection. This changes the client to ignore any errors while sending the "finished" message so that this scenario does not cause a failure in the client on a potentially successful build. Fixes #25905 Co-authored-by: Gary Hale <gary@gradle.com>
bot-gradle
added a commit
that referenced
this issue
Jul 28, 2023
…connection Once the daemon client has received the build result from the daemon, it tries to send a "finished" message to the daemon to initiate shutdown of the connection. If the daemon has already shut the connection down from its side, the client should not care since it's preparing to shutdown its side of the connection anyways. If the daemon is actually waiting, but does not receive the message for some reason, it will just timeout and close the connection. This changes the client to ignore any errors while sending the "finished" message so that this scenario does not cause a failure in the client on a potentially successful build. Fixes #25905 Co-authored-by: Gary Hale <gary@gradle.com>
bot-gradle
added a commit
that referenced
this issue
Jul 29, 2023
…connection Once the daemon client has received the build result from the daemon, it tries to send a "finished" message to the daemon to initiate shutdown of the connection. If the daemon has already shut the connection down from its side, the client should not care since it's preparing to shutdown its side of the connection anyways. If the daemon is actually waiting, but does not receive the message for some reason, it will just timeout and close the connection. This changes the client to ignore any errors while sending the "finished" message so that this scenario does not cause a failure in the client on a potentially successful build. Fixes #25905 Co-authored-by: Gary Hale <gary@gradle.com>
bot-gradle
added a commit
that referenced
this issue
Jul 30, 2023
…connection Once the daemon client has received the build result from the daemon, it tries to send a "finished" message to the daemon to initiate shutdown of the connection. If the daemon has already shut the connection down from its side, the client should not care since it's preparing to shutdown its side of the connection anyways. If the daemon is actually waiting, but does not receive the message for some reason, it will just timeout and close the connection. This changes the client to ignore any errors while sending the "finished" message so that this scenario does not cause a failure in the client on a potentially successful build. Fixes #25905 Co-authored-by: Gary Hale <gary@gradle.com>
bot-gradle
added a commit
that referenced
this issue
Jul 30, 2023
…connection Once the daemon client has received the build result from the daemon, it tries to send a "finished" message to the daemon to initiate shutdown of the connection. If the daemon has already shut the connection down from its side, the client should not care since it's preparing to shutdown its side of the connection anyways. If the daemon is actually waiting, but does not receive the message for some reason, it will just timeout and close the connection. This changes the client to ignore any errors while sending the "finished" message so that this scenario does not cause a failure in the client on a potentially successful build. Fixes #25905 Co-authored-by: Gary Hale <gary@gradle.com>
bot-gradle
added a commit
that referenced
this issue
Jul 30, 2023
…connection Once the daemon client has received the build result from the daemon, it tries to send a "finished" message to the daemon to initiate shutdown of the connection. If the daemon has already shut the connection down from its side, the client should not care since it's preparing to shutdown its side of the connection anyways. If the daemon is actually waiting, but does not receive the message for some reason, it will just timeout and close the connection. This changes the client to ignore any errors while sending the "finished" message so that this scenario does not cause a failure in the client on a potentially successful build. Fixes #25905 Co-authored-by: Gary Hale <gary@gradle.com>
This was referenced Oct 17, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
When a build completes in the daemon, it sends the result back to the daemon client, along with a "build complete" message and then waits for a "finished" message from the client. Once the client receives the complete message, it then sends the "finished" message. The daemon waits for up to 60s to receive the finished message before giving up and closing the connection. There are a few scenarios where this could cause a problem:
Expected Behavior
Since the build itself succeeds, we expect the build invocation to succeed, even if there are some communication failures while closing the connection to the daemon.
Current Behavior
When the client tries to send the "finished" message it gets a socket error, causing the build invocation to fail, even if the build itself succeeded.
The text was updated successfully, but these errors were encountered: