-
Notifications
You must be signed in to change notification settings - Fork 2.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
Add known issue for 470006 - GC large object crashes #613
Conversation
Added a known issue, written by Chris Ahna, about GC crashes when we have a high rate of large object allocations and frees.
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 looks good, @leculver. I've left a number of mostly minor comments.
@@ -0,0 +1,36 @@ | |||
# Rare crashes can occur when background GC is enabled in applications which allocate and free large objects at a high rate |
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.
which --> that
|
||
## Symptoms | ||
|
||
When background GC is enabled, an application running against .NET Framework 4.7.1 experiences |
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.
against --> on (both occurrences)
which --> that
|
||
## Cause | ||
|
||
Changes to the GC in .NET Framework 4.7.1 caused this problem. |
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.
There's no need for this paragraph. This section can begin, ".NET Framework 4.7.1 includes changes that improve background GC performance. Because of these changes, a rare combination of factors can cause the background GC..."
|
||
## Impact | ||
|
||
This problem impacts applications which run with the background GC enabled and which also allocate |
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.
which --> that (2 occurrences)
and free large objects at a high rate. As described in [this article](https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals#the-managed-heap), | ||
a large object is any object that is 85,000 bytes or larger in size. | ||
|
||
This problem is rare, and is more likely to occur when running against the x86 version of the |
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.
against --> on (2 occurrences)
might as well qualify both .NET Frameworks --> .NET Framework 4.7.1
## Impact | ||
|
||
This problem impacts applications which run with the background GC enabled and which also allocate | ||
and free large objects at a high rate. As described in [this article](https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals#the-managed-heap), |
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.
Rather than a reference to "this article", which tends to be a bit mysterious not really help the reader decide whether they want to follow the link, it 's best to include the title: [Fundamentals of Garbage Collection]
## Workarounds | ||
|
||
The most practical workaround is to disable the background GC using the configuration file | ||
elements described in [this article](https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/runtime/gcconcurrent-element). |
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.
Similarly, here it's best to be more detailed: by setting the enabled
attribute of the [<gcConcurrent> element](https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/runtime/gcconcurrent-element) in the <runtime> section of your application configuration file to false
.
@@ -4,6 +4,7 @@ | |||
This document lists the known issues that you may experience after you install the Microsoft .NET Framework 4.7.1. | |||
|
|||
## Product issues for the .NET Framework 4.7.1 | |||
- [470006 - GC - Rare crashes can occur when background GC is enabled in applications which allocate and free large objects at a high rate](https://github.com/Microsoft/dotnet/blob/master/releases/net471/KnownIssues/470006-GC%20Crashes%20with%20high%20rate%20of%20large%20object%20allocation.md) |
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.
which --> that
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.
Instead of "470006 - GC -" can we maybe say 470006 - Runtime -"?
|
||
## Resolution | ||
|
||
This problem is fixed in .NET Framework 4.7.2. |
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.
Lets link .NET Framework 4.7.2 that will automatically get updated to RTM when RTM goes live.
Same for earlier known issue for 517815.
@rpetrusha @vivmishra I have incorporated all requested feedback. |
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.
LGTM, @leculver. This is good to merge. If you agree, do you want to merge the PR, @vivmishra?
Added a known issue, written by Chris Ahna, about GC crashes when we
have a high rate of large object allocations and frees.