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.
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