Vagrantfile.fedora: upgrade Fedora to 39
https://cirrus-ci.com/task/5012914067734528
not ok 122 runc run [dev,exec,suid,atime bind mount of a nodev,nosuid,noexec,noatime fuse sshfs mount]
# (from function `setup_sshfs' in file tests/integration/mounts_sshfs.bats, line 46,
# from function `setup_sshfs_bind_flags' in file tests/integration/mounts_sshfs.bats, line 61,
# from function `fail_sshfs_bind_flags' in file tests/integration/mounts_sshfs.bats, line 87,
# in test file tests/integration/mounts_sshfs.bats, line 226)
# `fail_sshfs_bind_flags "nodev,nosuid,nosuid,noatime" "bind,dev,suid,exec,atime"' failed with status 32
# runc spec (status=0):
#
# fuse: unknown option(s): `-o atime'
# configured /tmp/bats-run-SM5ZfO/fuse-sshfs with mount --bind -o remount,nosuid,nodev,noexec,noatime
# tmpfs /tmp/bats-run-SM5ZfO/fuse-sshfs tmpfs rw,seclabel,nosuid,nodev,noexec,noatime,inode64 0 0
# runc run test_busybox (status=0):
# rw,seclabel,noatime,inode64
# mount: /tmp/bats-run-SM5ZfO/fuse-sshfs: mount point not mounted or bad option.
# dmesg(1) may have more information after failed mount system call.
# /vagrant/tests/integration/mounts_sshfs.bats: line 13: fusermount: command not found
not ok 123 runc run [ro bind mount of a nodev,nosuid,noexec fuse sshfs mount]
# (from function `setup_sshfs' in file tests/integration/mounts_sshfs.bats, line 46,
# from function `setup_sshfs_bind_flags' in file tests/integration/mounts_sshfs.bats, line 61,
# from function `pass_sshfs_bind_flags' in file tests/integration/mounts_sshfs.bats, line 79,
# in test file tests/integration/mounts_sshfs.bats, line 249)
# `pass_sshfs_bind_flags "rw,nodev,nosuid,nodev,noexec,noatime" "bind,ro"' failed with status 32
# runc spec (status=0):
#
# fuse: unknown option(s): `-o atime'
# configured /tmp/bats-run-SM5ZfO/fuse-sshfs with mount --bind -o remount,rw,nodev,nosuid,nodev,noexec,noatime
# tmpfs /tmp/bats-run-SM5ZfO/fuse-sshfs tmpfs rw,seclabel,nosuid,nodev,noexec,noatime,inode64 0 0
# runc run test_busybox (status=0):
# ro,seclabel,noatime,inode64
# mount: /tmp/bats-run-SM5ZfO/fuse-sshfs: mount point not mounted or bad option.
# dmesg(1) may have more information after failed mount system call.
# /vagrant/tests/integration/mounts_sshfs.bats: line 13: fusermount: command not found
ok 124 runc run [ro,symfollow bind mount of a rw,nodev,nosymfollow fuse sshfs mount]
not ok 125 runc run [ro,noexec bind mount of a nosuid,noatime fuse sshfs mount]
# (from function `setup_sshfs' in file tests/integration/mounts_sshfs.bats, line 46,
# from function `setup_sshfs_bind_flags' in file tests/integration/mounts_sshfs.bats, line 61,
# from function `pass_sshfs_bind_flags' in file tests/integration/mounts_sshfs.bats, line 79,
# in test file tests/integration/mounts_sshfs.bats, line 312)
# `pass_sshfs_bind_flags "nodev,nosuid,noatime" "bind,ro,exec"' failed with status 32
# runc spec (status=0):
#
# fuse: unknown option(s): `-o atime'
# configured /tmp/bats-run-SM5ZfO/fuse-sshfs with mount --bind -o remount,nodev,nosuid,noatime
# tmpfs /tmp/bats-run-SM5ZfO/fuse-sshfs tmpfs rw,seclabel,nosuid,nodev,noatime,inode64 0 0
# runc run test_busybox (status=0):
# ro,seclabel,noatime,inode64
# mount: /tmp/bats-run-SM5ZfO/fuse-sshfs: mount point not mounted or bad option.
# dmesg(1) may have more information after failed mount system call.
# /vagrant/tests/integration/mounts_sshfs.bats: line 13: fusermount: command not found
not ok 126 runc run [bind mount {no,rel,strict}atime semantics]
# (from function `setup_sshfs' in file tests/integration/mounts_sshfs.bats, line 46,
# from function `setup_sshfs_bind_flags' in file tests/integration/mounts_sshfs.bats, line 61,
# from function `pass_sshfs_bind_flags' in file tests/integration/mounts_sshfs.bats, line 79,
# in test file tests/integration/mounts_sshfs.bats, line 338)
# `pass_sshfs_bind_flags "noatime" "bind,norelatime"' failed with status 32
# runc spec (status=0):
#
# fuse: unknown option(s): `-o atime'
# configured /tmp/bats-run-SM5ZfO/fuse-sshfs with mount --bind -o remount,noatime
# tmpfs /tmp/bats-run-SM5ZfO/fuse-sshfs tmpfs rw,seclabel,noatime,inode64 0 0
# runc run test_busybox (status=0):
# rw,seclabel,noatime,inode64
# mount: /tmp/bats-run-SM5ZfO/fuse-sshfs: mount point not mounted or bad option.
# dmesg(1) may have more information after failed mount system call.
# /vagrant/tests/integration/mounts_sshfs.bats: line 13: fusermount: command not found
Probably relevant:
- https://github.com/libfuse/libfuse/pull/790 (https://github.com/libfuse/libfuse/commit/dba6b3983af34f30de01cf532dff0b66f0ed6045)
- https://github.com/libfuse/libfuse/pull/790
@kolyshkin @cyphar Do we need to disable the most part of mounts_sshfs.bats for FUSE >= 3.15?
@kolyshkin @cyphar Do we need to disable the most part of
mounts_sshfs.batsfor FUSE >= 3.15?
When I was initially adding mounts_sshfs test in https://github.com/opencontainers/runc/pull/3283, it was to check a fix for a particular issue with fuse mount (https://github.com/containers/podman/issues/12205), and I also tried other setups at that time (tmpfs, read-only bind mount, and an ext2 mount) but was not able to repro.
Since that time, a bunch of other tests were added.
Yes, I guess, we need a version guard and a skip. @cyphar wdyt?
The problem is that some of the recent mount rework is only tested through mount_sshfs because that was the way the old behaviour was tested. Disabling the tests will also disable the bulk of those tests. Maybe we can fall back to using tmpfs for FUSE >= 3.15 (as we do today if sshfs isn't available) so at least we are testing the bulk of the code. Or we can move those tests to mounts.bats and use tmpfs there so that the sshfs-specific stuff stays where it is.
As an aside, is there a PR for sshfs to do what the FUSE PR implies is sshfs's job? It's very weird they would be okay with breaking something as simple as mount -t sshfs -o atime...