Randomly stops playing and all my sources disappear briefly on Linux Vm (Proxmox)

Roon Server Machine

Server is a Linux VM in Proxmox. 8GB of RAM.

Networking Gear & Setup Details

My network is a unifi network. No VPN. My PC is on Ethernet and so is the roon server. No loss of connectivity anywhere between my PC and the roon server.

Connected Audio Devices

I’m using a Schiit modi 3 DAC on my PC.

Number of Tracks in Library

200 or so tracks.

Description of Issue

In the Windows client, Roon randomly stops playing and all of my sources disappear. About a minute later, my sources re-appear, the current track will be paused at the location it stopped, and I have to press play to resume it.

Not a supported configuration; usually goes along with also unsupported virtual network(device)s.

But your issue description is basically telling otherwise.

Qurestion: Do you really mean sources (albums from streaming services or files) or maybe (audio output) zones.
In any case it would be helpful if you could provide more details like (file) location and/or type of zones and if grouped. You can also take a look at Roon’s logs to see what gets reported there (most likely a loss of connection though).

Not a supported configuration; usually goes along with also unsupported virtual network(device)s.

Understood.

But your issue description is basically telling otherwise.

I can run a continuous ping from my PC to my roon server with zero packet loss, and when the issue occurs, still good connectivity. So as best as I can tell, it seems like actual basic network connectivity is not being interrupted, but as you’ll see below, the logs do suggest otherwise.

Qurestion: Do you really mean sources (albums from streaming services or files) or maybe (audio output) zones .

Apologies - I mean zones. And I should note that this happens whether I’m listening from a streaming source, local files, or files on my NAS.

You can also take a look at Roon’s logs to see what gets reported there (most likely a loss of connection though).

Here are what I think are the relative snippets, I can attach more if anyone wants to look at more context - my PC is 10.1.1.149, the Roon server is 10.1.1.225.

The problem in this case occurs at 17:20:27.

I definitely concur that the connection is being dropped. It looks like the roon server is losing its connection to the RAAT server on my PC (if I understand what’s happening correctly).

I’m going to try the usual general troubleshooting steps, e.g. disabling windows firewall, to try and narrow it down.

RoonServer log -

12/15 17:20:06 Trace: [Modi] [Lossless, 16/44 FLAC => 16/44] [100% buf] [PLAYING @ 0:04/4:10] The Rebel Path - P.T. Adamczyk
12/15 17:20:10 Info: [stats] 12486mb Virtual, 6434mb Physical, 3479mb Managed, 5138 Handles, 79 Threads
12/15 17:20:11 Trace: [Modi] [Lossless, 16/44 FLAC => 16/44] [100% buf] [PLAYING @ 0:09/4:10] The Rebel Path - P.T. Adamczyk
12/15 17:20:16 Trace: [Modi] [Lossless, 16/44 FLAC => 16/44] [100% buf] [PLAYING @ 0:14/4:10] The Rebel Path - P.T. Adamczyk
12/15 17:20:22 Trace: [Modi] [Lossless, 16/44 FLAC => 16/44] [100% buf] [PLAYING @ 0:20/4:10] The Rebel Path - P.T. Adamczyk                        
12/15 17:20:26 Info: [stats] 13561mb Virtual, 6482mb Physical, 3716mb Managed, 5139 Handles, 213 Threads
12/15 17:20:27 Trace: [Modi] [Lossless, 16/44 FLAC => 16/44] [100% buf] [PLAYING @ 0:25/4:10] The Rebel Path - P.T. Adamczyk
12/15 17:20:27 Trace: [rnet/RnetJsonClient] no data received for >10000ms. Killing connection.
12/15 17:20:27 Trace: [raatserver] [RaatServer DOTMATRIX @ 10.1.1.149:9200] lost client connection. Retrying
12/15 17:20:27 Trace: [raatserver] [RaatServer DOTMATRIX @ 10.1.1.149:9200] connecting (attempt 1)
12/15 17:20:27 Info: [transport] destroyed zone Modi was playing? True
12/15 17:20:27 Trace: [zone Modi] Suspend
12/15 17:20:27 Info: [zone Modi] OnPlayFeedback Stopped
12/15 17:20:27 Info: [zone Modi] Canceling Pending Sleep
12/15 17:20:27 Info: [zone Modi] Canceling Pending Sleep
12/15 17:20:27 Debug: [raat/tcpaudiosource] disconnecting
12/15 17:20:27 Trace: [Modi] [zoneplayer/raat] Endpoint Schiit Modi 3 State Changed: Playing => Prepared
12/15 17:20:27 Info: [audio/env] [zoneplayer -> stream] All streams were disposed
12/15 17:20:27 Info: [audio/env] [zoneplayer -> stream -> endpoint] All streams were disposed
12/15 17:20:27 Info: [audio/env] [zoneplayer] All streams were disposed
12/15 17:20:27 Info: sleep 220ms after flush
12/15 17:20:27 Error: getting null client....
12/15 17:20:29 Trace: [rnet/RnetJsonClient] no data received for >10000ms. Killing connection.
12/15 17:20:29 Trace: [raatserver] [RaatServer roon @ 127.0.0.1:9200] lost client connection. Retrying
12/15 17:20:29 Trace: [raatserver] [RaatServer roon @ 127.0.0.1:9200] connecting (attempt 1)
12/15 17:20:37 Trace: [raatserver] [RaatServer DOTMATRIX @ 10.1.1.149:9200] client connection failed. Retrying in 500ms
12/15 17:20:38 Trace: [raatserver] [RaatServer DOTMATRIX @ 10.1.1.149:9200] connecting (attempt 2)
12/15 17:20:39 Trace: [raatserver] [RaatServer roon @ 127.0.0.1:9200] client connection failed. Retrying in 500ms
12/15 17:20:40 Trace: [raatserver] [RaatServer roon @ 127.0.0.1:9200] connecting (attempt 2)
12/15 17:20:41 Info: [stats] 13513mb Virtual, 6482mb Physical, 4046mb Managed, 5130 Handles, 203 Threads
12/15 17:20:44 Trace: [remoting/brokerserver] [initconn 10.1.1.149:64397=>10.1.1.225:9332] Connected
12/15 17:20:44 Info: [remoting/serverconnectionv2] Client disconnected: 10.1.1.149:62581
12/15 17:20:44 Trace: [raatserver] [RaatServer DOTMATRIX @ 10.1.1.149:9200] connected
12/15 17:20:44 Trace: [rnet/RnetJsonClient] SENT {"request":"enumerate_devices","subscription_id":"0"}
12/15 17:20:44 Trace: [raatserver] [RaatServer roon @ 127.0.0.1:9200] connected
12/15 17:20:44 Trace: [rnet/RnetJsonClient] SENT {"request":"enumerate_devices","subscription_id":"0"}
12/15 17:20:44 Trace: [library] endmutation in 319ms
12/15 17:20:44 Trace: [rnet/RnetJsonClient] GOT NONFINAL {"status": "Success", "devices": [{"device_id": "default", "config": {"unique_id": "3215a161-f0a1-5479-eb27-f34ca1d17dd9", "external_config": {}, "volume": {"type": "wasapi", "device": "default"}, "output": {"name": "System Output", "type": "wasapi", "device": "default"}}, "name": "System Output", "type": "wasapi", "is_system_output": true}, {"device_id": "{0.0.0.00000000}.{2c82b704-e3eb-466b-ae87-7021325d676b}", "name": "Voicemod Virtual Audio Device (WDM)", "type": "wasapi"}, {"device_id": "{0.0.0.00000000}.{5bbef4e3-7dfb-4e84-a38d-fefb987f797d}", "name": "NVIDIA High Definition Audio", "type": "wasapi"}, {"device_id": "{0.0.0.00000000}.{a0deb110-2046-4be7-9216-cd5b53010e5d}", "name": "NVIDIA High Definition Audio", "type": "wasapi"}, {"device_id": "{0.0.0.00000000}.{d15f062b-40e0-46b0-995e-8c4e87a6fd4e}", "config": {"unique_id": "c0868969-d87e-1731-450a-7e134a062500", "output": {"device": "{0.0.0.00000000}.{d15f062b-40e0-46b0-995e-8c4e87a6fd4e}", "type": "wasapi", "name": "Schiit Modi 3", "exclusive_mode": true, "event_driven_mode": true, "dsd_mode": "none"}, "volume": null, "external_config": {}}, "discovery_data": {"protocol_version": "3", "tcp_port": 62582, "unique_id": "c0868969-d87e-1731-450a-7e134a062500", "model": "N/A", "raat_version": "1.1.39", "version": "N/A", "vendor": "N/A"}, "name": "Schiit Modi 3", "type": "wasapi", "usb_id": "0d8c:0066"}, {"device_id": "{232685C6-6548-49D8-846D-4141A3EF7560}", "name": "ASIO4ALL v2", "type": "asio"}, {"device_id": "{429A7462-F176-411E-8DA9-AE6C0A258098}", "name": "Focusrite Thunderbolt ASIO", "type": "asio"}, {"device_id": "{AC4D0455-50D7-4498-B3CD-9A41D130B759}", "name": "Focusrite USB ASIO", "type": "asio"}, {"device_id": "{A80362FF-CE76-4DD9-874A-704C57BF0D6A}", "name": "Realtek ASIO", "type": "asio"}]}
12/15 17:20:44 Info: [raatserver] GOT DEVICE c9c8c281-7253-41be-b21c-a808090fbb40::{0.0.0.00000000}.{2c82b704-e3eb-466b-ae87-7021325d676b} Type=wasapi Name=Voicemod Virtual Audio Device (WDM) 
12/15 17:20:44 Info: [raatserver] GOT DEVICE c9c8c281-7253-41be-b21c-a808090fbb40::{0.0.0.00000000}.{5bbef4e3-7dfb-4e84-a38d-fefb987f797d} Type=wasapi Name=NVIDIA High Definition Audio 
12/15 17:20:44 Info: [raatserver] GOT DEVICE c9c8c281-7253-41be-b21c-a808090fbb40::{0.0.0.00000000}.{a0deb110-2046-4be7-9216-cd5b53010e5d} Type=wasapi Name=NVIDIA High Definition Audio 
12/15 17:20:44 Info: [raatserver] GOT DEVICE c9c8c281-7253-41be-b21c-a808090fbb40::{0.0.0.00000000}.{d15f062b-40e0-46b0-995e-8c4e87a6fd4e} Type=wasapi Name=Schiit Modi 3 UsbId=0d8c:0066
12/15 17:20:44 Info: [raatserver] GOT DEVICE c9c8c281-7253-41be-b21c-a808090fbb40::{232685C6-6548-49D8-846D-4141A3EF7560} Type=asio Name=ASIO4ALL v2  
12/15 17:20:44 Info: [raatserver] GOT DEVICE c9c8c281-7253-41be-b21c-a808090fbb40::{429A7462-F176-411E-8DA9-AE6C0A258098} Type=asio Name=Focusrite Thunderbolt ASIO 
12/15 17:20:44 Info: [raatserver] GOT DEVICE c9c8c281-7253-41be-b21c-a808090fbb40::{AC4D0455-50D7-4498-B3CD-9A41D130B759} Type=asio Name=Focusrite USB ASIO 
12/15 17:20:44 Info: [raatserver] GOT DEVICE c9c8c281-7253-41be-b21c-a808090fbb40::{A80362FF-CE76-4DD9-874A-704C57BF0D6A} Type=asio Name=Realtek ASIO 

RAATServer log from my PC (Windows 11) -

12/15 17:20:00 Trace: [RAAT::Schiit Modi 3] [lua@0000000026567D88] [10.1.1.225:48100]  GOT [22] {"request":"end_stream"}
12/15 17:20:00 Trace: [RAAT::Schiit Modi 3] [lua@0000000026567D88] [10.1.1.225:48100]  SENT [20] {"status":"Ended"}
12/15 17:20:00 Trace: [RAAT::Schiit Modi 3] [lua@0000000026567D88] [10.1.1.225:48100]  SENT [22] {"status":"Success"}
12/15 17:20:01 Trace: [RAAT::Schiit Modi 3] [lua@0000000026567D88] [10.1.1.225:48100]  GOT [23] {"request":"stream","stream_id":729465712,"first_seq":-1,"nak_port":-1,"buffer_size":10,"ready_threshold":0.2}
12/15 17:20:01 Trace: [RAAT::Schiit Modi 3] [lua@0000000026567D88] [10.1.1.225:48100]  SENT [23] {"status":"Buffering"}
12/15 17:20:01 Trace: [RAAT::Schiit Modi 3] [lua@0000000026567D88] [10.1.1.225:48100]  SENT [23] {"status":"Ready"}
12/15 17:20:01 Trace: [RAAT::Schiit Modi 3] [lua@0000000026567D88] [10.1.1.225:48100]  GOT [24] {"request":"start","min_offset":240997733,"stream_sample":0}
12/15 17:20:01 Trace: [RAAT::Schiit Modi 3] [lua@0000000026567D88] [10.1.1.225:48100]  Doing ASAP start based on current device clock (min_offset=240997733)
12/15 17:20:01 Trace: [RAAT::Schiit Modi 3] [lua@0000000026567D88] [10.1.1.225:48100]  SENT [23] {"status":"Playing"}
12/15 17:20:01 Trace: [RAAT::Schiit Modi 3] [lua@0000000026567D88] [10.1.1.225:48100]  SENT [24] {"time":337207065000,"status":"Success"}
12/15 17:20:01 Trace: [RAAT::Schiit Modi 3] [output/wasapi] [Schiit Modi 3] waiting for start time... now=337100000000 start_time=337207065000
12/15 17:20:01 Trace: [RAAT::Schiit Modi 3] [output/wasapi] [Schiit Modi 3] starting playback: now (337200000000ns) + ns_per_buf(100000000) = 337300000000ns > 337207065000ns streamsample=0
12/15 17:20:27 Trace: [jsonserver] [10.1.1.225:47938] read: eof
12/15 17:20:27 Trace: [jsonserver] [10.1.1.225:47938] destroying client
12/15 17:20:27 Trace: [RAAT::Schiit Modi 3] [server] [10.1.1.225:48100] read: eof
12/15 17:20:27 Trace: [RAAT::Schiit Modi 3] [server] [10.1.1.225:48100] destroying client
12/15 17:20:27 Trace: [RAAT::Schiit Modi 3] [session] [10.1.1.225:48100] destroying session
12/15 17:20:27 Trace: [RAAT::Schiit Modi 3] [lua@0000000026567D88] [10.1.1.225:48100]  SENT [23] {"status":"Ended"}
12/15 17:20:27 Trace: [RAAT::Schiit Modi 3] [output/wasapi] teardown
12/15 17:20:27 Trace: [jsonserver] [10.1.1.225:60456] accepted connection
12/15 17:20:27 Warn: [RAAT::Schiit Modi 3] [server] failed to write to 10.1.1.225:48100: operation canceled. Closing connection.
12/15 17:20:37 Trace: [jsonserver] [10.1.1.225:60456] read: eof
12/15 17:20:37 Trace: [jsonserver] [10.1.1.225:60456] destroying client
12/15 17:20:38 Trace: [jsonserver] [10.1.1.225:60584] accepted connection
12/15 17:20:44 Trace: [jsonserver] [10.1.1.225:60584] GOT[LL] [1] {"request":"enumerate_devices","subscription_id":"0"}
12/15 17:20:44 Trace: [jsonserver] [10.1.1.225:60584] SENT [1] [nonfinal] {"status": "Success", "devices": [{"device_id": "default", "config": {"unique_id": "3215a161-f0a1-5479-eb27-f34ca1d17dd9", "external_config": {}, "volume": {"type": "wasapi", "device": "default"}, "outpu
12/15 17:20:44 Trace: [jsonserver] [10.1.1.225:60584] GOT[LL] [2] {"request":"enable_device","device_id":"{0.0.0.00000000}.{d15f062b-40e0-46b0-995e-8c4e87a6fd4e}","subscription_id":"8"}
12/15 17:20:44 Trace: [jsonserver] [10.1.1.225:60584] SENT [2] [nonfinal] {"status": "Success"}
12/15 17:20:44 Trace: [RAAT::Schiit Modi 3] [server] [10.1.1.225:47090] accepted connection
12/15 17:20:44 Trace: [RAAT::Schiit Modi 3] [session] [10.1.1.225:47090] created: 00000000265536F0 (000000002349BAA8)

I don’t know for sure, I think the only ones who can reliably interpret logs is Roon Labs support, but to me it looks like you may suffer from a serious clock (time) mismatch between client and server here.

12/15 17:20:01 Trace: [RAAT::Schiit Modi 3] [output/wasapi] [Schiit Modi 3] waiting for start time... now=337100000000 start_time=337207065000

you may suffer from a serious clock (time) mismatch between client and server here.

Certainly possible, although as best as I can tell both are sync’d with NTP - here’s the roon server:

chronyc> sources -v
210 Number of sources = 5

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^? 10.1.4.1                      0  10     0     -     +0ns[   +0ns] +/-    0ns
^* edge-iad.txryan.com           2  10   377   441   -678us[ -696us] +/-   10ms
^- sensei.ruselabs.com           2  10   377   472  -8860us[-8878us] +/-   63ms
^+ time.cloudflare.com           3  10   377   548   -820us[ -838us] +/-   25ms
^- haka.ruselabs.com             2  10   377   556  +4111us[+4093us] +/-   47ms
chronyc> 

And here’s my PC:

C:\Windows\System32>w32tm /query /status
Leap Indicator: 0(no warning)
Stratum: 3 (secondary reference - syncd by (S)NTP)
Precision: -23 (119.209ns per tick)
Root Delay: 0.0890787s
Root Dispersion: 7.8444123s
ReferenceId: 0xD8F02418 (source IP:  216.240.36.24)
Last Successful Sync Time: 12/15/2023 22:11:20
Source: pool.ntp.org,0x9
Poll Interval: 11 (2048s)

I’m continuing to monitor network connectivity to the roon server from my PC, but so far I haven’t seen any packet loss.

You meant the host for your VM’s and virtual network components here (not the actual Roon Server machine inside the container)?

From the logs I glean that the client did nothing than wait 'til the right time to start playing. Next is the disposal of the connection initiated from the server because the client did not respond (he was waiting). So possibly not a loss of actual, physical network connectivity and more loss of communication with the Roon playback client (because of timing mismatch). And here we are in the unsupported territory. Roon Labs does not test with visualized environments. There are no setup instructions or best practice guides available. It’s on you to troubleshoot and fix.
Sadly I don’t have any insight on what methods Roon might use to synchronize (playback) times between server and client. There seem to be many targets to troubleshoot (virtual network components, VM container, interaction between virtual components and the actual host OS and it’s physical devices).

I’m unsure if Roon is worth the time needed to troubleshoot all this and in the end you have to decide, but I would probably swap to a supported setup instead.

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