space-wizards / space-station-14

A multiplayer game about paranoia and chaos on a space station. Remake of the cult-classic Space Station 13.
https://spacestation14.io
MIT License
2.48k stars 3.09k forks source link

Constant crashes on Mac M1 #22101

Open Kelrak opened 8 months ago

Kelrak commented 8 months ago

Description

Recently when playing the game crashes from time to time with the only error message being

libc++abi: terminating

Reproduction

Not sure exactly what triggers it some rounds there are no crashes at all some there is one every few minutes.

Additional context

I'm running on mac M1 so probably related. Started close to when the audio rework was implemented but not necessarily related.

I'm trying to see if I can find a crash dump or any additional context. If anyone knows any tooling I could use to get more useful debug information I could also do that.

jcm93 commented 8 months ago

Just tried to play and experienced this. Got a trace, attached. Looks like it could be audio-related. Not sure why the stacks are so large in SS14 on macOS.

Thread 26 Crashed:: .NET ThreadPool Worker
0   ???                                 0x7ff89b26ea78 ???
1   libsystem_kernel.dylib              0x7ff80ad807ce __pthread_kill + 10
2   libsystem_pthread.dylib             0x7ff80adb8f30 pthread_kill + 262
3   libsystem_c.dylib                   0x7ff80acd7ae9 __abort + 145
4   libsystem_c.dylib                   0x7ff80acd7a58 abort + 141
5   libc++abi.dylib                     0x7ff80ad71c72 abort_message + 241
6   libc++abi.dylib                     0x7ff80ad63d3f demangling_terminate_handler() + 47
7   libc++abi.dylib                     0x7ff80ad710cb std::__terminate(void (*)()) + 6
8   libc++abi.dylib                     0x7ff80ad71070 std::terminate() + 32
9   AudioDSP                               0x1bf946bbb 0x1bf183000 + 8141755
10  AudioDSP                               0x1bf941a1f 0x1bf183000 + 8120863
11  AudioDSP                               0x1bf93d0b2 0x1bf183000 + 8102066
12  AudioToolboxCore                    0x7ff80cf0bc26 AudioUnitSetProperty + 494
13  OpenAL                              0x7ffa2a106716 OALSource::AddNotifyAndRenderProcs() + 80
14  OpenAL                              0x7ffa2a10648f OALSource::Play() + 1097
15  OpenAL                              0x7ffa2a0fb7dd alSourcePlay + 26
16  ???                                    0x11598e556 ???
17  ???                                    0x1152b283f ???
18  ???                                    0x1152e7d97 ???
19  ???                                    0x10d9f62ce ???
20  ???                                    0x1127d6cb8 ???
21  ???                                    0x10afac756 ???
22  ???                                    0x10afabdbd ???
23  ???                                    0x10afabc96 ???
24  libcoreclr.dylib                       0x109502969 CallDescrWorkerInternal + 124

SS14.Loader-2023-12-09-131825.ips.zip

Kelrak commented 8 months ago

My crashes do not have a threaddump sadly. Not sure why Edit: Oh yeah found the same

Thread 9 Crashed:: .NET ThreadPool Worker
0   ???                                 0x7ff8a4b5aa78 ???
1   libsystem_kernel.dylib              0x7ff81466c7ce __pthread_kill + 10
2   libsystem_pthread.dylib             0x7ff8146a4f30 pthread_kill + 262
3   libsystem_c.dylib                   0x7ff8145c3ae9 __abort + 145
4   libsystem_c.dylib                   0x7ff8145c3a58 abort + 141
5   libc++abi.dylib                     0x7ff81465dc72 abort_message + 241
6   libc++abi.dylib                     0x7ff81464fd3f demangling_terminate_handler() + 47
7   libc++abi.dylib                     0x7ff81465d0cb std::__terminate(void (*)()) + 6
8   libc++abi.dylib                     0x7ff81465d070 std::terminate() + 32
9   AudioDSP                               0x1bed7cbbb 0x1be5b9000 + 8141755
10  AudioDSP                               0x1bed77a1f 0x1be5b9000 + 8120863
11  AudioDSP                               0x1bed730b2 0x1be5b9000 + 8102066
12  AudioToolboxCore                    0x7ff8167f7c26 AudioUnitSetProperty + 494
13  OpenAL                              0x7ffa339f1716 OALSource::AddNotifyAndRenderProcs() + 80
14  OpenAL                              0x7ffa339f148f OALSource::Play() + 1097
15  OpenAL                              0x7ffa339e67dd alSourcePlay + 26
Kelrak commented 8 months ago

I tried to figure out what could it be from the source code here https://opensource.apple.com/source/OpenAL/OpenAL-52.1/Source/OpenAL/oalSource.cpp.auto.html Looks like an error from the openal library that crashes the client. But not sure where in the client code it happens. I'm guessing here https://github.com/space-wizards/RobustToolbox/blob/726d91c5e8c93ddc824f0f2860139b345dba5ce8/Robust.Client/Audio/Sources/BaseAudioSource.cs#L85 But not sure

metalgearsloth commented 8 months ago

I get a crash, with launcher and with main game. sometime takes a while, sometimes immediate. error.txt I've attached the error logs from macos here. Main error message seems to be:

PC register does not match crashing frame (0x0 vs 0x7FF896446A78)

But not sure.

Please send game logs, no one wants to really go log diving on a platform they aren't familiar with.

tareu commented 8 months ago

Ok, will try to get them now.

tareu commented 8 months ago

client.mac.log client.stderr.log client.stdout.log launcher.log

This crash was as soon as i connected to a server.

metalgearsloth commented 8 months ago

This is 2 issues getting smushed together so either make it about openGL or openAL but not both.

tareu commented 8 months ago

@metalgearsloth I've made a new issue just for my bit https://github.com/space-wizards/space-station-14/issues/22368

rhomm-dev commented 6 months ago

Just wanted to note that this still seems to be occurring on Apple silicon. The server I play on just merged upstream and now I'm getting the same crashes.

Partmedia commented 3 months ago

I have another submitter who reports the same issue when running on Apple silicon. The relevant bits from their logs are:

[DEBG] root: OS: Darwin 21.6.0 Darwin Kernel Version 21.6.0: Thu Jun  8 23:57:12 PDT 2023; root:xnu-8020.240.18.701.6~1/RELEASE_X86_64 X64
[DEBG] root: .NET Runtime: .NET 8.0.0 osx-x64
[DEBG] root: Server GC: False
[DEBG] root: Processor: 4x Intel(R) Core(TM) i7-5650U CPU @ 2.20GHz
[DEBG] root: Architecture: X64
[DEBG] root: Robust Version: 222.1.1.0
[DEBG] root: Compile Options: FULL_RELEASE;RELEASE;EXCEPTION_TOLERANCE
[DEBG] root: Intrinsics: X86Aes;Avx;Avx2;Bmi1;Bmi2;Fma;Lzcnt;Pclmulqdq;Popcnt;Sse;Sse2;Sse3;Ssse3;Sse41;Sse42;X86Base

The logs also end with:

libc++abi: terminating
awalkerg commented 1 month ago

im having crashes often as well. Here's my crash report

Date/Time:             2024-07-07 23:14:36.3793 -0400
OS Version:            macOS 14.5 (23F79)
Report Version:        12
Anonymous UUID:        F26D3C76-8455-511C-FDE2-9B0C739B4208

Time Awake Since Boot: 12000 seconds

System Integrity Protection: enabled

Notes:
PC register does not match crashing frame (0x0 vs 0x7FF896F4EA78)

Crashed Thread:        23  .NET TP Worker

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000

Termination Reason:    Namespace SIGNAL, Code 6 Abort trap: 6
Terminating Process:   SS14.Loader [3480]

Application Specific Information:
abort() called

Error Formulating Crash Report:
PC register does not match crashing frame (0x0 vs 0x7FF896F4EA78)

Thread 0::  Dispatch queue: com.apple.main-thread
0   ???                                 0x7ff896f4ea78 ???
1   libsystem_kernel.dylib              0x7ff806c6ef7a __psynch_cvwait + 10
2   libsystem_pthread.dylib             0x7ff806cac6f3 _pthread_cond_wait + 1211
3   libcoreclr.dylib                       0x10bef3de3 CorUnix::CPalSynchronizationManager::ThreadNativeWait(CorUnix::_ThreadNativeWaitData*, unsigned int, CorUnix::ThreadWakeupReason*, unsigned int*) + 323
4   libcoreclr.dylib                       0x10bef3a10 CorUnix::CPalSynchronizationManager::BlockThread(CorUnix::CPalThread*, unsigned int, bool, bool, CorUnix::ThreadWakeupReason*, unsigned int*) + 368
5   libcoreclr.dylib                       0x10bef861b CorUnix::InternalWaitForMultipleObjectsEx(CorUnix::CPalThread*, unsigned int, void* const*, int, unsigned int, int, int) + 2203
6   libcoreclr.dylib                       0x10bef88d2 WaitForMultipleObjectsEx + 82
7   libcoreclr.dylib                       0x10bfefe1a Thread::DoAppropriateWaitWorker(int, void**, int, unsigned int, WaitMode) + 730
8   libcoreclr.dylib                       0x10bfeb430 Thread::DoAppropriateWait(int, void**, int, unsigned int, WaitMode, PendingSync*) + 48
9   libcoreclr.dylib                       0x10c040198 WaitHandleNative::CorWaitOneNative(void*, int) + 184
10  ???                                    0x110c7d94b ???
11  ???                                    0x11ae414f5 ???
12  ???                                    0x11ae33f76 ???
13  ???                                    0x11acb7a57 ???
14  ???                                    0x11b4b38db ???
15  ???                                    0x117c7b627 ???
16  ???                                    0x10fed9a7d ???
17  ???                                    0x10dd676b3 ???
18  ???                                    0x10dd64b8c ???
19  ???                                    0x10dd59a02 ???
20  ???                                    0x10dd099dc ???
21  ???                                    0x10dcf75f0 ???
22  libcoreclr.dylib                       0x10c1c8121 CallDescrWorkerInternal + 124
23  libcoreclr.dylib                       0x10c1c8121 CallDescrWorkerInternal + 124
24  libcoreclr.dylib                       0x10c1c8121 CallDescrWorkerInternal + 124
25  libcoreclr.dylib                       0x10c1c8121 CallDescrWorkerInternal + 124
26  libcoreclr.dylib                       0x10c1c8121 CallDescrWorkerInternal + 124
27  libcoreclr.dylib                       0x10c1c8121 CallDescrWorkerInternal + 124
28  libcoreclr.dylib                       0x10c1c8121 CallDescrWorkerInternal + 124
29  libcoreclr.dylib                       0x10c1c8121 CallDescrWorkerInternal + 124
30  libcoreclr.dylib                       0x10c1c8121 CallDescrWorkerInternal + 124
31  libcoreclr.dylib                       0x10c1c8121 CallDescrWorkerInternal + 124
32  libcoreclr.dylib                       0x10c1c8121 CallDescrWorkerInternal + 124
33  libcoreclr.dylib                       0x10c1c8121 CallDescrWorkerInternal + 124
34  libcoreclr.dylib                       0x10c1c8121 CallDescrWorkerInternal + 124
35  libcoreclr.dylib                       0x10c1c8121 CallDescrWorkerInternal + 124
36  libcoreclr.dylib                       0x10c1c8121 CallDescrWorkerInternal + 124
37  libcoreclr.dylib                       0x10c1c8121 CallDescrWorkerInternal + 124
38  libcoreclr.dylib                       0x10c1c8121 CallDescrWorkerInternal + 124
39  libcoreclr.dylib                       0x10c1c8121 CallDescrWorkerInternal + 124
40  libcoreclr.dylib                       0x10c1c8121 CallDescrWorkerInternal + 124
41  libcoreclr.dylib                       0x10c1c8121 CallDescrWorkerInternal + 124

the libcoreclr.dylib message continues for hundreds of lines and most of my threads consist of this