-
Notifications
You must be signed in to change notification settings - Fork 46
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
Touch is generating unexpected output #34
Comments
It's not failing for me, and I've double-checked the test appliance which I uploaded to kernel.org. Did you rebuild the test appliance? If so, what build environment did you use? Did you use a build chroot, as documented here[1]? My current distributed test appliance VM image uses Debian Bullseye (the current Debian Stable) as the VM image: blktests 4e07b0c (Fri, 15 Jul 2022 14:40:03 +0900) [1] https://github.com/tytso/xfstests-bld/blob/master/Documentation/building-xfstests.md If you are using some other build OS image, then there might be issues caused by the version of various distro-provided binaries, yes. That's ultimately a matter for upstream xfstests to deal with. See common/filter to see how we accomodate output changes, which are the most common way unstable upstream dependencies make life hard for us. For example: commit 3b878b60a77e01656101df07e2e91a6600001903
In any case, I can't reproduce your problem with the version of the test appliance I am currently using, or the version of the test appliance which I uploaded to kernel.org. Can you say a bit more about the version of the test appliance you are using, and how it was built? |
I see the same issue with latest kvmimage from https://www.kernel.org/pub/linux/kernel/people/tytso/kvm-xfstests/root_fs.img.i386:
It is not easy to reproduce: I could not get it to fail againafter rebooting the VM, reruning the smoke test. Enclosed the strace outputs Inisde KVM, on my workstation and when it works. In the bad case, touch is working in 64bit mode and wants to open |
I can't replicate what you are reporting at all. Do you have TZ set to something unusual/strange? Either in ~/.config/kvm-xfstests or in your environment, perhaps? Specifically, what is getting passed to the guest VM as fstesttz? If you run "
When I run your experiment, it works just fine:
So I don't know what to tell you. When you tell me that "it's not easy to reproduce", that suggest that it's not an fundamental issue with the version of touch, but something environmental --- like for example if you haven't set TZ in ~/.config/kvm-xfstests, and TZ is set to something weird in your environment. From the root shell in kvm-xfstests, what does |
Ah.... I figured out what is happening. If you build a 32-bit kernel, then we will use a 32-bit root filesystem image for the OS. For example:
What's happening is that kvm-xfstests is auto-detecting that the kernel is a 32-bit i386 kernel, so it's using the i386 rootfs.img. (This is relatively new behavior, and was added as part of adding support for arm64. So you can now do In any case, the problem is that 'Feb 22 22:22:22 UTC 2222' can't be expressed using a 32-bit time_t. It requires a 64-bit time_t, and this is something that Debian doesn't currently support. See the slides[1] from a talk given at the 2023 FOSDEM conference and the Debian wiki page discussing a future release goals[2]. [1] http://wookware.org/talks/yr2038-fosdem.pdf I'm not sure whether there is going to be volunteer effort available to address this for 32-bit x86. From the slides[1] it appears there is more interest in addressing it for the 32-bit armhf build. The problem with using a 64-bit time_t is that this breaks all shared libraries, so that means you need to handle this the same way we handled the libc5 to libc6 transition (and that was painful, and happened in the late 1990's --- so if you are younger than 25 years old, it happened before you were born :-). In any case, I'm not sure there's much to do here. Ubuntu is about to drop 32-bit i386 support (after a huge outcry from the gaming community, they built a subset of the packages for 32 x86)[3] and said next release for sure, it'll be gone. Android is experimenting with dropping 32-bit support starting with the Pixel 7 devices[4]. Aside from radiation-hardened x86 chips for space, you can't even buy 32-only x86 chips from Intel any more (and I' m not sure those are actually still available in 2023); ARM Cortex-A processors will be 64-bit only starting this year[5]. So from both the hardware and distribution point of view, 32-bit is, if not dead, is definitely "pining for the fjords"[6]. [3] https://www.theregister.com/2019/06/19/ubuntu_axes_i386_support/ So I'm inclined to close this as a WONTFIX. If there is someone who wants to volunteer to help Debian shepherd a new shared library ABI which supports a 64-bit time_t for i386, that's best done in Debian. Given that Debian Bookworm (Debian 12) is currently frozen for release, the earliest this could happen would be Debian Trixie (Debian 13), which will probably released in 2025. And the effort in doing the 64-bit time_t migration for i386 is such that you had better start now, if you want to have a chance of it happening.... |
I've noticed a problem that could be related to the touch version during running xfstests using
kvm-xfstests
.For tests cases generic.634 and generic.635 the .bad files contain the following output:
Maybe updating touch in VM could solve this.
The text was updated successfully, but these errors were encountered: