From: Junio C Hamano Date: Mon, 27 Oct 2025 17:38:39 GMT Subject: Re: [PATCH 0/2] t/lib-gpg: ensure GNUPGHOME is created as needed Message-ID: In-Reply-To: <87zf9c8glu.fsf@email.froward.int.ebiederm.org> "Eric W. Biederman" writes: >> I am tempted to do this in the meantime, but I'd really prefer not >> to have to do so, assuming that these tests, when fixed, would be >> materially contributing to the health of our codebase. > > I just dug into this a little and hopefully I have paged enough > state back to understand this. > > In my testing a missing GNUPGHOME appears enough to prevent the > prerequisite from succeeding. So let's fix that. Todd Zullinger's sent > some nice patches to do that (up-thread), or you can take use my minimal > version. Sorry, but I am confused. The above "tempted to do this" was meant to come on top of Todd's patches. IOW, I was seeing flakyness with Todd's patches that fixed the missing GNUPGHOME. > The only possible source of flakiness in the tests I can see is the > possibility of t/t1016/gpg not getting called (which uses a fixed > timestamp). It appears you just fixed that problem in commit > 516bf45749bb ("t1016: make sure to use specified GPG"). I think that one also is in 'seen', and yet we saw t1016 flaky X-<. Let me isolate the relevant topics and test them again, i.e. $ git checkout --detach v2.51.0 $ git merge --no-ff jc/t1016-setup-fix ;# 516bf45749 $ git merge --no-ff tz/test-prepare-gnupghome~1 ;# 6cd8369ef3 $ git log --no-merges --oneline v2.51.0.. 516bf45749 (jc/t1016-setup-fix) t1016: make sure to use specified GPG 6cd8369ef3 t/lib-gpg: call prepare_gnupghome() in GPG2 prereq a35952b493 t/lib-gpg: add prepare_gnupghome() to create GNUPGHOME dir $ make $ cd t && ./t1016-*.sh --stress FAIL 10.1 FAIL 5.1 FAIL 34.1 ... ++ eval 'diff -u' '"$@"' +++ diff -u signedcommit3_sha1 signedcommit3_sha1_expected --- signedcommit3_sha1 2025-10-27 17:34:58.237496945 +0000 +++ signedcommit3_sha1_expected 2025-10-27 17:34:58.145497051 +0000 @@ -1 +1 @@ -de9cabc2419f97eb665452c198ed93e890a7ef87 +c87cd5157461a81b60ef6d3c47562c12b328ef54 error: last command exited with $?=1 not ok 163 - Verify commit signedcommit3's sha1 oid # # git --git-dir=repo-sha256/.git rev-parse --output-object-format=sha1 ${sha256_oid} >${name}_sha1 && # test_cmp ${name}_sha1 ${name}_sha1_expected # 1..163 > With that commit reverted I can reproduce the flakiness locally > by just running the test manually a few times. The above is with all three patches mentioned. FWIW, "gpg --version | head -2" says gpg (GnuPG) 2.4.8 libgcrypt 1.11.2 Hmmmm..... > I believe I used the GPG2 prereq because I don't have the older version > of GPG to test with. So I don't know if t1016 would work on the older > version of GPG or not. > > > diff --git a/t/lib-gpg.sh b/t/lib-gpg.sh > index 937b876bd052..c4bbedfe081e 100644 > --- a/t/lib-gpg.sh > +++ b/t/lib-gpg.sh > @@ -62,6 +62,8 @@ test_lazy_prereq GPG2 ' > exit 1 > ;; > *) > + mkdir "$GNUPGHOME" && > + chmod 0700 "$GNUPGHOME" && > (gpgconf --kill all || : ) && > gpg --homedir "${GNUPGHOME}" --import \ > "$TEST_DIRECTORY"/lib-gpg/keyring.gpg && > > > Eric