-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Difficulties diagnosing SIGSEV in dotnet core 2.2.8 #485
Comments
cc: @janvorli |
The thread #1 isn't most likely the one that's crashing. When you load crashdump, it doesn't show the crashing thread as the current one and it also prints the "stop reason = signal SIGSEGV" for each thread. |
Hello, |
My guess is that the crashing thread is most likely the thread 6 (OS Thread Id: 0x93). It could also possibly be the thread 1, but it is definitely not any other.
|
@taion809 as an aside note that 2.2 is out of support this month. You will likely want to move to 3.1 which will be in support for 3 years. See https://dotnet.microsoft.com/platform/support/policy/dotnet-core (needs an update for the 3.1 release that just occurred) |
@janvorli attached thanks |
Ok, so it is really the thread 1, the CLREventBase::Set() gets NULL "this" pointer. The actual place where the CLREventBase::Set is called is here: runtime/src/coreclr/src/vm/syncblk.cpp Line 2916 in 285911d
On the call stack it looks a bit different, but that's just because of inlining. That means that the m_EventWait of the WaitEventLink that we get from ThreadQueue::DequeueThread(this) is NULL. It could be due to a memory corruption or another bug. I am not sure if that's something that was fixed in 3.0 or if it is something that is still unfixed and surfaces due to the specifics of your app. How easy is to repro the issue in your app? |
We're running in docker containers that are being scheduled by nomad so it's not super easy to obtain a coredump or a procdump-on-crash due to running in unprivileged mode but is happening at roughly once or twice a day in production. |
Is it possible that the thread was already dequeued |
I was able to reproduce this locally and obtained a minidump (as well as a linux coredump), however it appears trying to dump the stack causes lldb to crash with its own segfault. clrthreads.txt, syncblk.txt, clrsaaf.txt, and regreadmini.txt were taken from the minidump clrthreads.txt |
@taion809 thank you for the additional details. Can you also please dump the native stack traces using |
Here is the output, fyi we're running a soak test of the same code running dotnetcore 3.1, we will know more tomorrow. |
Hello, |
any idea what might be the issue here? |
@taion809 I am sorry for the late response. I've made a mistake in the instructions, it should have been:
|
Hello, Thanks! |
Hi, Thanks so much for all the help! |
Hello,
We're currently running into a segfault issue with a dotnet core application running in a linux docker container. We have managed to produce a coredump on signal SIGSEV however our investigation hasn't returned anything related to our code specifically.
Are there additional steps we can take to debug what may be causing this segfault?
Info
dotnet --info
bt
clrstack -all -a
clrthreads
The text was updated successfully, but these errors were encountered: