Subject: Re: [PATCH 0/2] t/lib-gpg: ensure GNUPGHOME is created as needed

From: "Eric W. Biederman" <[email-masked]>
Date: Mon, 27 Oct 2025 14:32:24 -0500

"Eric W. Biederman" <[email-masked]> writes:

> Junio C Hamano <[email-masked]> writes:
>
>> "Eric W. Biederman" <[email-masked]> writes:
>>
>>> 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
>
> Interesting.  With --stress I can reproduce the flakiness locally as
> well.
>
> I am starting to dig any but I haven't found any smoking guns yet.  So
> far manually running the commands that resulted in the failure are
> giving me the same output, but I have several more to run.

So far in the two should be identical sha1 and sha256 repositories
I can confirm the failure is because the repositories are out of sync.

The sha256 gpg signatures match
The sha1 gpg signatures do not match

Which is very weird.  If they both didn't match it would be easy to
explain.

This is starting to look like this is a case of the test doing it's job
and finding a problem, rather than a problem in the test infrastructure.

I will keep digging.

git/t/trash directory.t1016-compatObjectFormat.stress-failed$ ../../git --git-dir=repo-sha256/.git cat-file tag signedtag34
object 94ee57ed028bc464ec9f9dc1d9c4b8c09fd89ac00e34b2bae3105803a995a6cd
type commit
tag signedtag34
tagger C O Mitter <[email-masked]> 1112354055 +0200
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iHQEABECADQWIQRz11h0S+chaY7FTocTtvUezd5DDQUCZQhxPBYcY29tbWl0dGVy
 QGV4YW1wbGUuY29tAAoJEBO29R7N3kMN3wIAoLYbVnmMIQnKqAfCDEtLGKDgH+M4
 AKDNi19wI7o7yWzThiujYZ422iMRGA==
 =lsWm
 -----END PGP SIGNATURE-----
 
This is an additional signed tag
git/t/trash directory.t1016-compatObjectFormat.stress-failed$ ../../git --git-dir=repo-sha1/.git cat-file tag signedtag34
object 9ea30d18399b9957ce40766318510dab211d747b
type commit
tag signedtag34
tagger C O Mitter <[email-masked]> 1112354055 +0200
gpgsig-sha256 -----BEGIN PGP SIGNATURE-----
 
 iHQEABECADQWIQRz11h0S+chaY7FTocTtvUezd5DDQUCZQhxPBYcY29tbWl0dGVy
 QGV4YW1wbGUuY29tAAoJEBO29R7N3kMN21sAn2RYjMjcngN6AqBeo9RmIUn7NnWY
 AJ97WUStWCcHXMkxU+HVPeuA/CvPYw==
 =7Jpz
 -----END PGP SIGNATURE-----
 
This is an additional signed tag

Eric