Santiago Torres <santiago@xxxxxxx> writes: >> Here are the topics that have been cooking. > > I sent (a patch almost a week ago) that would probably[1] be labeled > as "uninteresting" (as per the notes from the maintainer), but I wanted > to make sure it wasn't lost in the noise -- I see that theres a lot of > active development lately. I checked the latest iterations of "what's > cooking" to see if it was going to be discarded or so, but I see no > mention of it. I postponed it when I saw it the first time to see if anybody comments on it, and then it turns out nobody was interested, and it remained uninteresting to the list to this day. Now, after looking at the message again, from the patch description, I would believe you that you experienced _some_ trouble when the gpg-agent that is auto-spawned by gpg gets left behind (as I do not see any hits from "git grep gpg-agent t/", we are not deliberately using the agent). However, I could not convince myself that the solution is credible. Here is an excerpt from the patch: > diff --git a/t/lib-gpg.sh b/t/lib-gpg.sh > index ec2aa8f68..22ef2fa87 100755 > --- a/t/lib-gpg.sh > +++ b/t/lib-gpg.sh > @@ -31,6 +31,7 @@ then > chmod 0700 ./gpghome && > GNUPGHOME="$(pwd)/gpghome" && > export GNUPGHOME && > + gpgconf --kill gpg-agent && > gpg --homedir "${GNUPGHOME}" 2>/dev/null --import \ > "$TEST_DIRECTORY"/lib-gpg/keyring.gpg && > gpg --homedir "${GNUPGHOME}" 2>/dev/null --import-ownertrust \ > -- but the current directory of this part is the $TRASH_DIRECTORY, which is always created anew from the beginning in a test. What agent process could possibly be running there immedately after creating ./gpghome (which happens with "mkdir gpghome &&" without "-p" just before the context of this hunk---if the agent was running already, the directory would have been there, and mkdir would have failed, which would have caused "test_set_prereq GPG" at the end of the "&&" cascade to be skipped. In other words, it is unclear to me, and your log message does not sufficiently explain, why this is the right solution (or what the exact cause of the symptom is, for that matter). Or perhaps the gpg-agent socket is created somewhere outside the GNUPGHOME and stays behind even after a previous run of the same test finishes and $TRASH_DIRECTORY gets cleared (I am guessing the "what the exact cause is" part, as the log message did not explain it)? If that is the case, it makes me wonder if either of the two alternative may be a more robust solution: (1) running gpg tests telling gpg never to use agent, or (2) telling gpg and gpg-agent to use a socket inside GNUPGHOME. After all, "kill"ing agent blindly like the above patch would mean you do not know what other party is relying on the proper operation of the thing you are killing. That sounds more like a workaround that a solution (unless it is explained with a solid reason why that is the right way to run more than one instances of GPG). Perhaps everybody else is running these gpg tests without having to worry about gpg-agent already because their environment is more vanilla, but you have some configuration or environment that cause gpg to use agent, and that is the reason why nobody is interested (because they have never seen the symptom)? It is possible that the part of t/test-lib.sh that tries to cleanse environment variables and other "external influence" to give us a predictable and repeatable test is unaware of such a knob that only some developers (including you) have and the rest of us were merely lucky. Perhaps we need to throw GPG_AGENT_INFO SSH_AUTH_SOCK etc. into the list of envirionment variables to nuke there? Combined with the unknown-ness of the root cause of the issue, I can only say that the patch may be raising an issue worth addressing, but it is too sketchy to tell if it is a right solution or what the exact problem being solved is.