· Been running the QNAP docker image with the production build 1646. Went to update to new production 1653 using my Roon remote and the server update fails … downloads but when ‘installing’ I get an error saying there was an error looking for an update. Tried restarting the container, no effect.
Has the process for updating Roon changed with the move to Docker for QNAP?
Thanks for writing in and for sharing your report! We were able to review a fresh server diagnostic report, and observed the following:
Download of RoonServer_linuxx64_206501653.tar.bz2 completes successfully
The update script begins extracting to /Roon/app/RoonServer/.update.tmp
tar immediately fails with:
tar: RoonServer/RoonDotnet/host/fxr/10.0.6: Cannot change mode to rwxr-xr-x: Bad address
The error "Cannot change mode to rwxr-xr-x: Bad address" is a Linux kernel chmod/fchmodat syscall failure. In a Docker container context on QNAP, this almost always means one of two things:
the /Roon/app volume is mounted noexec or with restricted permissions, preventing tar from setting executable bits on directories during extraction.
Or, the QNAP kernel (5.10.60-qnap, visible in your log) doesn't support a syscall used by the newer version of tar or .NET 10 runtime that build 1653 bundles. Build 1646 used .NET runtime files, and build 1653 ships RoonDotnet/shared/Microsoft.NETCore.App/10.0.6 a newer runtime, which may require kernel features your QNAP kernel doesn't expose inside the container.
Some next troubleshooting steps for you:
Check your Docker volume mount options - In QNAP's Container Station (or your docker-compose.yml/run command), look at how /Roon/app is mounted. Make sure it does not have noexec or ro (read-only) flags. It should be a plain read-write mount with no restrictions. If you're using a bind mount to a QTS shared folder, try changing it to a Docker-managed volume instead.
Try to pull the new Docker image directly instead of using in-app update.
Verify kernel compatibility - Run this in your container's shell to check:
uname -r
If you're on an older QNAP ARM or x86 NAS with a heavily patched kernel, you may need to ensure your QNAP firmware is up to date before the new runtime will work.
The Roon/App directory has read/write/execute permissions
The docker image isn’t the issue - I am already on 1.0.6
5.10.60-Qnap . The Qnap is a TS-464 which is a current model running Firmware
QTS 5.2.9.3451 which is the latest. If this is a problem then all QNAP users are not going to be a able to run 2.65 in Docker
My apologies if my original post didn’t make it clear. I have been running Stephen’s Docker image since it was released, without issues, using the then Roon production 1646.
When I tried to update from 1646 to 1653, yesterday, then I received the error. It looks like others are seeing similar issues.
I have been running Stephen’s docker image since it was released. So the guide didn’t exist then but I have followed the same steps.
The issue is with updating Roon from 1646 which I was running inside Stephen’s container for 2 weeks without issues to 1653.
So as others have report in the early access thread, if I recreate the QNAP container station application and specify ROON_INSTALL_BRANCH=earlyaccess and then recreate again with ROON_INSTALL_BRANCH=production; Roon updates without issues from inside the container. The issue seems to be with requesting the update to 1653 from a Roon remote.
So I am now up and running on 1653 but I think this does need investigation for future update.
roon-docker ‘s entrypoint.sh is running TAR with parameters “–no-same-permissions --no-same-owner” to work around this issue , while RoonServer/start.sh doesn’t (yet).
RoonServer/start.sh STDERR output, collected from RoonServer/Logs/RoonServer_log.txt
04/28 11:20:24 Trace: [base/Roon updater script stdout] Install package is at: /tmp/0f821ff4-4931-4390-a4b1-f1efe07916a7__RoonServer
_linuxx64_206501653.tar.bz2
04/28 11:20:24 Trace: [base/Roon updater script stdout] Installing to: /Roon/app/RoonServer
04/28 11:20:24 Trace: [base/Roon updater script stdout] Removing any old update...
04/28 11:20:24 Trace: [base/Roon updater script stdout] Untarring new install to /Roon/app/RoonServer/.update.tmp
04/28 11:20:24 Trace: [base/Roon updater script stderr] tar: RoonServer/RoonDotnet/host/fxr/10.0.6: Cannot change mode to rwxr-xr-x:
Bad address
04/28 11:20:24 Trace: [base/Roon updater script stderr] tar: RoonServer/RoonDotnet/host/fxr: Cannot change mode to rwxr-xr-x: Bad ad
dress
04/28 11:20:24 Trace: [base/Roon updater script stderr] tar: RoonServer/RoonDotnet/host: Cannot change mode to rwxr-xr-x: Bad addres
s
04/28 11:20:27 Trace: [base/Roon updater script stderr] tar: RoonServer/RoonDotnet/shared/Microsoft.NETCore.App/10.0.6: Cannot chang
e mode to rwxr-xr-x: Bad address
04/28 11:20:27 Trace: [base/Roon updater script stderr] tar: RoonServer/RoonDotnet/shared/Microsoft.NETCore.App: Cannot change mode
to rwxr-xr-x: Bad address
04/28 11:20:27 Trace: [base/Roon updater script stderr] tar: RoonServer/RoonDotnet/shared: Cannot change mode to rwxr-xr-x: Bad addr
ess
04/28 11:20:27 Trace: [base/Roon updater script stderr] tar: RoonServer/RoonDotnet: Cannot change mode to rwxr-xr-x: Bad address
04/28 11:20:27 Trace: [base/Roon updater script stderr] tar: RoonServer/Appliance/webroot/2/assets: Cannot change mode to rwxr-xr-x:
Bad address
04/28 11:20:27 Trace: [base/Roon updater script stderr] tar: RoonServer/Appliance/webroot/2: Cannot change mode to rwxr-xr-x: Bad ad
dress
04/28 11:20:27 Trace: [base/Roon updater script stderr] tar: RoonServer/Appliance/webroot/img: Cannot change mode to rwxr-xr-x: Bad
address
04/28 11:20:27 Trace: [base/Roon updater script stderr] tar: RoonServer/Appliance/webroot: Cannot change mode to rwxr-xr-x: Bad addr
ess
04/28 11:20:32 Trace: [base/Roon updater script stderr] tar: RoonServer/Appliance: Cannot change mode to rwxr-xr-x: Bad address
04/28 11:20:32 Trace: [base/Roon updater script stderr] tar: RoonServer/Server: Cannot change mode to rwxr-xr-x: Bad address
04/28 11:20:32 Trace: [base/Roon updater script stderr] tar: RoonServer: Cannot change mode to rwxrwxrwx: Bad address
04/28 11:20:32 Trace: [base/Roon updater script stderr] tar: Exiting with failure status due to previous errors
04/28 11:20:32 Trace: [base/Roon updater script stdout] ERROR: failed to tar xf /tmp/0f821ff4-4931-4390-a4b1-f1efe07916a7__RoonServe
r_linuxx64_206501653.tar.bz2 -C /Roon/app/RoonServer/.update.tmp
04/28 11:20:32 Error: [appupdater] While installing update: System.Exception: update installer exited with 1
to manually reproduce the issue, i ran these commands
[admin@myTVS-682 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
553609b4306f ghcr.io/roonlabs/roonserver:latest "/entrypoint.sh" 5 hours ago Up 4 hours (healthy) roonserver
[admin@myTVS-682 ~]# docker exec 553609b4306f curl -L -o /tmp/RoonServer_linuxx64.tar.bz2 https://download.roonlabs.net/builds/production/RoonServer_linuxx64.tar.bz2
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 108M 100 108M 0 0 35.5M 0 0:00:03 0:00:03 --:--:-- 35.5M
[admin@myTVS-682 ~]# docker exec 553609b4306f mkdir /Roon/app/tmp
[admin@myTVS-682 ~]# docker exec 553609b4306f tar xf /tmp/RoonServer_linuxx64.tar.bz2 -C /Roon/app/tmp
tar: RoonServer/RoonDotnet/host/fxr/10.0.6: Cannot change mode to rwxr-xr-x: Bad address
tar: RoonServer/RoonDotnet/host/fxr: Cannot change mode to rwxr-xr-x: Bad address
[ . . . ]
tar: RoonServer/Server: Cannot change mode to rwxr-xr-x: Bad address
tar: RoonServer: Cannot change mode to rwxrwxrwx: Bad address
tar: Exiting with failure status due to previous errors
[admin@myTVS-682 ~]#
[admin@myTVS-682 ~]# docker exec 553609b4306f tar xf /tmp/RoonServer_linuxx64.tar.bz2 -C /Roon/app/tmp --no-same-owner --no-same-permissions
[admin@myTVS-682 ~]#
the easiest way to force a RoonServer reinstall, would be to manually delete APP’s VERSION file /share/Container/roon/app/RoonServer/VERSION (replace /share/Container/roon with whatever you used while configuring your QNAP roon-server container) ; not tested, since i did it the “hard way” (patch RoonServer/start.sh , run “/Roon/app/RoonServer/start.sh --update /tmp/RoonServer_linuxx64.tar.bz2 /Roon/app/RoonServer”, followed by a container restart)