Skip to content
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

Merged
merged 3 commits into from
Feb 6, 2018

Conversation

leculver
Copy link
Contributor

@leculver leculver commented Feb 6, 2018

Added a known issue, written by Chris Ahna, about GC crashes when we
have a high rate of large object allocations and frees.

Added a known issue, written by Chris Ahna, about GC crashes when we
have a high rate of large object allocations and frees.
Copy link

@rpetrusha rpetrusha left a 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

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

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.

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

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

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),

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).

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)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

which --> that

Copy link
Contributor

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.
Copy link
Contributor

@vivmishra vivmishra Feb 6, 2018

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.

@leculver
Copy link
Contributor Author

leculver commented Feb 6, 2018

@rpetrusha @vivmishra I have incorporated all requested feedback.

Copy link

@rpetrusha rpetrusha left a 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?

@leculver leculver merged commit 9a1e233 into microsoft:master Feb 6, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants