-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Description
This is related to an existing reported issue here. The old issue is related to .net core 2.2. I've now updated to the latest version of .net core (e.g. 3.1) and the issue is still there.
Describe the bug
We are seeing the following error from Kestrel heartbeat:
Heartbeat.OnHeartbeat
System.ArgumentNullException: Value cannot be null.
at System.Threading.Monitor.ReliableEnter(Object obj, Boolean& lockTaken)
at Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.Internal.TransportConnection.TickHeartbeat()
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ConnectionManager.Walk(Action`1 callback)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.Heartbeat.OnHeartbeat()
When the above error happened, the application crashed.
I was not able to get more information in the docs to understand what that error means.
To Reproduce
We are using the following:
- ASP.NET Core SDK 3.1 (we are using this docker image to build the application: mcr.microsoft.com/dotnet/core/sdk:3.1)
- AWS Linux 2 AMI
- SQL Server backend (not sure that matter)
Exceptions (if any)
When debugging using "lldb", I got the following trace:
thread dotnet/aspnetcore#65, name = '******', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
frame #0: 0x00007fa5538730ba libcoreclr.soObject::TryEnterObjMonitorSpinHelper() + 42 libcoreclr.soObject::TryEnterObjMonitorSpinHelper:
-> 0x7fa5538730ba <+42>: movl -0x4(%rbx), %eax
0x7fa5538730bd <+45>: testl $0x1800ffff, %eax ; imm = 0x1800FFFF
0x7fa5538730c2 <+50>: je 0x7fa5538730f4 ; <+100>
0x7fa5538730c4 <+52>: testl $0x8000000, %eax ; imm = 0x8000000
OS Thread Id: 0x14a7 (65)
TEB information is not available so a stack size of 0xFFFF is assumed
Current frame: libcoreclr.so!Object::TryEnterObjMonitorSpinHelper() + 0x2a
Child-SP RetAddr Caller, Callee
00007F9FFBFFE600 00007fa55386b45a libcoreclr.so!JIT_MonReliableEnter_Portable + 0x1a, calling libcoreclr.so!Object::TryEnterObjMonitorSpinHelper()
00007F9FFBFFE620 00007fa4e2af1d3a (MethodDesc 00007fa4deb6bd20 + 0x4a Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.KestrelConnection.TickHeartbeat()), calling libcoreclr.so!JIT_MonReliableEnter_Portable
00007F9FFBFFE6A0 00007fa4e005f8b0 (MethodDesc 00007fa4deb0fad8 + 0xd0 Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ConnectionManager.Walk(System.Action1<Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.KestrelConnection>)) 00007F9FFBFFE6B0 00007fa5538668c9 libcoreclr.so!JIT_NewS_MP_FastPortable(CORINFO_CLASS_STRUCT_*) + 0x19, calling libcoreclr.so!__tls_get_addr 00007F9FFBFFE700 00007fa4e005f784 (MethodDesc 00007fa4deb0fdd8 + 0x54 Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.HeartbeatManager.OnHeartbeat(System.DateTimeOffset)), calling (MethodDesc 00007fa4deb0fad8 + 0 Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ConnectionManager.Walk(System.Action1<Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.KestrelConnection>))
00007F9FFBFFE730 00007fa4e005e941 (MethodDesc 00007fa4deb0eee8 + 0xb1 Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.Heartbeat.OnHeartbeat())
00007F9FFBFFE7A0 00007fa4e00429bd (MethodDesc 00007fa4da603f30 + 0x8d System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object))
00007F9FFBFFE7F0 00007fa4e0042906 (MethodDesc 00007fa4dba127f0 + 0x116 System.Threading.TimerQueueTimer.CallCallback(Boolean)), calling (MethodDesc 00007fa4da603f30 + 0 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object))
00007F9FFBFFE830 00007fa4e00426d9 (MethodDesc 00007fa4dba127c0 + 0x79 System.Threading.TimerQueueTimer.Fire(Boolean)), calling (MethodDesc 00007fa4dba127f0 + 0 System.Threading.TimerQueueTimer.CallCallback(Boolean))
00007F9FFBFFE850 00007fa4e00413e8 (MethodDesc 00007fa4dba12c40 + 0xc8 System.Threading.TimerQueue.EnsureTimerFiresBy(UInt32)), calling libcoreclr.so!GetTickCount64
00007F9FFBFFE880 00007fa4e0041d23 (MethodDesc 00007fa4dba12c58 + 0x243 System.Threading.TimerQueue.FireNextTimers()), calling (MethodDesc 00007fa4dba127c0 + 0 System.Threading.TimerQueueTimer.Fire(Boolean))
00007F9FFBFFE8F0 00007fa5538f85ff libcoreclr.so!CallDescrWorkerInternal + 0x7c
00007F9FFBFFE910 00007fa553828445 libcoreclr.so!CallDescrWorkerWithHandler(CallDescrData*, int) + 0x75, calling libcoreclr.so!CallDescrWorkerInternal
00007F9FFBFFE950 00007fa553828f20 libcoreclr.so!MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 0x4f0, calling libcoreclr.so!CallDescrWorkerWithHandler(CallDescrData*, int)
00007F9FFBFFE960 00007fa553b0611a libcoreclr.so!UnicodeToUTF8 + 0xca, calling libcoreclr.so!UTF8Encoding::GetBytes(char16_t*, int, unsigned char*, int)
00007F9FFBFFE9B0 00007fa553b0d2ff libcoreclr.so!EnvironGetenv + 0xbf, calling libcoreclr.so!CorUnix::InternalLeaveCriticalSection(CorUnix::CPalThread*, _CRITICAL_SECTION*)
00007F9FFBFFE9E0 00007fa553b0df2d libcoreclr.so!SetLastError + 0xd, calling libcoreclr.so!__errno_location
00007F9FFBFFEA40 00007fa553b0d47d libcoreclr.so!GetEnvironmentVariableW + 0x13d, calling libcoreclr.so!PAL_free
00007F9FFBFFEB20 00007fa553973f56 libcoreclr.so!AppDomainTimerCallback_Worker(void*) + 0x46, calling libcoreclr.so!MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int)
00007F9FFBFFEC30 00007fa5537fa645 libcoreclr.so!ManagedThreadBase_DispatchOuter(ManagedThreadCallState*) + 0x155
00007F9FFBFFED50 00007fa5537facad libcoreclr.so!ManagedThreadBase::ThreadPool(void ()(void), void*) + 0x2d, calling libcoreclr.so!ManagedThreadBase_DispatchOuter(ManagedThreadCallState*)
00007F9FFBFFED80 00007fa553974065 libcoreclr.so!AppDomainTimerCallback(void*, unsigned char) + 0xe5, calling libcoreclr.so!ManagedThreadBase::ThreadPool(void ()(void), void*)
00007F9FFBFFEDB0 00007fa55381ce27 libcoreclr.so!ThreadpoolMgr::AsyncTimerCallbackCompletion(void*) + 0xb7
00007F9FFBFFEDC0 00007fa55385d8c1 libcoreclr.so!EEHeapFreeInProcessHeap(unsigned int, void*) + 0x31, calling libcoreclr.so!HeapFree
00007F9FFBFFEE70 00007fa553819999 libcoreclr.so!ThreadpoolMgr::WorkerThreadStart(void*) + 0x4d9
00007F9FFBFFEED0 00007fa553b2c73d libcoreclr.so!CorUnix::CPalThread::ThreadEntry(void*) + 0x15d
00007F9FFBFFEEF0 00007fa5547ddfa3 libpthread.so.0!start_thread + 0xf3
00007F9FFBFFEFB0 00007fa5543e84cf libc.so.6!clone + 0x3f
I also have the process dump. We can figure out a mechanism to send it through if needed.
Thanks.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status