RoonServer v1.8 won't start - Ubuntu 21.10

Roon Core Machine

Ubuntu 21.10 (also had same issue with 21.04 LTS)
Intel NUC nuc8i5beh, Intel Core-i5 8th Gen, 16GB memory, 1TB boot NVMe SSD, 1TB /data SSD with music

Networking Gear & Setup Details

NUC using 1Gb wired Intel I219-V
Switch Mikrotik CSS106-5G-1S (no filtering or VLAN), Client PC on same switch

Connected Audio Devices

(Server won’t start so Client N/A), but testing with Client:
Windows 10 Desktop to speakers via ASUS ROG Strix X570-E Gaming motherboard audio, Realtek HD Audio S1220A
Client says “Looking for your Roon Core” forever.

Number of Tracks in Library

7,000 tracks

Description of Issue

Uninstalled/reinstalled latest RoonServer v1.8 (build 850) several times, same error every time.
Server starts up, but doesn’t appear to be listening (Client can’t find server).

Note it did use to work several Linux & Roon updates earlier (roon was earlier mono interface, not .net). I did install a lot of extra packages as well as latest updates to Linux, maybe some update/package broke it. Original working 21.04 was fairly clean server install, I installed a number of workstation client components etc. to 21.04 over a week or two (I didn’t test roon during that time), after I noticed I couldn’t connect to core, I then tried updating to 21.10 to see if that helped, it didn’t. Also reinstalled current roonserver a few times.

I am prepared to reinstall latest Ubuntu Linux if necessary, but would like to have workstation GUI components, so would be good to know what is the issue (or whether I have a corrupt roon DB).

Below is immediately after an install of latest roon server, which starts service as last step.

sudo netstat -ln|grep -i roon
unix 2 [ ACC ] STREAM LISTENING 35820 @/var/snap/lxd/common/lxd/containers/roon/command

sudo systemctl status roonserver
● roonserver.service - RoonServer
Loaded: loaded (/etc/systemd/system/roonserver.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2021-11-24 21:21:40 PST; 1h 44min ago
Main PID: 323421 (start.sh)
Tasks: 21 (limit: 18952)
Memory: 61.1M
CPU: 21min 1.012s
CGroup: /system.slice/roonserver.service
├─323421 /bin/bash /opt/RoonServer/start.sh
└─323426 /opt/RoonServer/RoonDotnet/RoonServer RoonServer.dll

Nov 24 23:05:50 nuc-roon start.sh[323426]: Error
Nov 24 23:05:52 nuc-roon start.sh[323426]: Initializing
Nov 24 23:05:52 nuc-roon start.sh[323426]: Started
Nov 24 23:05:52 nuc-roon start.sh[323426]: Error
Nov 24 23:05:54 nuc-roon start.sh[323426]: Initializing
Nov 24 23:05:54 nuc-roon start.sh[323426]: Started
Nov 24 23:05:54 nuc-roon start.sh[323426]: Error
Nov 24 23:05:56 nuc-roon start.sh[323426]: Initializing
Nov 24 23:05:56 nuc-roon start.sh[323426]: Started
Nov 24 23:05:57 nuc-roon start.sh[323426]: Error

Latest error in RoonServer/Logs/RoonServer.log.txt:

11/24 23:05:50 Error:
Local Time: 11/24/2021 23:05:50 -08:00
Device Serial Number: 23389004-99F9-4B80-99B4-BE25A8C410A0
Roon Version: 1.8 (build 850) stable
OS Version: Linux 5.13.0-21-generic
Mono Version: unknown

Application Domain: RoonAppliance
Assembly Codebase: file:///opt/RoonServer/Appliance/RoonAppliance.dll
Assembly Full Name: RoonAppliance, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null

Exception Source: Roon.Broker.Core
Exception Type: System.NullReferenceException
Exception Target Site: State…ctor
Exception Message: Object reference not set to an instance of an object.
Exception Data: none

–[ Stack Trace ]------------
Sooloos.Broker.State…ctor(BrokerConfig config, StorageManager storage)
Roon.Broker.Core.dll, IL 240, N 937
Sooloos.Broker.Modules.Core.Create(BrokerConfig config, String platform)
Roon.Broker.Core.dll, IL 130, N 507
Sooloos.Application.Main(String[] argv)
RoonAppliance.dll, IL 1265, N 2679

Am I getting no reply because I posted incorrectly? This is my first post, let me know if I did something wrong (apart from not realizing I needed to put tags to stop “–” being treated as bold marker).

There was a change recently and your Linux build might need new dependencies. (Not sure about v21.1 of Ubuntu)

Linux Systems

With this change comes some updated dependency requirements for Roon to work. The most common problem we’ve found is that libicu needs to be installed, so we recommend installing this ahead of the release.

For Ubuntu 20.x the command to do this is:

apt-get update && sudo apt-get install libicu66

For other systems, the name for libicu and the specific package manager might be different. To find the .NET dependencies you need, click on the version number of your Linux distribution in this Microsoft article and scroll down to Dependencies.

from the FAQ: https://help.roonlabs.com/portal/en/kb/articles/linux-performance-improvements#Linux_Systems

How is Roon installed on your machine? In an lxd container? That is not a supported method to run Roon on Linux. Where did the container orginiate from? Maybe you can ask for help by the provider/maintainer of the container?

libicu66 is not available for Ubuntu 21.10. But libicu67 was already installed:
gparsons@nuc-roon:~$ apt list libicu67
Listing… Done
libicu67/impish,now 67.1-7ubuntu1 amd64 [installed]

I installed RoonServer via wget and sudo ./roonserver-installer-linuxx64.sh

I installed directly (no container), using Easy Installer with default settings. I also tried Easy “uninstall” & re-install more than once.

Then you should probably look into the RoonServer log file to see what’s going on.

I did - attached tail of log in original post. It generates a new log every 2-4 seconds (RoonServer_log.txt, RoonServer_log.txt.1, RoonServer_log.txt.2, …). Here’s entire latest log (they are all the same):

gparsons@nuc-roon:/var/roon/RoonServer/Logs$ cat RoonServer_log.txt
11/30 15:44:14 Info: Starting RoonServer v1.8 (build 850) stable on linuxx64
11/30 15:44:14 Trace: Checking if we are already running
11/30 15:44:14 Warn: get lock file path: /tmp/.rnsems0-roon
11/30 15:44:14 Trace: Nope, we are the only one running
11/30 15:44:14 Info: Is 64 bit? True
11/30 15:44:14 Info: Command Line Argument: -watchdogport=33417
11/30 15:44:14 Trace: [realtime] fetching time from NTP server
11/30 15:44:14 Info: [broker] starting 40b53ac6-838a-44e5-a478-deef8466fcde
11/30 15:44:14 Trace: [realtime] Got time from NTP: 11/30/2021 11:44:14 PM (3847304654801ms)
11/30 15:44:14 Trace: [realtime] Updated clock skew to -00:00:00.0193347 (-19.3347ms)
11/30 15:44:14 Trace: [httpcache] loaded 1288 cache entries from /var/roon/RoonServer/Cache/httpcache_2.db, current: 127mb / 128mb
11/30 15:44:14 Info:
Local Time:            11/30/2021 15:44:14 -08:00
Device Serial Number:  23389004-99F9-4B80-99B4-BE25A8C410A0
Roon Version:       1.8 (build 850) stable
OS Version:            Linux 5.13.0-21-generic
Mono Version:          unknown

Application Domain:    RoonAppliance
Assembly Codebase:     file:///opt/RoonServer/Appliance/RoonAppliance.dll
Assembly Full Name:    RoonAppliance, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null

   Exception Source:      Roon.Broker.Core
   Exception Type:        System.NullReferenceException
   Exception Target Site: State..ctor
   Exception Message:     Object reference not set to an instance of an object.
   Exception Data:        none

   --[ Stack Trace ]------------
   Sooloos.Broker.State..ctor(BrokerConfig config, StorageManager storage)
       Roon.Broker.Core.dll, IL 240, N 937
   Sooloos.Broker.Modules.Core.Create(BrokerConfig config, String platform)
       Roon.Broker.Core.dll, IL 130, N 507
   Sooloos.Application.Main(String[] argv)
       RoonAppliance.dll, IL 1265, N 2679

11/30 15:44:14 Error:
Local Time:            11/30/2021 15:44:14 -08:00
Device Serial Number:  23389004-99F9-4B80-99B4-BE25A8C410A0
Roon Version:       1.8 (build 850) stable
OS Version:            Linux 5.13.0-21-generic
Mono Version:          unknown

Application Domain:    RoonAppliance
Assembly Codebase:     file:///opt/RoonServer/Appliance/RoonAppliance.dll
Assembly Full Name:    RoonAppliance, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null

   Exception Source:      Roon.Broker.Core
   Exception Type:        System.NullReferenceException
   Exception Target Site: State..ctor
   Exception Message:     Object reference not set to an instance of an object.
   Exception Data:        none

   --[ Stack Trace ]------------
   Sooloos.Broker.State..ctor(BrokerConfig config, StorageManager storage)
       Roon.Broker.Core.dll, IL 240, N 937
   Sooloos.Broker.Modules.Core.Create(BrokerConfig config, String platform)
       Roon.Broker.Core.dll, IL 130, N 507
   Sooloos.Application.Main(String[] argv)
       RoonAppliance.dll, IL 1265, N 2679

gparsons@nuc-roon:/var/roon/RoonServer/Logs$

Yeah I see, sadly not much in there. Seems like RoonServer never gets started (bails out on initializing). First Stack Trace is about storage though. Maybe someone else has ideas?

I know there are threads from others, running RoonServer on Ubuntu 20.04 LTS. Something seems strange to me that you get the same error with two different distributions, at least one of them working for others.

Note: Did you ever do a thorough check of your RAM with memtest?

BlackJack - I see why you were asking about containers now. Interesting that netstat shows:

gparsons@nuc-roon:/var/roon/RoonServer/Logs$ sudo netstat -ln|grep -i roon
unix  2      [ ACC ]     STREAM     LISTENING     35820    @/var/snap/lxd/common/lxd/containers/roon/command
gparsons@nuc-roon:/var/roon/RoonServer/Logs$

I did install the lxd packages to look into containers (I’ve never used them), but didn’t do anything much apart from installing it. Maybe you are on to something here. I’ll see about uninstalling lxd & then reinstall roonserver.

I am running my core on a vanilla 20.04 LTS Server… no problems.

I would like to see the output of df -mTh

Plenty of disk (ssd) space. Music is on /data.

gparsons@nuc-roon:~$ df -mTh
Filesystem                                           Type   Size  Used Avail Use% Mounted on
tmpfs                                                tmpfs  1.6G  3.6M  1.6G   1% /run
/dev/nvme0n1p2                                       ext4   938G  207G  684G  24% /
tmpfs                                                tmpfs  7.8G   14M  7.8G   1% /dev/shm
tmpfs                                                tmpfs  5.0M  4.0K  5.0M   1% /run/lock
/dev/nvme0n1p1                                       vfat   511M  5.3M  506M   2% /boot/efi
/dev/sda1                                            ext4   924G  449G  476G  49% /data
tmpfs                                                tmpfs  1.6G  116K  1.6G   1% /run/user/1001
tmpfs                                                tmpfs  1.6G   80K  1.6G   1% /run/user/1000

I removed lxd (took an hour, it’s tough to remove). Rebooted.

Reinstalled RoonServer (Easy uninstall & Easy install). Still fails with seems to be same error (with logs rotating every 2-4 seconds as before). Though I no longer see any listening socket open (“netstat -ln” shows nothing for roon now).

gparsons@nuc-roon:/var/roon/RoonServer/Logs$ cat RoonServer_log.txt
11/30 17:19:20 Info: Starting RoonServer v1.8 (build 850) stable on linuxx64
11/30 17:19:20 Trace: Checking if we are already running
11/30 17:19:20 Warn: get lock file path: /tmp/.rnsems0-roon
11/30 17:19:20 Trace: Nope, we are the only one running
11/30 17:19:20 Info: Is 64 bit? True
11/30 17:19:20 Info: Command Line Argument: -watchdogport=38605
11/30 17:19:20 Trace: [realtime] fetching time from NTP server
11/30 17:19:20 Info: [broker] starting 40b53ac6-838a-44e5-a478-deef8466fcde
11/30 17:19:20 Trace: [httpcache] loaded 1288 cache entries from /var/roon/RoonServer/Cache/httpcache_2.db, current: 127mb / 128mb
11/30 17:19:20 Info:
Local Time:            11/30/2021 17:19:20 -08:00
Device Serial Number:  23389004-99F9-4B80-99B4-BE25A8C410A0
Roon Version:       1.8 (build 850) stable
OS Version:            Linux 5.13.0-22-generic
Mono Version:          unknown

Application Domain:    RoonAppliance
Assembly Codebase:     file:///opt/RoonServer/Appliance/RoonAppliance.dll
Assembly Full Name:    RoonAppliance, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null

   Exception Source:      Roon.Broker.Core
   Exception Type:        System.NullReferenceException
   Exception Target Site: State..ctor
   Exception Message:     Object reference not set to an instance of an object.
   Exception Data:        none

   --[ Stack Trace ]------------
   Sooloos.Broker.State..ctor(BrokerConfig config, StorageManager storage)
       Roon.Broker.Core.dll, IL 240, N 937
   Sooloos.Broker.Modules.Core.Create(BrokerConfig config, String platform)
       Roon.Broker.Core.dll, IL 130, N 507
   Sooloos.Application.Main(String[] argv)
       RoonAppliance.dll, IL 1265, N 2679

11/30 17:19:20 Error:
Local Time:            11/30/2021 17:19:20 -08:00
Device Serial Number:  23389004-99F9-4B80-99B4-BE25A8C410A0
Roon Version:       1.8 (build 850) stable
OS Version:            Linux 5.13.0-22-generic
Mono Version:          unknown

Application Domain:    RoonAppliance
Assembly Codebase:     file:///opt/RoonServer/Appliance/RoonAppliance.dll
Assembly Full Name:    RoonAppliance, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null

   Exception Source:      Roon.Broker.Core
   Exception Type:        System.NullReferenceException
   Exception Target Site: State..ctor
   Exception Message:     Object reference not set to an instance of an object.
   Exception Data:        none

   --[ Stack Trace ]------------
   Sooloos.Broker.State..ctor(BrokerConfig config, StorageManager storage)
       Roon.Broker.Core.dll, IL 240, N 937
   Sooloos.Broker.Modules.Core.Create(BrokerConfig config, String platform)
       Roon.Broker.Core.dll, IL 130, N 507
   Sooloos.Application.Main(String[] argv)
       RoonAppliance.dll, IL 1265, N 2679

gparsons@nuc-roon:/var/roon/RoonServer/Logs$

Here’s systemctl status:

gparsons@nuc-roon:/var/roon/RoonServer/Logs$ sudo systemctl status roonserver
● roonserver.service - RoonServer
     Loaded: loaded (/etc/systemd/system/roonserver.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-11-30 17:06:22 PST; 15min ago
   Main PID: 6074 (start.sh)
      Tasks: 21 (limit: 18952)
     Memory: 36.4M
        CPU: 3min 1.313s
     CGroup: /system.slice/roonserver.service
             ├─6074 /bin/bash /opt/RoonServer/start.sh
             └─6079 /opt/RoonServer/RoonDotnet/RoonServer RoonServer.dll

Nov 30 17:21:45 nuc-roon start.sh[6079]: Error
Nov 30 17:21:47 nuc-roon start.sh[6079]: Initializing
Nov 30 17:21:47 nuc-roon start.sh[6079]: Started
Nov 30 17:21:47 nuc-roon start.sh[6079]: Error
Nov 30 17:21:49 nuc-roon start.sh[6079]: Initializing
Nov 30 17:21:49 nuc-roon start.sh[6079]: Started
Nov 30 17:21:49 nuc-roon start.sh[6079]: Error
Nov 30 17:21:51 nuc-roon start.sh[6079]: Initializing
Nov 30 17:21:51 nuc-roon start.sh[6079]: Started
Nov 30 17:21:52 nuc-roon start.sh[6079]: Error
gparsons@nuc-roon:/var/roon/RoonServer/Logs$

On my running Core with music playing there aren’t open sockets, either.

Your reported filesystems look fine to me, I can’t detect anything unusual. I don’t know what the ‘easy uninstall’ of Roon does, but after the uninstall I would have a look in /var/roon and /opt/roon and if any of these directories have survived the ‘easy uninstall’, I would remove them. Then do a clean install. By this you will lose your database and all setup info and cache, but I suppose that the ‘easy uninstall’ would get rid of those anyway…

If it were me, I probably would wipe out the root partition and do a clean reinstall of the OS, doing only a plain standard server install at first. Then install Roon Server to make sure it works. After that you always can install any of the desktop environments supported and distributed by Ubuntu on top of the server environment to get back your workstation environment. I at first had my Roon Core on Ubuntu 20.04 workstation and decided later on to do a clean reinstall with only the minimum server packages required. So I progressed from more to less…

Other than that I have no idea what’s happening on your machine, why the NullPointerException at the startup of the Core. If a fresh and clean install can’t resolve your problem, official Roon support should have a look to get that sorted out…

By the way, the new Linux build installs automatically all .Net dependencies, you only have to make sure that you have libicu installed, which is the case as with all current distros…

Good luck!

Yes, full clean install seems to work!

Easy uninstall removes /opt/roon completely, but leaves /var/roon (with DB & settings). I uninstalled & then renamed /var/roon as a backup. Then reinstalled clean – it starts & I can connect, yay! Let’s hope my last DB backup is good.

gparsons@nuc-roon:/var/roon/RoonServer/Logs$ tail -20 RoonServer_log.txt
11/30 18:15:48 Info: [stats] 27059mb Virtual, 201mb Physical, 73mb Managed, 201 Handles, 65 Threads
11/30 18:16:02 Trace: [broker/accounts] [heartbeat] now=12/1/2021 2:16:02 AM nextauthrefresh=12/1/2021 3:11:02 AM nextmachineallocate=12/1/2021 6:11:02 AM
11/30 18:16:03 Info: [stats] 27027mb Virtual, 201mb Physical, 73mb Managed, 201 Handles, 61 Threads
11/30 18:16:18 Info: [stats] 27011mb Virtual, 201mb Physical, 74mb Managed, 201 Handles, 63 Threads
11/30 18:16:33 Info: [stats] 27116mb Virtual, 202mb Physical, 75mb Managed, 201 Handles, 74 Threads
11/30 18:16:39 Trace: [push] retrying connection in 0ms
11/30 18:16:39 Trace: [broker/accounts] network reachability changed. refreshing
11/30 18:16:39 Debug: [tidal] network reachability changed. refreshing token
11/30 18:16:39 Trace: [broker/accounts] [heartbeat] now=12/1/2021 2:16:39 AM nextauthrefresh=12/1/2021 3:11:02 AM nextmachineallocate=12/1/2021 6:11:02 AM
11/30 18:16:39 Trace:  [broker/accounts]   doing auth refresh, next=12/1/2021 3:11:02 AM
11/30 18:16:39 Trace: [roonapi] network reachability changed. Kicking off discovery cycle
11/30 18:16:39 Trace: Successful POST response from https://push.roonlabs.com/push/1/connect
11/30 18:16:39 Trace: [push] connecting to 35.196.114.77:9204
11/30 18:16:39 Trace: [push] connected
11/30 18:16:40 Trace: [push] short read from connector (1)
11/30 18:16:40 Trace: [push] retrying connection in 69824ms
11/30 18:16:41 Trace: [server] network reachability changed. Kicking off discovery cycle
11/30 18:16:44 Debug: [easyhttp] [7] POST to https://discovery.roonlabs.net/1/register returned after 322 ms, status code: 200
11/30 18:16:44 Trace: [inetdiscovery] registered 1 devices, 4 services
11/30 18:16:48 Info: [stats] 27300mb Virtual, 206mb Physical, 82mb Managed, 207 Handles, 97 Threads
gparsons@nuc-roon:/var/roon/RoonServer/Logs$

After a clean install (with /var/roon removed) it is now working. I am restoring my DB at the moment.

Note I installed a lot of Linux packages in the older 21.04, before upgrading to 21.10, so it might have been a problem with one of the packages that got carried over to 21.10. Or maybe I corrupted the Roon DB or a setting during one of the installs/reboots.

But if my restore works I’m happy. And if the restore doesn’t, then it’s probably a corrupt DB issue, and I’ll be sad unless one of the previous restores is OK.

1 Like