New RoonServer install with restored backup in repeated crash loop if you try to login from a client

Core Machine (Operating system/System info/Roon build number)

Ubuntu 18.04.3 LTS

100600416
1.6 (build 416) stable
stable

Network Details (Including networking gear model/manufacturer and if on WiFi/Ethernet)

Ethernet connected. Mikrotik switch.
I also have a QNAP NAS running Roon that is working fine so don’t believe I have a network issue.

Audio Devices (Specify what device you’re using and its connection type - USB/HDMI/etc.)

Not applicable I’m sure - I didn’t get to try to play any audio yet.
But my host server has Alsa audio device (motherboard audio).
And I have a Raspberry Pi running Volumio with Roonbridge installed.
My QNAP NAS’ Roon can play to my devices fine.

Description Of Issue

I’m trying to move my RoonServer off my QNAP NAS and onto my server - which is also running Plex for video media.

I followed the guide at https://kb.roonlabs.com/FAQ:_How_do_I_move_my_Roon_library_to_a_new_computer%3F

I used the recommended roonserver-installed shell script.

I completed up to and including the step where you restore the backup - step 4

The restore took some time but appeared to work fine.

But I’m now trying to connect in order to correct paths as per the guide linked to:

https://kb.roonlabs.com/FAQ:_How_do_I_move_my_collection_to_a_new_folder%2C_hard_drive_or_NAS%2C_Will_I_lose_my_edits%3F

But I can’t connect from a Roon client.

When I look at my server I see that RoonServer is repeatedly crashing and restarting, each time with this error:

Oct 29 21:41:24 plex-server start.sh[30932]: Running
Oct 29 21:41:32 plex-server start.sh[30932]: terminate called after throwing an instance of 'OpenHome::NetworkError'
Oct 29 21:41:32 plex-server start.sh[30932]: Stacktrace:
Oct 29 21:41:32 plex-server start.sh[30932]:   at <unknown> <0xffffffff>
Oct 29 21:41:32 plex-server start.sh[30932]:   at (wrapper managed-to-native) OpenHome.Net.ControlPoint.CpDeviceListUpnpServiceType.CpDeviceListCreateUpnpServiceType (intptr,int
ptr,uint,OpenHome.Net.ControlPoint.CpDeviceList/CallbackDevice,intptr,OpenHome.Net.ControlPoint.CpDeviceList/CallbackDevice,intptr) [0x00030] in <21295a8acb1a4b59920209b723ef086
4>:0
Oct 29 21:41:32 plex-server start.sh[30932]:   at OpenHome.Net.ControlPoint.CpDeviceListUpnpServiceType..ctor (string,string,uint,OpenHome.Net.ControlPoint.CpDeviceList/ChangeHa
ndler,OpenHome.Net.ControlPoint.CpDeviceList/ChangeHandler) [0x00042] in <21295a8acb1a4b59920209b723ef0864>:0
Oct 29 21:41:32 plex-server start.sh[30932]:   at OpenHome.Net.ControlPoint.CpUpnpDeviceListFactory.CreateListServiceType (string,string,uint,OpenHome.Net.ControlPoint.CpDeviceL
ist/ChangeHandler,OpenHome.Net.ControlPoint.CpDeviceList/ChangeHandler) [0x00007] in <21295a8acb1a4b59920209b723ef0864>:0
Oct 29 21:41:32 plex-server start.sh[30932]:   at Sooloos.Broker.Transport.SongcastDirect.ReInit () [0x00235] in <c3f83e578441427188bf8c55d2a55639>:0
Oct 29 21:41:32 plex-server start.sh[30932]:   at Sooloos.Broker.Transport.SongcastDirect..ctor (Sooloos.Broker.State,Sooloos.Broker.Transport.Module) [0x0007e] in <c3f83e578441
427188bf8c55d2a55639>:0
Oct 29 21:41:32 plex-server start.sh[30932]:   at Sooloos.Broker.Transport.Module.Enable () [0x001e9] in <c3f83e578441427188bf8c55d2a55639>:0
Oct 29 21:41:32 plex-server start.sh[30932]:   at Sooloos.Broker.Transport.Module.UpdateEnabled () [0x00035] in <c3f83e578441427188bf8c55d2a55639>:0
Oct 29 21:41:32 plex-server start.sh[30932]:   at Sooloos.Broker.Transport.Module.Init (Sooloos.Broker.Database) [0x000bf] in <c3f83e578441427188bf8c55d2a55639>:0
Oct 29 21:41:32 plex-server start.sh[30932]:   at Sooloos.Broker.State._InitTransportThreadAsync () [0x0000c] in <c3f83e578441427188bf8c55d2a55639>:0
Oct 29 21:41:32 plex-server start.sh[30932]:   at Sooloos.SynchronizationContextThread/<>c__DisplayClass45_0.<Post>b__0 (object) [0x00006] in <25d73f18cc0f460fa0e05f69a9433340>:
0
Oct 29 21:41:32 plex-server start.sh[30932]:   at Sooloos.SynchronizationContextThread._Dispatch (Sooloos.SynchronizationContextThread/SendOrPostWrapper&) [0x0001e] in <25d73f18
cc0f460fa0e05f69a9433340>:0
Oct 29 21:41:32 plex-server start.sh[30932]:   at Sooloos.SynchronizationContextThread._Go () [0x00025] in <25d73f18cc0f460fa0e05f69a9433340>:0
Oct 29 21:41:32 plex-server start.sh[30932]:   at System.Threading.ThreadHelper.ThreadStart_Context (object) [0x0001f] in <370a0c27f4b74d1a81431037df6d75bf>:0
Oct 29 21:41:32 plex-server start.sh[30932]:   at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) 
[0x00073] in <370a0c27f4b74d1a81431037df6d75bf>:0
Oct 29 21:41:32 plex-server start.sh[30932]:   at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00004
] in <370a0c27f4b74d1a81431037df6d75bf>:0
Oct 29 21:41:32 plex-server start.sh[30932]:   at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object) [0x0002f] in 
<370a0c27f4b74d1a81431037df6d75bf>:0
Oct 29 21:41:32 plex-server start.sh[30932]:   at System.Threading.ThreadHelper.ThreadStart () [0x00014] in <370a0c27f4b74d1a81431037df6d75bf>:0
Oct 29 21:41:32 plex-server start.sh[30932]:   at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) [0x0004f] in <370a0c27f4b74d1a8143103
7df6d75bf>:0

in syslog this is followed by a lengthy dump of /proc/self/maps, and then

Oct 29 21:41:32 plex-server start.sh[30932]: Native stacktrace:
Oct 29 21:41:32 plex-server start.sh[30932]: #011/opt/RoonServer/RoonMono/bin/RoonAppliance() [0x5064e6]
Oct 29 21:41:32 plex-server start.sh[30932]: #011/opt/RoonServer/RoonMono/bin/RoonAppliance() [0x5ca974]
Oct 29 21:41:32 plex-server start.sh[30932]: #011/lib/x86_64-linux-gnu/libpthread.so.0(+0x12890) [0x7f963abf4890]
Oct 29 21:41:32 plex-server start.sh[30932]: #011/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7) [0x7f963a617e97]
Oct 29 21:41:32 plex-server start.sh[30932]: #011/lib/x86_64-linux-gnu/libc.so.6(abort+0x141) [0x7f963a619801]
Oct 29 21:41:32 plex-server start.sh[30932]: #011/opt/RoonServer/Appliance/libleveldb.so(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0xbf) [0x7f95ffdad3ee]
Oct 29 21:41:32 plex-server start.sh[30932]: #011/opt/RoonServer/Appliance/libleveldb.so(_ZN10__cxxabiv111__terminateEPFvvE+0x3) [0x7f95ffd6c3a2]
Oct 29 21:41:32 plex-server start.sh[30932]: #011/opt/RoonServer/Appliance/libleveldb.so(_ZN10__cxxabiv112__unexpectedEPFvvE+0) [0x7f95ffd6c3d8]
Oct 29 21:41:32 plex-server start.sh[30932]: #011/opt/RoonServer/Appliance/libleveldb.so(__cxa_rethrow+0) [0x7f95ffd6bc42]
Oct 29 21:41:32 plex-server start.sh[30932]: #011/opt/RoonServer/Appliance/libohNet.so(+0x12fefe) [0x7f95ae34aefe]
Oct 29 21:41:32 plex-server start.sh[30932]: #011/opt/RoonServer/Appliance/libohNet.so(+0xb195f) [0x7f95ae2cc95f]
Oct 29 21:41:32 plex-server start.sh[30932]: #011/opt/RoonServer/Appliance/libohNet.so(+0xb3075) [0x7f95ae2ce075]
Oct 29 21:41:32 plex-server start.sh[30932]: #011/opt/RoonServer/Appliance/libohNet.so(+0x13cf3b) [0x7f95ae357f3b]
Oct 29 21:41:32 plex-server start.sh[30932]: #011/opt/RoonServer/Appliance/libohNet.so(+0xbfdca) [0x7f95ae2dadca]
Oct 29 21:41:32 plex-server start.sh[30932]: #011/opt/RoonServer/Appliance/libohNet.so(+0xc0664) [0x7f95ae2db664]
Oct 29 21:41:32 plex-server start.sh[30932]: #011/opt/RoonServer/Appliance/libohNet.so(CpDeviceListCreateUpnpServiceType+0xd5) [0x7f95ae2d1945]
Oct 29 21:41:32 plex-server start.sh[30932]: #011[0x4149db64]
Oct 29 21:41:32 plex-server start.sh[30932]: =================================================================
Oct 29 21:41:32 plex-server start.sh[30932]: Got a SIGABRT while executing native code. This usually indicates
Oct 29 21:41:32 plex-server start.sh[30932]: a fatal error in the mono runtime or one of the native libraries
Oct 29 21:41:32 plex-server start.sh[30932]: used by your application.
Oct 29 21:41:32 plex-server start.sh[30932]: =================================================================
Oct 29 21:41:32 plex-server start.sh[30932]: Error

My server was essentially crashing and restarting continuously as I try to login:

steve@plex-server:~$ grep 'called after throwing' /var/log/syslog
Oct 29 21:35:44 plex-server start.sh[30932]: terminate called after throwing an instance of 'OpenHome::NetworkError'
Oct 29 21:36:39 plex-server start.sh[30932]: terminate called after throwing an instance of 'OpenHome::NetworkError'
Oct 29 21:36:56 plex-server start.sh[30932]: terminate called after throwing an instance of 'OpenHome::NetworkError'
Oct 29 21:37:14 plex-server start.sh[30932]: terminate called after throwing an instance of 'OpenHome::NetworkError'
Oct 29 21:37:31 plex-server start.sh[30932]: terminate called after throwing an instance of 'OpenHome::NetworkError'
Oct 29 21:37:48 plex-server start.sh[30932]: terminate called after throwing an instance of 'OpenHome::NetworkError'
Oct 29 21:38:05 plex-server start.sh[30932]: terminate called after throwing an instance of 'OpenHome::NetworkError'
Oct 29 21:38:22 plex-server start.sh[30932]: terminate called after throwing an instance of 'OpenHome::NetworkError'
Oct 29 21:38:39 plex-server start.sh[30932]: terminate called after throwing an instance of 'OpenHome::NetworkError'
Oct 29 21:38:57 plex-server start.sh[30932]: terminate called after throwing an instance of 'OpenHome::NetworkError'
Oct 29 21:39:14 plex-server start.sh[30932]: terminate called after throwing an instance of 'OpenHome::NetworkError'
Oct 29 21:39:31 plex-server start.sh[30932]: terminate called after throwing an instance of 'OpenHome::NetworkError'
Oct 29 21:39:48 plex-server start.sh[30932]: terminate called after throwing an instance of 'OpenHome::NetworkError'
Oct 29 21:40:06 plex-server start.sh[30932]: terminate called after throwing an instance of 'OpenHome::NetworkError'
Oct 29 21:40:23 plex-server start.sh[30932]: terminate called after throwing an instance of 'OpenHome::NetworkError'
Oct 29 21:40:40 plex-server start.sh[30932]: terminate called after throwing an instance of 'OpenHome::NetworkError'
Oct 29 21:40:57 plex-server start.sh[30932]: terminate called after throwing an instance of 'OpenHome::NetworkError'
Oct 29 21:41:14 plex-server start.sh[30932]: terminate called after throwing an instance of 'OpenHome::NetworkError'
Oct 29 21:41:32 plex-server start.sh[30932]: terminate called after throwing an instance of 'OpenHome::NetworkError'

My Roonserver on my NAS is shut down while I try to get this new one up and running.

What could the problem be.

Hi @Steve_Davies,

I am hoping you could use the directions found here and send us over a set of logs using a shared Dropbox link. We will need logs from your New Core machine.

Hi Dylan,

For sure - find the logs here: https://www.dropbox.com/s/si4yio20plyw8xg/Steve_Davies_logs.zip?dl=0

Taking a quick look pretty much all the logs end the same, except the very first and the last where I shut it down:

root@plex-server:/var/roon/RoonServer/Logs# for f in *; do tail -1 $f ; done | sort
10/29 21:35:14 Info: [stats] 2007mb Virtual, 163mb Physical, 36mb Managed, 0 Handles, 27 Threads
10/29 21:35:44 Trace: [scd] using subnet 10400a 10.64.16.0
10/29 21:36:39 Trace: [scd] using subnet 10400a 10.64.16.0
10/29 21:36:56 Trace: [scd] using subnet 10400a 10.64.16.0
10/29 21:37:14 Trace: [scd] using subnet 10400a 10.64.16.0
10/29 21:37:31 Trace: [scd] using subnet 10400a 10.64.16.0
10/29 21:37:48 Trace: [scd] using subnet 10400a 10.64.16.0
10/29 21:38:05 Trace: [scd] using subnet 10400a 10.64.16.0
10/29 21:38:22 Trace: [scd] using subnet 10400a 10.64.16.0
10/29 21:38:39 Trace: [scd] using subnet 10400a 10.64.16.0
10/29 21:38:57 Trace: [scd] using subnet 10400a 10.64.16.0
10/29 21:39:14 Trace: [scd] using subnet 10400a 10.64.16.0
10/29 21:39:31 Trace: [scd] using subnet 10400a 10.64.16.0
10/29 21:39:48 Trace: [scd] using subnet 10400a 10.64.16.0
10/29 21:40:06 Trace: [scd] using subnet 10400a 10.64.16.0
10/29 21:40:23 Trace: [scd] using subnet 10400a 10.64.16.0
10/29 21:40:40 Trace: [scd] using subnet 10400a 10.64.16.0
10/29 21:40:57 Trace: [scd] using subnet 10400a 10.64.16.0
10/29 21:41:14 Trace: [scd] using subnet 10400a 10.64.16.0
10/29 21:41:32 Trace: [scd] using subnet 10400a 10.64.16.0
10/29 21:41:47 Trace: [push] connected

That seems to say it was trying to do something networky?

What ports does RoonServer want to bind to?

Here’s what is already in use:

root@plex-server:/var/roon/RoonServer/Logs# netstat -nap | grep LISTEN
tcp        0      0 127.0.0.1:44877         0.0.0.0:*               LISTEN      31942/Plex Plug-in  
tcp        0      0 127.0.0.1:45357         0.0.0.0:*               LISTEN      1492/Plex Plug-in [ 
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      769/rpcbind         
tcp        0      0 127.0.0.1:32401         0.0.0.0:*               LISTEN      1066/Plex Media Ser 
tcp        0      0 127.0.0.1:40597         0.0.0.0:*               LISTEN      31846/Plex Plug-in  
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      768/systemd-resolve 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      949/sshd            
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      10482/cupsd         
tcp        0      0 0.0.0.0:33400           0.0.0.0:*               LISTEN      1492/Plex Plug-in [ 
tcp        0      0 127.0.0.1:32600         0.0.0.0:*               LISTEN      1458/Plex Tuner Ser 
tcp        0      0 127.0.0.1:44633         0.0.0.0:*               LISTEN      31916/Plex Plug-in  
tcp        0      0 127.0.0.1:43609         0.0.0.0:*               LISTEN      31888/Plex Plug-in  
tcp        0      0 0.0.0.0:33443           0.0.0.0:*               LISTEN      1492/Plex Plug-in [ 
tcp        0      0 0.0.0.0:47689           0.0.0.0:*               LISTEN      31440/rpc.statd     
tcp        0      0 127.0.0.1:36041         0.0.0.0:*               LISTEN      1214/Plex Plug-in [ 
tcp6       0      0 :::111                  :::*                    LISTEN      769/rpcbind         
tcp6       0      0 :::32400                :::*                    LISTEN      1066/Plex Media Ser 
tcp6       0      0 :::48753                :::*                    LISTEN      31440/rpc.statd     
tcp6       0      0 :::22                   :::*                    LISTEN      949/sshd            
tcp6       0      0 ::1:631                 :::*                    LISTEN      10482/cupsd         
tcp6       0      0 :::8920                 :::*                    LISTEN      931/EmbyServer      
tcp6       0      0 :::8096                 :::*                    LISTEN      931/EmbyServer      

Here’s what Roon stuff is using on the QNAP:

[~] # netstat -nap | grep LISTEN | grep Roon
netstat: showing only processes with your user ID
tcp        0      0 127.0.0.1:37769         0.0.0.0:*               LISTEN      28375/RoonServer
tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN      28459/RoonAppliance
tcp        0      0 0.0.0.0:9101            0.0.0.0:*               LISTEN      28459/RoonAppliance
tcp        0      0 0.0.0.0:42715           0.0.0.0:*               LISTEN      28459/RoonAppliance
tcp        0      0 0.0.0.0:9150            0.0.0.0:*               LISTEN      28459/RoonAppliance
tcp        0      0 10.0.3.1:42215          0.0.0.0:*               LISTEN      28459/RoonAppliance

So I don’t see any clash.

Anyhow - hopefull the logs are useful. My home lan is 10.64.16.0/24.

Hi,

I went looking in /var/roon/RoonServer and found the “Storage” directory which contains this:

steve@plex-server:/var/roon/RoonServer/Database/Registry/Storage$ cat loc_8f03a84d81ef4ddc90175bb52e80541f 
{
    "id": "8f03a84d-81ef-4ddc-9017-5bb52e80541f",
    "version": 2,
    "rescandelay": 4,
    "location": {
        "drive": {
            "type": "Attached",
            "volume": {
                "id": "Q176I06078",
                "title": "QNAP TS-451+",
                "subtitle": "ellie, Q176I06078, QTS 4.4.1\n"
            }
        },
        "isdir": true,
        "path": "/Plex/music",
        "id": "QNAPROOT"
    },
    "ignorepatterns": [
        "/tmp/",
        "/temp/",
        "/.",
        ".pmbmf/"
    ]
}

So this looks like the result of importing the backup from the Roon install on my QNAP.

/Plex/music seems to map to /share/CACHEDEV1_DATA/Plex/music on my QNAP.

This needs to change for my new box where the same location can be found at /nas/Plex/music via a mount.

How do I change this by hand since I can’t use the Roon app since the Roon server won’t stay up?

Thanks,
Steve

You might want to take a look at:

Hi @Steve_Davies,

I’ve passed the logs over to the technical team for analysis, I’ll be sure to update you as soon as I receive their feedback.

In the meantime, I’m hoping you can confirm that Roon works okay with a fresh database.

If you navigate to your Roon’s Database Location and then rename the RoonServer folder to RoonServer_Old and restart Roon, are you able to use Roon? If you start importing content to this fresh database does that work?

Hi,

No - my new Roon server still crashes when I try to login even without restoring my old database.

I renamed RoonServer directory as you asked, started roon (service roonserver start). My Roon client could find the server, I tried to login with my Roon login and the server crashed with the same error as before:

Oct 30 22:32:34 plex-server start.sh[10145]: terminate called after throwing an instance of 'OpenHome::NetworkError'

Thanks,
Steve

Hi,

I found the OpenHome project on github.

It crashed in this function:

/**
 * Create a list of the UPnP devices of a given service type on the current subnet
 *
 * @param[in] aDomainName  The domain name of the target service
 * @param[in] aServiceType  The type of the target service
 * @param[in] aVersion     The version number of the target service
 * @param[in] aAdded       Function pointer which is called when a device is added to the list
 * @param[in] aPtrAdded    Will be passed as the second parameter to aAdded
 * @param[in] aRemoved     Function pointer which is called when a device is removed from the list
 * @param[in] aPtrRemoved  Will be passed as the second parameter to aRemoved
 *
 * @return  Handle to the list.  Use CpDeviceListDestroy to later destroy the list.
 */
HandleCpDeviceList STDCALL CpDeviceListCreateUpnpServiceType(const char* aDomainName, const char* aServiceType, uint32_t aVersion,
                                                             OhNetCallbackDevice aAdded, void* aPtrAdded,
                                                             OhNetCallbackDevice aRemoved, void* aPtrRemoved)
{
    FunctorCpiDevice added = MakeFunctorCpiDeviceC(aPtrAdded, (OhNetFunctorDevice)aAdded);
    FunctorCpiDevice removed = MakeFunctorCpiDeviceC(aPtrRemoved, (OhNetFunctorDevice)aRemoved);
    const Brn domain(aDomainName);
    const Brn type(aServiceType);
    CpiDeviceList* list = new CpiDeviceListUpnpServiceType(*gCpStack, domain, type, aVersion, added, removed);
    list->Start();
    return (THandle)list;
}

So I’ve got some sort of issue with uPNP on this box?

I see @BlackJack thinks it might be fighting with Plex or Emby? Is this a known problem @dylan ?

Steve

Hey there,

Anything listening to 1900/udp in your network that might confuse the discovery? You can try to close this port as a start. If nothing else on your Ubuntu, can you try to start Roon with the network unplugged?

Torpi

Hi @Torpi,

I am trying to move my RoonServer from my overloaded QNAP NAS to a separate Ubuntu box. The separate box also runs Plex and has Emby installed too.

So things used to work fine with Roon on the QNAP and Plex/Emby on the ubuntu server.

So I don’t think the problem is having them on the same network.

But I think it is specifically a conflict for access to port 1900 on the Ubuntu server, since I see now that Emby has port 1900 open.

I went looking in the Emby config and found that I could get it to close port 1900 only by:

  1. On Devices>DLNA, I turned off “Enable DLNA Play To” and “Enable DLNA server”

  2. In Advanced I turned off “Enable automatic port mapping”

  3. I then did “service emby-server stop” and “service emby-server start”

Having done that Emby freed up port 1900.

Those changes will presumably affect how Emby behaves, but one thing at a time.

Unfortunately, as everyone knows, there is no access to a Roon server from outside the local LAN so testing the effect will have to wait until I’m home.

Steve

Hi,

Happy to say that RoonServer stayed up once I disabled DLNA and automatic port mapping in Emby as in my previous post.

I then put my restored database back (I renamed /var/roon/RoonServer_old back to /var/roon/RoonServer) and adjusted my storage to the new location and my Roon is grooving along.

Thanks all for the help and hints.

Steve

Hello @Steve_Davies,

I wanted to reach out and let you know that we released Roon 1.7 Build 571, which includes some improvements that we believe should help here. Please give the update a try and let us know if it helps!

You can read the full release notes here:

Thanks,
Roon Support

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.