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
createdump segfaults with ASP.NET Core 2.2 applications #11645
Comments
cc @mikem8361 |
Is there anyway I could get the test app? The binary would be enough. |
As @tmds said in the original post, this was just |
I’ve been able to repro the problem and currently investigating.
|
The problem is the ClrDataModule Request faulted on a dynamic module getting the file layout flag. Fixed the Request code not get the file layout and in the crash dump code skip any dynamic modules.
Issue #21485: fix EnumProcessModules hPseudoCurrentProcess bug. Added handle reference. Issue #21484: createdump segfaults with ASP.NET app The problem is the ClrDataModule Request faulted on a dynamic module getting the file layout flag. Fixed the Request code not get the file layout and in the crash dump code skip any dynamic modules.
Issue #21485: fix EnumProcessModules hPseudoCurrentProcess bug. Added handle reference. Issue #21484: createdump segfaults with ASP.NET app The problem is the ClrDataModule Request faulted on a dynamic module getting the file layout flag. Fixed the Request code not get the file layout and in the crash dump code skip any dynamic modules.
Issue #21484: createdump segfaults with ASP.NET app The problem is the ClrDataModule Request faulted on a dynamic module getting the file layout flag. Fixed the Request code not get the file layout and in the crash dump code skip any dynamic modules. Issue #21485: fix EnumProcessModules hPseudoCurrentProcess bug.
hi @mikem8361 , patched createdump/libmscordac.so still crash. BT indicates segfault site is https://github.com/dotnet/coreclr/blob/b24eee89da14b63be629b5bab80d24990316e1ba/src/debug/daccess/request.cpp#L3808-L3808 , which happens before https://github.com/dotnet/coreclr/blob/b24eee89da14b63be629b5bab80d24990316e1ba/src/debug/createdump/crashinfo.cpp#L656 Since segfault happens before the BTW, createdump works well in |
The segfault I repro'ed locally was in the DAC task.cpp RequestGetModuleData on a "dynamic" module the asp.net app had. It was on Ubuntu 14.04 instead of Fedora and it was the version 2.2.101 SDK instead of 2.2.100. I fixed a real problem but just not the one you ran into. I'll try to repro on a Fedora docker image. |
I'm curious how you built the patched version of 2.2 with my fixes? Did you build and use all of the coreclr repo binaries? Because you can't just take createdump and libmscordaccore.so. You need the rest (matching libcoreclr.so, etc.). |
yes |
GC heap globals like ephemeral_heap_segment and finalize_queue were null/invalid for the simple webapp's heap. Added validity checks before dereferencing them. The dynamic module fix is still needed, createdump would have still hit this problem after the GC heap fix.
@sillyousu, I just pushed a fix for your actually problem. @noahfalk, can you review the latest commit? |
@noahfalk, see PR dotnet/coreclr#21534 |
GC heap globals like ephemeral_heap_segment and finalize_queue are null/invalid for a server GC. Add a check to skip the workstation GC memory enumeration if server. The server memory enumeration already skips if workstation GC. The dynamic module fix is still needed, createdump would have still hit this problem after the GC heap fix.
GC heap globals like ephemeral_heap_segment and finalize_queue are null/invalid for a server GC. Add a check to skip the workstation GC memory enumeration if server. The server memory enumeration already skips if workstation GC. The dynamic module fix is still needed, createdump would have still hit this problem after the GC heap fix. Report the entire generation table in EnumWksGlobalMemoryRegions and EnumSvrGlobalMemoryRegions (dotnet#20233).
GC heap globals like ephemeral_heap_segment and finalize_queue are null/invalid for a server GC. Add a check to skip the workstation GC memory enumeration if server. The server memory enumeration already skips if workstation GC.
Thanks, @mikem8361.
|
Add the “stripSymbols” option to the “build.sh” command and it should generate *.dbg files that contain the symbols.
|
GC heap globals like ephemeral_heap_segment and finalize_queue are null/invalid for a server GC. Add a check to skip the workstation GC memory enumeration if server. The server memory enumeration already skips if workstation GC.
GC heap globals like ephemeral_heap_segment and finalize_queue are null/invalid for a server GC. Add a check to skip the workstation GC memory enumeration if server. The server memory enumeration already skips if workstation GC.
Issue #21484: createdump segfaults with ASP.NET app The problem is the ClrDataModule Request faulted on a dynamic module getting the file layout flag. Fixed the Request code not get the file layout and in the crash dump code skip any dynamic modules. Issue #21485: fix EnumProcessModules hPseudoCurrentProcess bug.
GC heap globals like ephemeral_heap_segment and finalize_queue are null/invalid for a server GC. Add a check to skip the workstation GC memory enumeration if server. The server memory enumeration already skips if workstation GC. The dynamic module fix is still needed, createdump would have still hit this problem after the GC heap fix. Report the entire generation table in EnumWksGlobalMemoryRegions and EnumSvrGlobalMemoryRegions (#20233).
Fixed. |
This was recently fixed upstream. See : https://github.com/dotnet/coreclr/issues/21484
This was recently fixed upstream. See : https://github.com/dotnet/coreclr/issues/21484
This was recently fixed upstream. See: https://github.com/dotnet/coreclr/issues/21484
This was recently fixed upstream. See: https://github.com/dotnet/coreclr/issues/21484
Using the 2.2 sdk:
Create a new ASP.NET Core app using the
web
templatePublish the app
Run it:
dotnet <myapp.dll>
Find its pid and run
createdump <pid>
.createdump segfaults:
Dotnet info:
The text was updated successfully, but these errors were encountered: