Roon Bridge 1.8 in single core configuration difficult to start。

Hi

I use a dual core ARM Allwiner T113-S4, 256M RAM, 8G eMMC.

Roon Bridge 1.8 can work smoothly in dual core configuration. Once I add isolcpus=1 to islate cpu 1. In this setup ONLY CPU Core 0 for Roon Bridge. After systemctl start roonbridge, from the journalctl I allways can see the error report.

Jun 05 12:42:54 X30 start.sh[2707]: Running
Jun 05 12:43:00 X30 start.sh[2707]: 00:01:54.963 Warn:  exception starting raatserver: System.Net.Sockets.SocketException (0x80004005): Connection refused
Jun 05 12:43:00 X30 start.sh[2707]:   at System.Net.Sockets.TcpClient..ctor (System.String hostname, System.Int32 port) [0x0006d] in <ef2b8cc0336c473382f0e9112dd3c795>:0
Jun 05 12:43:00 X30 start.sh[2707]:   at Sooloos.RAATServer.ConnectOrStartAndWaitForExit (System.String path, System.String args, System.Action`1[T] status, Base.ChildProcess& p) [0x00165] in <c3e2d33b54f34224bdf8da1e4595ee94>:0 
Jun 05 12:43:00 X30 start.sh[2707]: Not Running (.o)
Jun 05 12:43:00 X30 start.sh[2707]: 00:01:54.972 Debug: PathForResource, filename: ../.update
Jun 05 12:43:00 X30 start.sh[2707]: 00:01:54.972 Debug: PathForResource, candidate: /musicapps/RoonBridge/Bridge/../.update
Jun 05 12:43:02 X30 start.sh[2707]: 00:01:56.973 Info:  ConnectOrStartAndWaitForExit RAATServer, path: /musicapps/RoonBridge/Bridge/RAATServer
Jun 05 12:43:02 X30 start.sh[2707]: Running
Jun 05 12:43:08 X30 start.sh[2707]: 00:02:03.001 Warn:  exception starting raatserver: System.Net.Sockets.SocketException (0x80004005): Connection refused
Jun 05 12:43:08 X30 start.sh[2707]:   at System.Net.Sockets.TcpClient..ctor (System.String hostname, System.Int32 port) [0x0006d] in <ef2b8cc0336c473382f0e9112dd3c795>:0
Jun 05 12:43:08 X30 start.sh[2707]:   at Sooloos.RAATServer.ConnectOrStartAndWaitForExit (System.String path, System.String args, System.Action`1[T] status, Base.ChildProcess& p) [0x00165] in <c3e2d33b54f34224bdf8da1e4595ee94>:0 
Jun 05 12:43:08 X30 start.sh[2707]: Not Running (.o)
Jun 05 12:43:08 X30 start.sh[2707]: 00:02:03.008 Debug: PathForResource, filename: ../.update
Jun 05 12:43:08 X30 start.sh[2707]: 00:02:03.008 Debug: PathForResource, candidate: /musicapps/RoonBridge/Bridge/../.update
Jun 05 12:43:10 X30 start.sh[2707]: 00:02:05.009 Info:  ConnectOrStartAndWaitForExit RAATServer, path: /musicapps/RoonBridge/Bridge/RAATServer
Jun 05 12:43:10 X30 start.sh[2707]: Running

Roon Bridge will retry for a lot of times. then start successfully. The longest time is about 11 minuts. typically above 3 minuts.

Is this right?

Thank you!

Hi @Andy_Gao1,

These look like connection refusals upstream of the RAATServer at the level of the network interface. Do you have any firewalls installed on this machine that might be restricting network access to RAATServer? What about network security?

Please describe your Roon environment in a little more detail, including your RoonServer and endpoints. We’ll be better equipped to assist you with a more complete picture. Thanks!

No Firewall. and no any security fuction used. the issue only comes with single core setup for RoonBridge, in dual core setup, no any issues. it is possible for RoonBridge want multiple cores to work or single core performance not enough. should not related to other settings.

Roon Server is a X86 AMD 5700X CPU with 32GB RAM, 2 NVME 2TB SSD. the Roon Server and Roon connect to same Extreme Networks 12ports Enterprise Ethernet Switch, then go to a Huawei Enterpris Router to Internet.

if the Arch Linux kernel startup cmdline with isolcpus=1, we can see this problem.

setargs_mmc=setenv  bootargs ubi.block=0,${root_partition} earlyprintk=${earlyprintk} clk_ignore_unused initcall_debug=${initcall_debug} console=${console} loglevel=${loglevel} root=${mmc_root} rw rootwait audit=0 threadirqs nomodeset isolcpus=1 nohz_full=1

if the Arch Linux kernel startup cmdline without isolcpus=1. RoonBridge work very well.

setargs_mmc=setenv  bootargs ubi.block=0,${root_partition} earlyprintk=${earlyprintk} clk_ignore_unused initcall_debug=${initcall_debug} console=${console} loglevel=${loglevel} root=${mmc_root} rw rootwait audit=0 nomodeset nohz_full=1 init=${init}

the difference is with or without isolcpus=1 cmd line configuration in the uboot env. if have isolcpus=1, that means RoonBridge only can use CPU0. CPU1 is isolated for some other applications. If do NOT have isolcpus=1, that means RoonBridge can use both CPU0 and CPU1.

with top or htop, I can see 100% CPU usage for several seconds in witchout isolcpus=1 configuration. the Roon Bridge start successfully without retry

if with isolcpus=1 configuration, I can see 100% CPU usage for a longer time then Roon Bridge start failed and retry. This loop will not stop until sometimes Roon Bridge start successfully, once the Roon Bridge starup, the cpu usage will drop to 5% or less.

Jun 05 12:42:54 X30 start.sh[2707]: Running
Jun 05 12:43:00 X30 start.sh[2707]: 00:01:54.963 Warn:  exception starting raatserver: System.Net.Sockets.SocketException (0x80004005): Connection refused
Jun 05 12:43:00 X30 start.sh[2707]:   at System.Net.Sockets.TcpClient..ctor (System.String hostname, System.Int32 port) [0x0006d] in <ef2b8cc0336c473382f0e9112dd3c795>:0
Jun 05 12:43:00 X30 start.sh[2707]:   at Sooloos.RAATServer.ConnectOrStartAndWaitForExit (System.String path, System.String args, System.Action`1[T] status, Base.ChildProcess& p) [0x00165] in <c3e2d33b54f34224bdf8da1e4595ee94>:0 
Jun 05 12:43:00 X30 start.sh[2707]: Not Running (.o)
Jun 05 12:43:00 X30 start.sh[2707]: 00:01:54.972 Debug: PathForResource, filename: ../.update
Jun 05 12:43:00 X30 start.sh[2707]: 00:01:54.972 Debug: PathForResource, candidate: /musicapps/RoonBridge/Bridge/../.update
Jun 05 12:43:02 X30 start.sh[2707]: 00:01:56.973 Info:  ConnectOrStartAndWaitForExit RAATServer, path: /musicapps/RoonBridge/Bridge/RAATServer
Jun 05 12:43:02 X30 start.sh[2707]: Running

Thank you to for the report @Andy_Gao1, we’ve passed this to QA. We don’t suggest hard-limiting to a single core and always suggest multiple available cores when running Roon and related processes. However, this report will be useful to other uses, particularly on ArchLinux, and to development.