Hello,

I'm sorry I didn't put the context.  I am a developer of GnuPG and nPth.
I join the Debian GnuPG mailing list, so that development can go well.
Thus, I receive your bug report.  (I also maintain some packages in
Debian but most are not related to GnuPG.)

Since I felt that there is a kind of not-so-good communication in this
bug of #841143, I am trying to help.

Well, I would like to inform dkg that I review the Debian specific
patches, I mean, they are not ignored.

Ian Jackson <ijack...@chiark.greenend.org.uk> wrote:
> That's the symptoms I saw.  What version did you see this with ?

I'm testing with 2.1.7-2 in Stretch.  It is not reproducible (for me) by
upstream versions.

Today, I managed to have a concrete reproducible case.  Please find an
attached script (gpg-agent-locks-up.sh).

With GPGAGENT=/usr/local/bin/gpg-agent of upstream, the log is:
--------------------
2017-01-18 09:41:15 gpg-agent[4168] SIGTERM received - shutting down ...
2017-01-18 09:41:17 gpg-agent[4168] DBG: chan_9 <- [eof]
2017-01-18 09:41:18 gpg-agent[4168] gpg-agent (GnuPG) 2.1.18-beta70 stopped
--------------------

gpg-agent cleanly exits.

With the one in Stretch, the log is:
--------------------
2017-01-18 09:41:31 gpg-agent[4185] SIGTERM received - shutting down ...
2017-01-18 09:41:33 gpg-agent[4185] DBG: chan_9 <- [eof]
2017-01-18 09:41:36 gpg-agent[4185] SIGTERM received - still 0 open connections
2017-01-18 09:41:36 gpg-agent[4185] gpg-agent (GnuPG) 2.1.17 stopped
--------------------

It didn't exit even after "[eof]" and needed second SIGTERM.
--
#! /bin/sh

GPGAGENT=/usr/bin/gpg-agent
GPG_CONNECT_AGENT=/usr/bin/gpg-connect-agent

GPGTESTTMPDIR=$HOME/tmp/test-gpg.$$
echo "Test in $HOME/tmp/test-gpg.$$"

mkdir -p $GPGTESTTMPDIR
cat > $GPGTESTTMPDIR/gpg-agent.conf <<EOF
enable-ssh-support
debug-level guru
debug-all
verbose
log-file $GPGTESTTMPDIR/gpg-agent-test.log
EOF

GNUPGHOME=$GPGTESTTMPDIR
export GNUPGHOME

$GPGAGENT --daemon
GPGPID=`$GPG_CONNECT_AGENT "GETINFO pid" /bye | sed -n 's/^D //p'`

echo "gpg-agent PID: $GPGPID"
(sleep 3; echo /bye) | $GPG_CONNECT_AGENT &

sleep 1
echo "killing gpg-agent PID=$GPGPID"
kill $GPGPID

sleep 5
if kill -s 0 $GPGPID 2>/dev/null; then
    echo "gpg-agent is still there: this is a bug"
    # kill to clean up
    kill $GPGPID
    exit 1
else
    exit 0
fi

Reply via email to