Roon 2.0 - Crashing on MacOS due to ".NET ThreadPool Worker" [Roon Investigating]

Since upgrading to Roon 2.0, my Roon core running on a 2018 8GB Mac Mini constantly crashes, whether or not I am using Roon. I understand there are going to be issues, but this does not seem to me to be an uncommon or antiquated setup. If it is no longer supported, would’ve been nice for the upgrade program to have noticed. Please advise if there is a quick fix, or if I just have to wait until the next patch.

Roon Core Machine

mac OS Monterey 12.6
Mac mini 2018 3.6 GHz Quad-Core Intel Core i3
8 GB 2667 MHz DDR4

Networking Gear & Setup Details

Mac mini hardwired to Router via Netgear switch
Roon clients connected via Eero Pro mesh network

Connected Audio Devices

Failure is on core, not connected Roon clients

Number of Tracks in Library

29000 tracks

Description of Issue

Roon 2.0 core on Mac Mini is crashing, whether Roon clients are playing or system is idle. Generates and sends a detailed crash report to Apple.

Add images

2 Likes

Same here. It keeps crashing within couple seconds whenever I open the application. I use Intel core Macbook Pro and I don’t have that many tracks in the library.

5 days and no response from Roon on this support post so far. Perhaps they have responded elsewhere about what they’re doing for Roon 2.0 issues, but I haven’t seen it. I do see lots of post reporting core and client issues on various Mac platforms with the 2.0 upgrade.

Yesterday, I tried to roll back to 1.8, and followed the instructions elsewhere on how to do that. After installing a 1.8 client on my iPad, I followed the link to install 1.8 on my mac Mini core. The installer instead installed 1.5 on my mac Mini, and it continually failed when checking for an upgrade. After messing with that awhile, I decided just to go back and reinstall 2.0 core on my mac Mini. After doing that, it refused to find my library, so I had to restore from a backup. I’m back up and running with 2.0 again and experiencing the same issue before.

My roon Core is not failing immediately, it will play for up to an hour or so before failing. I have also had a couple of crashes of the Roon client on a brand-new M2 MacBook Pro, which look similar if not identical to the failure I’m getting on may older Mac Mini.

This seems to me to indicate there’s a problem with 2.0 on the mac OS Monterey 12.6, since that’s what’s running on both machines. Guess I’ll just stand-by and wait on a fix for 2.0, though it sure would be nice to see something from Roon about what’s going on to either my specific issue or overall. Can’t help but make the observation that remote capabilities of Arc are not terribly useful if the core is constantly failing and you have to be home to restart the application.

Not my experience with 2.0 core. No responses from Roon on my support message on this.

1 Like

Hi @Scott_Purdy ,

Thanks for your patience here while your case reached our queue. Can you please copy + paste the full error code here? This looks like a .NET error, but it’s not clear why it’s happening. I’ve also activated diagnostics for your Roon account, please open the Roon app for at least a few minutes when you have a chance and let me know, thanks!

I just got home and restarted Roon core, it is up and running now for at least a bit. Will post the full error code on a separate message.

The error report is too large (32 MB) to copy and paste in its entirety as text in a message. Sending the first portion of it. It goes on like this for awhile, but does have some other blocks as well.

Process:               Roon [914]
Path:                  /Applications/Roon.app/Contents/MacOS/Roon
Identifier:            com.roon.Roon
Version:               1.0 (1.0)
Code Type:             X86-64 (Native)
Parent Process:        launchd [1]
User ID:               501

Date/Time:             2022-10-04 12:33:02.6292 -0500
OS Version:            macOS 12.6 (21G115)
Report Version:        12
Bridge OS Version:     6.6 (19P6067)
Anonymous UUID:        A6808468-5AE7-298E-06EE-A2A0A6B14687


Time Awake Since Boot: 22000 seconds

System Integrity Protection: enabled

Crashed Thread:        56  .NET ThreadPool Worker

Exception Type:        EXC_BAD_ACCESS (SIGBUS)
Exception Codes:       KERN_PROTECTION_FAILURE at 0x0000700009767fe8
Exception Codes:       0x0000000000000002, 0x0000700009767fe8
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    Namespace SIGNAL, Code 10 Bus error: 10
Terminating Process:   exc handler [914]

VM Region Info: 0x700009767fe8 is in 0x700009767000-0x700009768000;  bytes after start: 4072  bytes before end: 23
      REGION TYPE                    START - END         [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      Stack                    7000096e5000-700009767000 [  520K] rw-/rwx SM=PRV  thread 85
--->  Stack Guard              700009767000-700009768000 [    4K] ---/rwx SM=NUL  
      Stack                    700009768000-7000097ea000 [  520K] rw-/rwx SM=PRV  

Thread 0::  Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	    0x7ff800aa597a mach_msg_trap + 10
1   libsystem_kernel.dylib        	    0x7ff800aa5ce8 mach_msg + 56
2   CoreFoundation                	    0x7ff800ba936d __CFRunLoopServiceMachPort + 319
3   CoreFoundation                	    0x7ff800ba79f8 __CFRunLoopRun + 1276
4   CoreFoundation                	    0x7ff800ba6e3c CFRunLoopRunSpecific + 562
5   ???                           	       0x11d2f87f5 ???
6   ???                           	       0x11dfc983d ???
7   ???                           	       0x11d2cb008 ???
8   ???                           	       0x119410d7c ???
9   ???                           	       0x1193706ba ???
10  libcoreclr.dylib              	       0x111438279 CallDescrWorkerInternal + 124
11  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
12  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
13  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
14  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
15  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
16  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
17  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
18  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
19  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
20  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
21  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
22  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
23  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
24  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
25  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
26  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
27  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
28  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
29  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
30  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
31  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
32  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
33  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
34  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
35  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
36  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
37  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
38  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
39  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
40  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
41  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
42  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
43  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
44  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
45  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
46  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
47  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
48  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
49  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
50  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
51  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
52  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
53  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
54  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
55  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
56  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
57  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
58  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
59  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
60  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
61  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
62  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
63  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
64  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
65  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
66  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
67  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
68  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
69  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
70  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
71  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
72  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
73  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
74  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
75  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
76  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
77  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
78  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
79  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
80  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
81  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
82  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
83  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
84  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
85  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
86  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
87  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
88  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
89  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
90  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
91  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
92  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
93  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
94  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
95  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
96  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
97  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
98  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
99  libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
100 libcoreclr.dylib              	       0x111283038 MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 1496
1 Like

Looks like recursive calls causing a stack overflow.

I am experiencing the exact random failures and crashes on the core which is ruining on iMAC with Monterey (12.6) installed. I also have an open thread with zero feedback from ROON. This is frustrating so I ended up downgrading to 1.8 Legacy (I was lucky and it worked).
Is your problem solved after ROON monitor your account ?

I expect that they’re still looking into it. It was late yesterday afternoon when I restarted Roon core and uploaded the error report. I’m trying to keep the core restarted when it crashes this morning so they’ll be able to monitor.

Noris, any thoughts on the problem after taking a look?

Hi @Scott_Purdy ,

I brought up your crash snippet with the team, but it seems that there is not enough info in the crash snippet. Can you please upload any relevant crash logs to the following link and let me know once uploaded? Thanks!

https://workdrive.zohoexternal.com/collection/8i5239cc05950ac07456889838d9319545a82/external

Thanks, Noris. I have uploaded the full crash log to the site on the link.

1 Like

I am having the exact same problem. Also crashing .NET ThreadPool worker. I updated my Mac Mini dedicated Roon server this week… my Desktop Mini (2018 i7 64GB) sees the server, but the Roon client crashes… my iPAD can’t see the server anymore. This was never a problem before the update.

I am seriously doubting the software engineer of the Roon ecosystem. Nothing but trouble! Old config had constant 200%+ CPU load on my Mac… this new configuration just doesn’t work. What a complete headache this is.

My wife doesn’t understand it anymore either. “Why don’t we just use Spotify… that always just works!”… and Honestly… I don’t have an answer to that.

Hi @Scott_Purdy ,

Thanks for sending the crash log over, we took a look over it, but we are still trying to determine the cause of the crash.

@SEUNG_HUN_LEE / @Assaf_Kantorovich /@Ernst_Jan_Holscher - Can you please also upload your crash logs to the same link? I would like to see if there are any commonalities between them, please let me know once uploaded:

Noris -
I’m also experiencing a similar crash on my Roon remote client running on a new M2 MacBook Pro. It is crashing less frequently than the core on my mac Mini, but has happened several times now. I uploaded the full crash report to the link. Specs on this machine are:

MacBook Pro M2 2022
24 GB memory
macOS Monterey Version 12.6

14 posts were split to a new topic: iPad Mini 4 - Disconnects from Ubuntu Core

Sorry but can’t upload logs because I downgraded to 1.8 Legacy due to all the crashing issues with ROON 2.0.

Use the link to the files uploader that @noris posted earlier in this thread:

1 Like

Same here
(Edit: downgrading to 1.8/legacy was really easy and flawless. I don’t need ARC right now.)