Control: tag -1 - moreinfo + confirmed Control: found -1 5.4.2-1 Control: found -1 5.3.1-4 Control: retitle -1 zsh: FTBFS with noatime mounts (e.g. on reproducible builds armhf nodes) Hi, Axel Beckert wrote: > Thorsten Glaser wrote: > > ../../Test/C02cond.ztst: test failed. > > The following may (or may not) help identifying the cause: > > This test can fail on NFS-mounted filesystems as the access and > > modification times are not updated separately. The test will fail > > on HFS+ (Apple Mac OS X default) filesystems because access times > > are not recorded. Also, Linux ext3 filesystems may be mounted > > with the noatime option which does not update access times. > > Failures in these cases do not indicate a problem in the shell. > > […] > > There was recently an upstream commit about such an issue in exactly that > test: > > http://sourceforge.net/p/zsh/code/ci/4f5d7b7b378e6fe93de19a600717deaab7a76116/ > > Do you think that this solves the issue? No, it doesn't. We still see this issue with reproducible builds on armhf in unstable as well as stretch: https://tests.reproducible-builds.org/debian/rb-pkg/stretch/armhf/zsh.html https://tests.reproducible-builds.org/debian/rb-pkg/unstable/armhf/zsh.html https://tests.reproducible-builds.org/debian/rbuild/stretch/armhf/zsh_5.3.1-4.rbuild.log https://tests.reproducible-builds.org/debian/rbuild/unstable/armhf/zsh_5.4.2-1.rbuild.log (Cc'ing the Reproducible Builds Folks for their information.) While I don't know for sure if those nodes use noatime, it explains well why exactly this tests only fails on the slowest architecture of reproducible builds. Currently the failure looks like this in the build log: Running test: -N cond This test takes two seconds... Test ../../Test/C02cond.ztst failed: bad status 1, expected 0 from: if [[ ${mtab::="$({mount || /sbin/mount || /usr/sbin/mount} 2>/dev/null)"} = *[(]?*[)] ]]; then print -u $ZTST_fd 'This test takes two seconds...' else unmodified_ls="$(ls -lu $unmodified)" print -u $ZTST_fd 'This test takes up to 60 seconds...' fi sleep 2 touch $newnewnew if [[ $OSTYPE == "cygwin" ]]; then ZTST_skip="[[ -N file ]] not supported on Cygwin" elif (( isnfs )); then ZTST_skip="[[ -N file ]] not supported with NFS" elif { (( ! $+unmodified_ls )) && cat $unmodified && { df -k -- ${$(print -r -- "$mtab" | awk '/noatime/ {print $1,$3}'):-""} | tr -s ' ' | fgrep -- "$(df -k . | tail -1 | tr -s ' ')" } >&/dev/null } || { (( $+unmodified_ls )) && SECONDS=0 && ! until (( SECONDS >= 58 )); do ZTST_hashmark; sleep 2; cat $unmodified [[ $unmodified_ls != "$(ls -lu $unmodified)" ]] && break done }; then ZTST_skip="[[ -N file ]] not supported with noatime file system" else [[ -N $newnewnew && ! -N $unmodified ]] fi Was testing: -N cond ../../Test/C02cond.ztst: test failed. The following may (or may not) help identifying the cause: This test can fail on NFS-mounted filesystems as the access and modification times are not updated separately. The test will fail on HFS+ (Apple Mac OS X default) filesystems because access times are not recorded. Also, Linux ext3 filesystems may be mounted with the noatime option which does not update access times. Failures in these cases do not indicate a problem in the shell. While we could just disable this test for Debian, it would also be cool if upstream could skip the test if a noatime mount is detected. Then again: They already try to do so, but the check doesn't seem to work, at least not in all cases. So we should probably figure out why that pre-condition check is not working properly. (And I don't have the time in _this_ moment to do so. Hints and patches welcome. :-) Regards, Axel -- ,''`. | Axel Beckert <abe@debian.org>, https://people.debian.org/~abe/ : :' : | Debian Developer, ftp.ch.debian.org Admin `. `' | 4096R: 2517 B724 C5F6 CA99 5329 6E61 2FF9 CD59 6126 16B5 `- | 1024D: F067 EA27 26B9 C3FC 1486 202E C09E 1D89 9593 0EDE
Attachment:
signature.asc
Description: Digital signature