Skip to content

Crash in GC on arm64 #49859

@peters

Description

@peters

Description

.NET Runtime crash in GC with stack.

libcoreclr.so!sigsegv_handler(int code, siginfo_t * siginfo, void * context) Line 572	C++
<signal handler called>	
libcoreclr.so!MethodTable::GetFlag(const MethodTable * this, MethodTable::WFLAGS_HIGH_ENUM flag) Line 3705	C++
libcoreclr.so!MethodTable::HasComponentSize(const MethodTable * this) Line 1688	C++
libcoreclr.so!SVR::my_get_size(Object * ob) Line 9543	C++
libcoreclr.so!SVR::gc_heap::background_mark_simple1(SVR::gc_heap * this, uint8_t * oo, int thread) Line 19516	C++
libcoreclr.so!SVR::gc_heap::background_mark_simple(SVR::gc_heap * this, uint8_t * o, int thread) Line 19711	C++
libcoreclr.so!SVR::gc_heap::background_mark_object(SVR::gc_heap * this, uint8_t * o, int thread) Line 19723	C++
libcoreclr.so!SVR::gc_heap::background_drain_mark_list(SVR::gc_heap * this, int thread) Line 26190	C++
libcoreclr.so!SVR::gc_heap::background_mark_phase(SVR::gc_heap * this) Line 26982	C++
libcoreclr.so!SVR::gc_heap::gc1(SVR::gc_heap * this) Line 16683	C++
libcoreclr.so!SVR::gc_heap::bgc_thread_function(SVR::gc_heap * this) Line 28113	C++
libcoreclr.so!(anonymous namespace)::CreateSuspendableThread(void (*)(void*), void*, char16_t const*)::$_0::operator()(void*) const(void * argument) Line 1382	C++
libcoreclr.so!(anonymous namespace)::CreateSuspendableThread(void (*)(void*), void*, char16_t const*)::$_0::__invoke(void*)(void * argument) Line 1362	C++
libcoreclr.so!CorUnix::CPalThread::ThreadEntry(void * pvParam) Line 1845	C++
libpthread.so.0!start_thread(void * arg) Line 463	C
libc.so.6!thread_start() Line 78	C++

image
image

The device the crash occurred on is a Jetson AGX XAVIER running Jetpack SDK 4.5.1

Configuration

GC

<ServerGarbageCollection>true</ServerGarbageCollection>
<ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>
<RetainVMGarbageCollection>false</RetainVMGarbageCollection>

OS DETAILS

NAME="Ubuntu"
VERSION="18.04.5 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.5 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic

RUNTIME DETAILS

The application is published self-contained on linux-arm64.

.NET SDK (reflecting any global.json):
 Version:   5.0.201
 Commit:    a09bd5c86c

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  18.04
 OS Platform: Linux
 RID:         ubuntu.18.04-arm64
 Base Path:   /home/youpark/dotnet/sdk/5.0.201/

Host (useful for support):
  Version: 5.0.4
  Commit:  f27d337295

.NET SDKs installed:
  5.0.201 [/home/youpark/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 5.0.1 [/home/youpark/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.2 [/home/youpark/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.3 [/home/youpark/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.4 [/home/youpark/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 5.0.1 [/home/youpark/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.2 [/home/youpark/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.3 [/home/youpark/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.4 [/home/youpark/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET runtimes or SDKs:
  https://aka.ms/dotnet-download

Environment

# Enable .net crash dump
export COMPlus_DbgEnableMiniDump=1
export COMPlus_DbgMiniDumpName=/media/youpark/memorycard/core.minidump.%p
export COMPlus_DbgMiniDumpType=4

# Disable managed debug/attach
export COMPlus_EnableDiagnostics=0
export COMPLUS_ReadyToRun=0

# GC STRESS
export COMPlus_StressLog=1
export COMPlus_LogLevel=6
export COMPlus_LogFacility=0x00080001
export COMPlus_StressLogSize=2000000
export COMPlus_TotalStressLogSize=40000000

gdbinit

set unwindonsignal on
set debug aarch64
add-auto-load-safe-path /lib/aarch64-linux-gnu/libthread_db-1.0.so
set auto-load safe-path /
handle SIGUSR1 nostop noprint pass
handle SIGSEGV nostop
handle SIGILL nostop noprint pass
handle SIGQUIT nostop noprint pass
handle SIG34 nostop noprint pass noignore

Other information

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-GC-coreclrtenet-reliabilityReliability/stability related issue (stress, load problems, etc.)untriagedNew issue has not been triaged by the area owner

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions