-
-
Notifications
You must be signed in to change notification settings - Fork 398
[breaking] Fix gRPC streaming synchronization on close #1787
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
[breaking] Fix gRPC streaming synchronization on close #1787
Conversation
9a0f393
to
d9b973a
Compare
I've also found that |
Well, actually I found an implementation of buffered pipes under MIT license, that seems to fix the issue. I've updated the PR, now it should be production-ready. |
94ad507
to
08f22db
Compare
linked to #1073, this change resolves the issue of missing compile output in the IDE. |
Co-authored-by: per1234 <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This fixes arduino/arduino-ide#1073 for me.
Thanks Cristian!
Please check if the PR fulfills these requirements
before creating one)
our contributing guidelines
UPGRADING.md
has been updated with a migration guide (for breaking changes)What kind of change does this PR introduce?
Adds some synchronization to properly handle streaming close.
What is the current behavior?
Sometimes the last part of the streaming call is lost (it could be the last piece of the compile output for example).
Moreover, the gRPC thread is leaked, even if the amount of resources leakied is negligible, this may add up if the daemon is left running for a long time with a huge number of compiles.
This issue has been there for a long time, the gRPC rate-limiting implemented here #1759 just made it more visible.
What is the new behavior?
The streaming synchronization is now properly handled.
Does this PR introduce a breaking change, and is titled accordingly?
The function that we use internally
FeedStreamTo
has been changed.Anyway since this is a public-facing API the change has been documented.