-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Fix for possible false-positive GC delays #8483
Conversation
src/Orleans.Runtime/Silo/Watchdog.cs
Outdated
|
||
lastWatchdogCheck = now; | ||
|
||
this.participantThread = new Thread(this.RunParticipantCheck) | ||
{ | ||
IsBackground = true, | ||
Name = "Orleans.Runtime.Watchdog", |
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.
These two threads have the same name but different behavior.
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.
Changed that, thanks.
This seems ok to me, but I would rather it be refactored to still use a single thread, just accounting for the time spend checking other participants. Eg, by extending the try-finally block surrounding EDIT: by the way, I welcome the gist of the change: reducing false-positive warnings. |
I believe that by using a single thread and delay the next check, we may cause false negatives, and since we already faced a lot of challenges by GC pressure and thread starvation, we would like this check to be as reliable as possible. |
src/Orleans.Runtime/Silo/Watchdog.cs
Outdated
this.gcThread = new Thread(this.RunGCCheck) | ||
{ | ||
IsBackground = true, | ||
Name = "Orleans.Runtime.Watchdog.GCMonitor", |
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.
GCMonitor is a misnomer, since it is monitoring for execution stalls in general. Maybe call it StallMonitor or RuntimeMonitor
In the application of our organization, we noticed sporadically some
.NET Runtime Platform stalled for...
warnings, even with very small GC object counts, so after a code review we suspect that the additional checks inWatchdogHeartbeatTick
may be responsible for a false-positive GC delay.Microsoft Reviewers: Open in CodeFlow