dotnet / dotnet/runtime

[Android] .Net 10.0.102 random crash with SIGSEGV in major_copy_or_mark_object_concurrent_no_evacuation

Open
#123,537 9 comments 0 reactions 1 assignee Claimed by @BrzVlad View on GitHub
area-GC-mono os-android
Dominant language
C#
Stars
18.3k
Forks
5.6k
PR merge metrics
PR metrics pending

Description

### Description

```
* thread #17, name = 'SGen worker', stop reason = breakpoint 2.1
* frame #0: 0x0000007c70d3dfb8 libart.so`art_sigsegv_fault
frame #1: 0x0000007c70d3db58 libart.so`art::FaultManager::HandleSigsegvFault(int, siginfo*, void*) - 18446743539240674471
frame #2: 0x0000007f376a1c8c libsigchain.so`art::SignalChain::Handler(int, siginfo*, void*) + 372
frame #3: 0x0000007f397d9860 [vdso]`__kernel_rt_sigreturn
frame #4: 0x0000007bce39cfd4 libmonosgen-2.0.so`drain_gray_stack_concurrent [inlined] major_copy_or_mark_object_concurrent_no_evacuation(ptr=, obj=0x0000800000000000, queue=0x0000007f3778a010) at sgen-marksweep-drain-gray-stack.h:137:23
frame #5: 0x0000007bce39cfd4 libmonosgen-2.0.so`drain_gray_stack_concurrent [inlined] major_scan_object_concurrent_no_evacuation(full_object=, desc=245957, queue=0x0000007f3778a010) at sgen-scan-object.h:59:3
frame #6: 0x0000007bce39c27c libmonosgen-2.0.so`drain_gray_stack_concurrent [inlined] drain_gray_stack_concurrent_no_evacuation(queue=0x0000007f3778a010) at sgen-marksweep-drain-gray-stack.h:347:3
frame #7: 0x0000007bce39c244 libmonosgen-2.0.so`drain_gray_stack_concurrent(queue=0x0000007f3778a010) at sgen-marksweep.c:1312:10
frame #8: 0x0000007bce3ba510 libmonosgen-2.0.so`marker_idle_func(data_untyped=0x0000007f3778a008) at sgen-workers.c:363:3
frame #9: 0x0000007bce3b9570 libmonosgen-2.0.so`thread_func(data=0x0000000000000000) at sgen-thread-pool.c:219:5
frame #10: 0x0000007f2a093d00 libc.so`__pthread_start(void*) (.__uniq.67847048707805468364044055584648682506) + 240
frame #11: 0x0000007f2a086504 libc.so`__start_thread + 68
```

### Reproduction Steps

At random places in our internal LOB app.

### Expected behavior

App should not crash randomly with a SIGSEGV in sgen.

### Actual behavior

App crashes randomly with a SIGSEGV in sgen.

### Regression?

Not sure. We've seen SIGSEGV crashes .Net 8 too, but didn't pus as much analysis into differentiating them. Some of the SIGSEGV in .Net were caused by the implicit-null-checks and we fixed them by `MONO_DEBUG=explicit-null-checks`. But this SIGSEGV crash has obliviously a different source.

### Known Workarounds

none

### Configuration

- .Net 10.0.102
- Android 16
- ARM64
- Pixel 7a

### Other information

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.