git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Santiago Torres <santiago@nyu.edu>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: What's cooking in git.git (Jul 2017, #04; Thu, 13)
Date: Mon, 17 Jul 2017 17:42:41 -0400	[thread overview]
Message-ID: <20170717214241.yui75hywg2ddkfsb@LykOS.localdomain> (raw)
In-Reply-To: <xmqqwp7bqbvg.fsf@gitster.mtv.corp.google.com>

[-- Attachment #1: Type: text/plain, Size: 2800 bytes --]

> > I'll dig into this. This sounds a way more reasonable approach.
> 
> Thanks.  Another thing that may help, if it turns out that we do
> want to let agent run when it wants to

I did some digging on the reason as to why this was happening. It turns
out there is a bug on gnupg. As of gpg 2.1.21, all operations require an
agent running (BTW --no-use-agent is effectively a no-op now). 


Given that on versions 2.19-21, they changed the way sockets are
created to be stored on /run/user/UID/gnupg/... deleting the $GNUPG_HOME
directory wouldn't flush the agent socket, and would leave an agent
instance per test running, possibly forever. E.g., make test would
result in the following:

    santiago at ~ ✔ pgrep -a gpg-agent
    632 gpg-agent --homedir /git/t/trash directory.t6050-replace/gpghome --use-standard-socket --daemon
    1192 /usr/bin/gpg-agent --supervised
    2939 gpg-agent --homedir /git/t/trash directory.t5801-remote-helpers/gpghome --use-standard-socket --daemon
    4656 gpg-agent --homedir /git/t/trash directory.t6300-for-each-ref/gpghome --use-standard-socket --daemon
    5427 gpg-agent --homedir /git/t/trash directory.t7510-signed-commit/gpghome --use-standard-socket --daemon
    5898 gpg-agent --homedir /git/t/trash directory.t6302-for-each-ref-filter/gpghome --use-standard-socket --daemon
    7747 gpg-agent --homedir /git/t/trash directory.t7003-filter-branch/gpghome --use-standard-socket --daemon
    12922 gpg-agent --homedir /git/t/trash directory.t7600-merge/gpghome --use-standard-socket --daemon
    13572 gpg-agent --homedir /git/t/trash directory.t7004-tag/gpghome --use-standard-socket --daemon
    14521 gpg-agent --homedir /git/t/trash directory.t5534-push-signed/gpghome --use-standard-socket --daemon
    16563 gpg-agent --homedir /git/t/trash directory.t5541-http-push-smart/gpghome --use-standard-socket --daemon
    17853 gpg-agent --homedir /git/t/trash directory.t7030-verify-tag/gpghome --use-standard-socket --daemon
    29858 gpg-agent --homedir /git/t/trash directory.t7612-merge-verify-signatures/gpghome --use-standard-socket --daemon
    31100 gpg-agent --homedir /git/t/trash directory.t4202-log/gpghome --use-standard-socket --daemon

Other projects such as notmuch opted for a solution that's simlar to
what I had suggested[1], but I wonder if it's even necessary to do.
There is already a fix on the master branch of gnupg[2], which I imagine
will show up to the next version of gpg2.

I don't think it would make sense to fix anything on our side, unless we
want to be extra sure the test suite is not leaking agents for all gpg
versions (including these minor versions). 

What is your take?

Thanks!
-Santiago.

[1] https://paste.debian.net/976970/
[2] https://dev.gnupg.org/T3218

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2017-07-17 21:42 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-13 23:44 What's cooking in git.git (Jul 2017, #04; Thu, 13) Junio C Hamano
2017-07-14  0:27 ` Santiago Torres
2017-07-14  2:32   ` Junio C Hamano
2017-07-14 14:02     ` Santiago Torres
2017-07-14 15:25       ` Junio C Hamano
2017-07-17 21:42         ` Santiago Torres [this message]
2017-07-17 22:09           ` Junio C Hamano
2017-07-18 17:54             ` Santiago Torres
2017-07-18 18:46               ` Junio C Hamano
2017-07-18 21:16                 ` Santiago Torres
2017-07-18 21:38                   ` Junio C Hamano
2017-07-15 11:12 ` Ævar Arnfjörð Bjarmason
2017-07-17 17:55   ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170717214241.yui75hywg2ddkfsb@LykOS.localdomain \
    --to=santiago@nyu.edu \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).