You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The release of musl 1.2.5 introduced support for statx - https://www.openwall.com/lists/musl/2024/03/01/2. This syscall is broken on kernels used by Synology and Asustor nas (white label synology devices?) for using custom syscalls that are reserved for other syscalls in modern kernels.
Since qtbase 5/6 support using statx it attempts to make use of this syscall via the mis appropriated number and gets nonsense returned to it. Here is an example strace:
It won't attempt to fallback since there is no error returned, the statx call was successful, the problem is that what was returned is junk to statx, resulting in the filesize error.
This issue effects both muslc and glibc. The problem is the device kernel and is not a musl or glibc bug.
Note
Anything linked to a version of musl before v1.2.5 works, such as applications built on Alpine Linux 3.19 which is currently using 1.2.4_git20230717-r4 (latest at the time of writing)
An assumption may be made that a dependency introduced a regression when you have effectively changed the version of musl it was linked against at build time by downgrading.
The problem
If you see these type of warnings when loading qBittorrent:
Failed to load Categories. File size exceeds limit.
You should use strace to confirm the kernel behaviour described in the summary.
Solutions:
1: Very kindly, I was provided a patch ( richfelker aka dalias @ #musl/Libera ) to disable these newer calls on older devices by the applications https://sprunge.us/Hzz1iT.
I don't really want to apply the patch to generic builds. It is probably better if the asustor package maintainer forked the repo and applied the patch.
Linked issue: #141
Summary
The release of musl 1.2.5 introduced support for statx - https://www.openwall.com/lists/musl/2024/03/01/2. This syscall is broken on kernels used by Synology and Asustor nas (white label synology devices?) for using custom syscalls that are reserved for other syscalls in modern kernels.
Since qtbase 5/6 support using statx it attempts to make use of this syscall via the mis appropriated number and gets nonsense returned to it. Here is an example strace:
Source of strace: #141 (comment)
Important
It won't attempt to fallback since there is no error returned, the statx call was successful, the problem is that what was returned is junk to statx, resulting in the filesize error.
This issue effects both muslc and glibc. The problem is the device kernel and is not a musl or glibc bug.
Note
Anything linked to a version of musl before v1.2.5 works, such as applications built on Alpine Linux 3.19 which is currently using
1.2.4_git20230717-r4
(latest at the time of writing)edge is on 1.2.5 - https://pkgs.alpinelinux.org/packages?name=musl
Tip
An assumption may be made that a dependency introduced a regression when you have effectively changed the version of musl it was linked against at build time by downgrading.
The problem
If you see these type of warnings when loading qBittorrent:
You should use strace to confirm the kernel behaviour described in the summary.
Solutions:
1: Very kindly, I was provided a patch ( richfelker aka dalias @ #musl/Libera ) to disable these newer calls on older devices by the applications https://sprunge.us/Hzz1iT.
Here is an example of the patch applied using the source method for qBitorrent v5.0.0 - https://github.com/userdocs/qbittorrent-nox-static-test/blob/main/patches/qbittorrent/5.0.0/source/src/webui/webui.cpp#L43-L74
2: Use an application linked against a version of musl less than v1.2.5, so v1.2.4 or a git commit from musl master before 20/02/2024
The text was updated successfully, but these errors were encountered: