|
From: | keinflue |
Subject: | bug#77548: multiple packages fail check phases due to read-only file system root |
Date: | Sat, 05 Apr 2025 09:41:37 +0000 |
Hi everyone,probably since commit 40f69b586a several packages including shepherd, go (bootstrap), ruby and scons fail their check phases.
They all fail with EROFS "read-only file system" errors. The pattern seems to be that these packages attempt to remove non-existent files under /, e.g. /does-not-exist for the pid-file.sh test case in shepherd. They expect the unlink/unlinkat syscall to fail with ENOENT, but the linux kernel produces EROFS if the file system is read-only, even if the file doesn't exist, and glibc does not modify this behavior for the C library functions.
On one hand this is probably not POSIX-conforming behavior of linux/glibc and there was a patch rectifying this in version 3.2 (commit e6bc45d65d) of the kernel, but that regressed with 3.6 (commit c30dabfe5d) from what I can tell.
On the the other hand, I do not think that attempting to delete arbitrary files on the file system root with the assumption that it will fail in specific ways is a good idea either and that the files do not actually exist is not a good idea either.
Not sure what the correct approach to fixing this would be.
[Prev in Thread] | Current Thread | [Next in Thread] |