-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tests broken in debian due to PR: rootfs: remove --no-mount-fallback and finally fix MS_REMOUNT #4093
Comments
For some reason, splitting each test before the "and now try with a userns", makes all of them except the last one work fine:
With this patch, I get this output running the tests:
|
Grr, it seems I didn't send this comment earlier when I looked at this...
resets the mount flags on the mount. Looking at the failures, it seems that there's something weird going on with atime-related mount flags on your system. We could rework the test so that it does a
I can't reproduce this on my machine. I can try to test this in Debian VM when I have some time, but given that the tests work on openSUSE (my box) and Ubuntu (CI) it seems strange that it would only fail on Debian... |
I tested this on debian 12 (stable), with its 6.1 kernel, and it passes (installed fuse3, with and without sshfs installed). I don't have a lot of time to look into this now, but it might just be on debian testing or, maybe even better, on my machine only. Debian stable doesn't seem affected. |
This blocks docker/for-linux#679 |
I’m sorry to hear that, I think contributing to open source is a part time job for most of us, we spent most of our free time, which was supposed to be used for rest, to debug bugs in this project, but unfortunately we are still not find a good way to fix it, we need some more useful suggestions to some issues, if there were, it will be appreciated. In some past days, we have made a decision to release it soon, and let these obvious bugs to be fixed in next time. |
@evrial there doesn't seem to be there anything related to this there. Version 1.2.0.rc1 is not released due to other reasons, and it is the only thing needed there. Please avoid those comments, then, as it just creates noise here. I'm literally with a very limited and metered internet connection now. |
@rata I test it in a more lower version of debian, it still can't repro:
|
@lifubang cool. So far I've only seen this locally, but I guess a testing/unstable debian version might hit it. |
Okay, I've been debugging this for a while. I have a workaround, although I'm not 100% sure why it is needed. Please read this and let me know if you have some ideas. I've focused on debugging one test first, this one: I've added some debug prints and it all comes down to this not working here (see the last mount):
If I just execute that sequence of mounts on my laptop, it fails. I've tried the mount package from sid and rc-buggy but the same still happens. I haven't tried to downgrade the mounts dependencies, so I can't discard that yet. However, if we unmount after each "pass_sshfs_" or "fail_sshfs_", it all works fine. @cyphar @lifubang do you have any idea why this can be? dmesg doesn't show anything :( I've opened PR #4242 with the workaround, so it's clear what I refer to. |
@rata I suggested doing a
Looking into it again, it seems Debian doesn't use I don't mind us fixing this issue, but given that this is a weird Debian-ism we should make the smallest possible number of changes because it's clearly not an issue with runc nor our tests. |
@cyphar Nice finding, but no, the mount debian package uses util-linux. See the mount version in your link, it's ancient. I didn't know that site, but I don't believe that is providing accurate information. See the homepage of the mount package: https://packages.debian.org/bookworm/mount, it is util-linux. Also, downloading with apt-source the mount package, downloads util-linux. And the version matches the util-linux version. Furthermore, the manpage says it's part of util-linux and the output of mount --version says that too:
That is definitely not the case here. |
Output of straceroot@lindsay:/home/rodrigo/src/github.com/opencontainers/runc# strace -ff -s 512 mount --bind -o remount,diratime,strictatime /tmp/fuse-sshfs/ From the strace output, it seems mount is trying to do run this:
Note it has This led me to realizing that adding atime, the command works just fine here:
I think I still prefer to have each mount start from scratch (as the PR is currently doing), but if others prefer to add atime there, that might just do it. I need to investigate if this happens with a vanialla util-linux or not, and if there is something to fix there that might be triggered only in debian. And indeed, this diff also fixes the tests in debian (but I still think doing the mount from scratch is better):
|
Ah, I got confused by the fact that the In any case, if the issue is with (I'm just confused why I haven't seen this on Tumbleweed, I should have newer packages than Debian...) |
Description
After PR #3967 was merged, the tests added there don't work on Debian testing. It doesn't work with or without sshfs installed.
Tests in this file work fine without that PR.
@cyphar @lifubang can you plase take a look? Let me know if you can't repro.
Steps to reproduce the issue
Describe the results you received and expected
This is the output:
I expect all tests to pass.
There seems to be something fishy with the strictnoatime flag, as removing it from this command:
runc/tests/integration/mounts_sshfs.bats
Line 46 in a68529c
makes all the tests except the last one pass.
Something that adds complexity is that the last test is a collection of lot different of tests and they seems to have side effects, because some things in isolation work, but not when run one after the other in the test.
What version of runc are you using?
runc main as of a68529c
Host OS information
PRETTY_NAME="Debian GNU/Linux trixie/sid"
NAME="Debian GNU/Linux"
VERSION_CODENAME=trixie
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
Host kernel information
Linux 6.5.0-3-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.5.8-1 (2023-10-22) x86_64 GNU/Linux
The text was updated successfully, but these errors were encountered: