Play stops randomly - caused by Intel i218/i219 NIC or other network hardware with the same chip set

Roon Core Machine

Core: HP Z420 Workstation.
CPU: Quad Core Intel(R) Xeon(R) CPU E5-1620 0 @ 3.60GHz
speed/min/max: 2594/1200/3800 MHz Kernel: 5.8.6-1-MANJARO x86_64 Up: 5h 36m
Mem: 32044.9 MiB
Roon is installed as a VM in a Proxmox server, the VM is running Ubuntu 20.04
VM is assigned 6 cores, 16G mem.
Roon version 2.0 (build 1234) Always updated to latest version.

Networking Gear & Setup Details

Three remotes are Raspberry Pi’s running Ropieee Linux 5.15.92-Spockfish-v8+
All remotes are networked with hardwired network cable.

Number of Tracks in Library

I have a massive local music library of 400K+ tracks.
Library is installed on the main Proxmox server with a Samba share to the Roon VM

Description of Issue

Problem is that tracks stop playing randomly. It can happen after 5 minuets or six hours. Typically once every hour or two.
This error can be found in my Proxmox server log but not in my Ubuntu VM running Roon:

Mar 19 21:34:03 proxmox kernel: e1000e 0000:00:19.0 eno1: Detected
Hardware Unit Hang:
TDH <62>
TDT <1a>
next_to_use <1a>
next_to_clean <61>
buffer_info[next_to_clean]:
time_stamp <107131533>
next_to_watch <62>
jiffies <107131680>
next_to_watch.status <0>
MAC Status <80083>
PHY Status <796d>
PHY 1000BASE-T Status <3800>
PHY Extended Status <3000>
PCI Status <10>

This can be caused by low performance with Intel i218/i219 NIC or other network hardware with the same chip set. Essentially the network haredware is offloading the checksum task to the main computer and this network hardware is not doing this efficiently. I solved the issue by setting a config to have the network card do the checksum work.

Solution

Disable TCP checksum offloading with the following command, but
this only lasts till you reboot. Do it as a test. If it fixes your
problem a permanent fix is described below.

The command is:
ethtool -K tx off rx off

In my case this becomes:
sudo ethtool -K eth0 tx off rx off

If this helps the permanent fix is as follows:
sudo nano /usr/lib/networkd-dispatcher/routable.d/10-disable-offloading

Enter the following content in the file you create:

#!/bin/sh
ethtool--offload eth0 rx off tx off

Now make it executable:
sudo chmod +x /usr/lib/networkd-dispatcher/routable.d/10-disable-offloading

And that is it.
There are other jobs the network card offloads that may also be controlled. Other users have needed to stop some of these other functions to resolve other network issues but what I did got me working. The other functions you may disable offloading are:

gso
gro
tso
rx
tx
rxvlan
txvlan
sg
ufo
lro

There may be similar solutions for Windows systems since the problem is hardware related. If you find this issue and a solution for Windows please post.

As roon doesn’t support VMs this will probably end up in Tinkering.
@moderators

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