FYI: RAATServer fails to run on Linux kernels 6.2.14 and 6.3.0

Hi all,

I just want to inform both users and developers that there is a reported issue with Mono that causes segmentation faults for RAATServer when using Linux kernel versions 6.2.14 and 6.3.0.

Mono issue

I experienced it myself after upgrading to kernel 6.2.14, and saw segfaults for mono-sgen when trying to start the RoonBridge service on my system.

Booting with kernel 6.2.12 fixes the issue for me.

6.3.1 seems to have fixed that.

1 Like

Roon has not used Mono for quite a while.

Well, it seems Roon Bridge, at least, still uses Mono.
There is no doubt the segfault was caused by the Mono in RAATServer.
Starting Roon Bridge caused the segfault in Mono every single time.

Also, this is the startup script file for the RAATService:


#!/bin/sh

# NOTE: this script must only use really basic shell features as it must be able to run on limited
# busybox installs (synology, etc)

SCRIPT="`basename "$0"`"
FULLPATH="$0"
echo "$0" | grep -q ^/
if [ $? -ne 0 ]; then FULLPATH="`pwd`/$0"; fi

ROOTPATH=
OIFS="$IFS"
IFS=/
for i in `echo "$FULLPATH"`; do
    if [ "x$i" != "x" ]; then
        ROOTPATH="$ROOTPATH/$i"
        if [ -d "$ROOTPATH/RoonMono" ]; then break; fi
    fi
done
IFS="$OIFS"

MONO_DIR="$ROOTPATH/RoonMono"
export MONO_DIR
PATH="$MONO_DIR/bin":"$PATH"
export PATH
LD_LIBRARY_PATH="$MONO_DIR/lib:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH
FONTCONFIG_PATH="$MONO_DIR/etc/fonts"
export FONTCONFIG_PATH
MONO_DEBUG=no-gdb-backtrace
export MONO_DEBUG
MONO_GC_PARAMS=major=marksweep-conc,nursery-size=16m
export MONO_GC_PARAMS
MONO_TLS_PROVIDER=btls
export MONO_TLS_PROVIDER
MONO_ENABLE_BLOCKING_TRANSITION=1
export MONO_ENABLE_BLOCKING_TRANSITION

# boost ulimit
ulimit -n 8192

# we don't use stdin, so close it up.
exec 0</dev/null
exec 0>/dev/null

# fire up the app
cd "$ROOTPATH/Bridge"
if [ -x /bin/bash ]; then
    exec /bin/bash -c "exec -a RAATServer \"$MONO_DIR/bin/mono-sgen\" --debug --gc=sgen --server RAATServer.exe $@"
else
    exec "$MONO_DIR/bin/mono-sgen" --debug --gc=sgen --server RAATServer.exe "$@"
fi

As you can see, it clearly uses Mono.