Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Port #19780 to the 2.1 branch. #19803

Merged
merged 1 commit into from
Sep 11, 2018

Conversation

sandreenko
Copy link

@sandreenko sandreenko commented Aug 31, 2018

Description

Fix callKillSet for CORINFO_HELP_ASSIGN_BYREF for Unix x64. The bug caused segfault if GC happened between the point where we reported a struct as dead and the correct last use.

Fixes #19796 and #19361 in the release branch.

Customer Impact

Currently they can get segmentation faults in programs with many threads and big memory consumption.

Regression?

Not a regression.

Risk

Low, it changes behaviour only on x64 Linux. The change for Linux x64 is to keep the same set of registers as Windows does for the helper that shares implementation between them.

* Fix callKillSet for CORINFO_HELP_ASSIGN_BYREF.

on x64.

* Fix typos.
@sandreenko
Copy link
Author

@jkotas How do we usually test and prove such changes for porting into a release branch? Is it possible to ask our customers to apply the fix before the merge?

@jkotas
Copy link
Member

jkotas commented Sep 1, 2018

https://github.com/dotnet/coreclr/issues/19361#issuecomment-414716191 has a standalone repro for the crash that you can run. This repro was distilled out of the real workload hitting the crash. If you can check that you see the crash without your fix on your machine and it goes away with your fix, I would consider it good enough proof that it is fixing the bug.

@jkotas
Copy link
Member

jkotas commented Sep 1, 2018

@corruptmem @legigor This is fix for #19361 and #19796. Are you are interested in trying it before it is released? The instructions how to build a private version of CoreCLR and use it in your app are at https://github.com/dotnet/coreclr/blob/release/2.1/Documentation/workflow/UsingYourBuild.md (make sure to build release version - using "./build.sh release skiptests").

@sandreenko
Copy link
Author

#19361 (comment) has a standalone repro for the crash that you can run. This repro was distilled out of the real workload hitting the crash. If you can check that you see the crash without your fix on your machine and it goes away with your fix, I would consider it good enough proof that it is fixing the bug.#19361 (comment) has a standalone repro for the crash that you can run. This repro was distilled out of the real workload hitting the crash. If you can check that you see the crash without your fix on your machine and it goes away with your fix, I would consider it good enough proof that it is fixing the bug.

I have checked that the standalone repro crashes without the fix and works with it.

@sandreenko
Copy link
Author

PTAL @RussKeldorph @dotnet/jit-contrib

@sandreenko
Copy link
Author

@RussKeldorph could you please take a look?

@RussKeldorph RussKeldorph added the Servicing-consider Issue for next servicing release review label Sep 6, 2018
@jamshedd jamshedd added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Sep 6, 2018
@jamshedd
Copy link
Member

jamshedd commented Sep 6, 2018

Approved for 2.1.5

@danmoseley
Copy link
Member

@sandreenko @RussKeldorph this needs to get committed today or possibly tomorrow or it will miss 2.1.5 and need to go to shiproom again. Is it possible to get CI green and code reviews and merge today?

@sandreenko
Copy link
Author

@dotnet-bot test
Windows_NT arm64 Cross Checked Innerloop Build and Test

@sandreenko
Copy link
Author

@danmosemsft I was told that "Big shiproom will merge when branch is open.". Do I need to merge it?

@CarolEidt, @jashook could you please review this? This is the change from #19780 for the release branch.

@danmoseley
Copy link
Member

danmoseley commented Sep 11, 2018

I was told that "Big shiproom will merge when branch is open.". Do I need to merge it?

@sandreenko Yes this is true, but only if CI is green and the PR has got code review signoff. Probably that was why they did not merge. In this case, once you have got those, please do feel free to merge yourself so we can get it in today.

@jashook
Copy link

jashook commented Sep 11, 2018

Arm64 Failure looks like infrastructure problems in the branch. Seeing that windows arm64 in this branch is unsupported, CI is clean and this seems ready to go.

@sandreenko sandreenko merged commit cb730c5 into dotnet:release/2.1 Sep 11, 2018
@sandreenko sandreenko deleted the portGCFixTo2.1 branch September 11, 2018 20:09
@danmoseley
Copy link
Member

Thanks!

@danmoseley danmoseley added this to the 2.1.5 milestone Sep 13, 2018
sandreenko pushed a commit to sandreenko/coreclr that referenced this pull request Nov 6, 2018
…otnet#19803)

* Fix callKillSet for CORINFO_HELP_ASSIGN_BYREF.

on x64.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-x64 area-CodeGen os-linux Linux OS (any supported distro) reliability Servicing-approved Approved for servicing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants