Bug 241389

Summary: sysutils/e2fsprogs: build failure due to failing tests
Product: Ports & Packages Reporter: O. Hartmann <ohartmann>
Component: Individual Port(s)Assignee: Matthias Andree <mandree>
Status: Closed Feedback Timeout    
Severity: Affects Many People Flags: mandree: maintainer-feedback+
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   

Description O. Hartmann 2019-10-21 08:29:04 UTC
Port sysutils/e2fsprogs fails to build and install due to failures in the final test suite:

[...]

[...]===>  Running e2fsprogs self-test suite
cd /wrkdirs/usr/ports/sysutils/e2fsprogs/work/e2fsprogs-1.45.3/tests &&  ulimit -t 180 &&  /bin/mkdir -p /wrkdirs/usr/ports/sysutils/e2fsprogs/work/tmp &&  /usr/bin/env e2fsprogs_inhibit_SIGINFO=1 BLKID_FILE=/wrkdirs/usr/ports/sysutils/e2fsprogs/work/tmp/blkid.tab SHELL=/usr/local/bin/bash  gmake check -j8   || { head -n30000 /wrkdirs/usr/ports/sysutils/e2fsprogs/work/e2fsprogs-1.45.3/tests/*.failed 2>/dev/null ; exit 1 ; }
gmake[1]: Entering directory '/wrkdirs/usr/ports/sysutils/e2fsprogs/work/e2fsprogs-1.45.3/tests'
/bin/cp ./mke2fs.conf.in mke2fs.conf
./scripts/gen-test-data > test_data.tmp
Running e2fsprogs test suite...
 
Creating test_one script...
f_imagic_fs: imagic filesystem with imagic inodes: ok
m_large_file: largefile fs type: ok
m_64bit_flexbg: mkfs with 64bit and flex_bg: ok
f_badroot: file in root directory inode: ok
u_mke2fs_opt_oddsize: e2undo with mke2fs -z and non-32k-aligned bdev size: ok
f_dup_ba: multiply claimed blocks with bigalloc: failed
debugfs 1.45.3 (14-Jul-2019)
d_dumpe2fs_group_only: dumpe2fs group only mode: ok
d_bad_ostype: handle bad (negative) os_type: ok
f_extra_journal: Valid journal inode, but has_journal feature not present: ok
f_crashdisk: Superblock with illegal values: ok
...
d_xattr_sorting: sort extended attributes in debugfs: ok
f_badcluster: test alignment problems with bigalloc clusters: failed
...
m_uninit: uninitialized group feature: ok
f_del_dup_quota: delete file containing multiply claimed blocks with quota: failed
...
f_badsymlinks2: more types of corrupted symlinks: ok
f_convert_bmap_sparse: convert sparse blockmap file to extents file: failed
...
m_mmp_bad_csum: mmp with bad csum (metadata_csum): ok
     296 tests succeeded	      21 tests failed
Tests failed: d_inline_dump d_special_files f_badcluster f_cloneblock_alloc_error f_convert_bmap_and_extent f_convert_bmap_sparse f_del_dup_quota f_dup f_dup2 f_dup3 f_dup4 f_dup_ba f_dup_resize f_dupfsblks f_dupsuper f_extents f_extents2 f_ind_inode_collision f_itable_collision f_unshare_blocks_no_space f_unshare_blocks_ok 
gmake[1]: *** [Makefile:396: test_post] Error 1
gmake[1]: Leaving directory '/wrkdirs/usr/ports/sysutils/e2fsprogs/work/e2fsprogs-1.45.3/tests'

...

==> /wrkdirs/usr/ports/sysutils/e2fsprogs/work/e2fsprogs-1.45.3/tests/f_unshare_blocks_ok.failed <==
--- f_unshare_blocks_ok/expect.1	2019-07-15 01:02:47.000000000 +0000
+++ f_unshare_blocks_ok.1.log	2019-10-21 07:43:04.136677000 +0000
@@ -8,12 +8,12 @@
 Pass 1D: Reconciling multiply-claimed blocks
 (There are 2 inodes containing multiply-claimed blocks.)
 
-File /file2.txt (inode #12, mod time Sat Mar  3 02:12:33 2018) 
+File /file2.txt (inode #12, mod time Sat Mar  3 02:12:06 2018) 
   has 1 multiply-claimed block(s), shared with 1 file(s):
-	/file1.txt (inode #13, mod time Sat Mar  3 02:12:15 2018)
-File /file1.txt (inode #13, mod time Sat Mar  3 02:12:15 2018) 
+	/file1.txt (inode #13, mod time Sat Mar  3 02:11:48 2018)
+File /file1.txt (inode #13, mod time Sat Mar  3 02:11:48 2018) 
   has 1 multiply-claimed block(s), shared with 1 file(s):
-	/file2.txt (inode #12, mod time Sat Mar  3 02:12:33 2018)
+	/file2.txt (inode #12, mod time Sat Mar  3 02:12:06 2018)
 Multiply-claimed blocks already reassigned or cloned.
 
 Pass 2: Checking directory structure
*** Error code 1

Stop.
make: stopped in /usr/ports/sysutils/e2fsprogs
=>> Cleaning up wrkdir
===>  Cleaning for e2fsprogs-1.45.3_2
build of sysutils/e2fsprogs | e2fsprogs-1.45.3_2 ended at Mon Oct 21 07:43:20 UTC 2019
build time: 00:01:00
!!! build failure encountered !!!

[...]

This failure occurs on all platforms we provide poudriere service: 11.3-RELENG, 12-STABLE, 12.1-RELENG, CURRENT, all recent jail installations, base hosts are 12-STABLE and/or CURRENT, also recent revisions. This problem is now alive for a couple of months and I'm wondering nobody else stumbled over it.

The build environment from which the error above has been taken is:

=>> Building sysutils/e2fsprogs
build started at Mon Oct 21 07:42:20 UTC 2019
port directory: /usr/ports/sysutils/e2fsprogs
package name: e2fsprogs-1.45.3_2
building for: FreeBSD anger.walstatt.dynvpn.de 12.1-STABLE FreeBSD 12.1-STABLE 1201500 amd64
maintained by: mandree@FreeBSD.org
Makefile ident:      $FreeBSD: head/sysutils/e2fsprogs/Makefile 512232 2019-09-17 19:21:18Z tobik $
Poudriere version: 3.3.2_1
Host OSVERSION: 1300053
Jail OSVERSION: 1201500
Job Id: 01

---Begin Environment---
SHELL=/bin/csh
OSVERSION=1201500
UNAME_v=FreeBSD 12.1-STABLE 1201500
UNAME_r=12.1-STABLE
BLOCKSIZE=K
MAIL=/var/mail/root
STATUS=1
HOME=/root
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin
LOCALBASE=/usr/local
USER=root
LIBEXECPREFIX=/usr/local/libexec/poudriere
POUDRIERE_VERSION=3.3.2_1
MAKEOBJDIRPREFIX=/pool/sources/12-STABLE/obj/
MASTERMNT=/pool/poudriere/data/.m/12-amd64-head-default/ref
POUDRIERE_BUILD_TYPE=bulk
PACKAGE_BUILDING=yes
SAVED_TERM=screen
PWD=/pool/poudriere/data/.m/12-amd64-head-default/ref/.p/pool
P_PORTS_FEATURES=FLAVORS SELECTED_OPTIONS
MASTERNAME=12-amd64-head-default
SCRIPTPREFIX=/usr/local/share/poudriere
OLDPWD=/pool/poudriere/data/.m/12-amd64-head-default/ref/.p
SCRIPTPATH=/usr/local/share/poudriere/bulk.sh
POUDRIEREPATH=/usr/local/bin/poudriere
---End Environment---

---Begin Poudriere Port Flags/Env---
PORT_FLAGS=
PKGENV=
FLAVOR=
DEPENDS_ARGS=
MAKE_ARGS=
---End Poudriere Port Flags/Env---

---Begin OPTIONS List---
===> The following configuration options are available for e2fsprogs-1.45.3_2:
     BASHTESTS=off: Enable tests that require the GNU bash shell
     DOCS=on: Build and/or install documentation
     FUSEFS=off: Build user-land ext2/3/4 FUSE module (slow!)
     NLS=on: Native Language Support
     PARALLELTESTS=on: Parallelize self-tests (needs more disk space)
     SLOWTESTS=off: Enable slow tests that are skipped by default
====> Choose which set of self-tests to run: you have to select exactly one of them
     NOTESTS=off: Do not run any self-tests (Tier-1, DISCOURAGED)
     SMALLTESTS=on: Run tests that need <500 MB disk space (DEFAULT)
     ALLTESTS=off: Run most self-tests (needs more RAM/disk space)
===> Use 'make config' to modify these settings
---End OPTIONS List---

--MAINTAINER--
mandree@FreeBSD.org
--End MAINTAINER--

--CONFIGURE_ARGS--
--disable-fsck  --disable-e2initrd-helper  --disable-libuuid  --disable-uuidd  --enable-libblkid  --enable-elf-shlibs  --libdir='/usr/local/lib/e2fsprogs/'  --includedir='/usr/local/include/e2fsprogs/'  --with-root-prefix='/usr/local'  --without-included-gettext  LDFLAGS=' -fstack-protector-strong -fuse-ld=bfd  -L/usr/local/lib -Wl,--rpath -Wl,/usr/local/lib/e2fsprogs' --disable-fuse2fs --prefix=/usr/local ${_LATE_CONFIGURE_ARGS}
--End CONFIGURE_ARGS--

[...]
Comment 1 Matthias Andree freebsd_committer freebsd_triage 2019-10-21 14:21:34 UTC
Oliver, that's indeed mysterious and I wonder what's common to all of the systems you oversee - is there a certain configuration that you add? src.conf, rc.conf, make.conf?  What are your file system types, what is timestamp granularity, how do you synchronize time between file server and poudriere host?  Is there anything that makes time jumpy or otherwise non-continuous?  Networked file systems that cache time attributes that make the system time-travel somehow?

Please upload or send me:

1. logs where all file systems that you use have high-resolution timestamps and where ntp doesn't make time jump. -STABLE or -RELEASE strongly preferred.

2. a xz'd or zstd'd log of a build where the host is a supported FreeBSD RELEASE, not a moving target such as -STABLE or -CURRENT, and where you have a fully-updated jail that is also a RELEASE version that is not newer than the host so we can start isolating the issue with fewer variables.

21 failures pretty much looks either like time stamping issues (where the file server has a different time than the host that mounts exported file systems) or else like a toolchain or world issue rather than a port issue. 

I thought we'd shaken out the last reproducible non-tier-1 bug in self-tests with 1.45.3_2 on 2019-07-30, by importing https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/commit/?id=a368e0cbfb33d3050dcccccf0bf5a5539d3dac39 into r507631.

Which compiler are you using?