-
Notifications
You must be signed in to change notification settings - Fork 42
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
Make boot great again #83
base: main
Are you sure you want to change the base?
Make boot great again #83
Conversation
…e-flag Adds possibility to configure failure flag
Add nonzero win32 exit code when stopping service in ensure block
I don't remember why I closed it honestly, as we are still using that "patch" on our side to prevent the service from timing out |
Quality Gate passedIssues Measures |
Thanks for your quick response! I thought it could be caused by using none-ruby threads, and I have made a PR #85. I have confirmed that inserting
|
This seems to track with #84 and the race around service management, but I will say that sleep as a race condition breaker makes me generally nervous, because without actually addressing the race, there's likely to be a set of systems where the race triggers anyhow, particularly under load. That having been said: I suspect at least part of this is needing the equivlent of a thread.yield (think pthreads yield, not ruby yield) rather than busy waiting to allow for whatever set of locks are being held in that race, because I was totally able to reproduce the behaviour, and this did seem to fix it every single time. So there is that, my inclination, is that in the absense of a better solution, this makes sense to do. The PR text says just the sleep() stuff, but I do see a bunch of other changes in there - those changes do seem to make sense to me too, to be honest, but it would be good to enumerate what they're doing too and why they're doing it |
Oh that's because I started my sleep change on top of my collegue's changes which are actually coming from #82 and they just got brought foward in my PR I'll rebase just my commit, as there is already another MR just focusing on those other changes already |
I (the colleague mentioned above 😄 ) can also just double-confirm that these issues which this MR solves indeed started happening pretty much with our upgrade to ruby 3. |
Description
Using some black magic with sleep(0.1) to give some breathing room for a process check for windows, surprisingly allowing our service to boot in no time instead of timing out for not clear reason