[GPGME] gpgme_op_delete silently succeeds while gpg says: delete key failed

Bernhard Voelker mail at bernhard-voelker.de
Mon Nov 20 23:15:28 CET 2023


Hi *,

I had to notice that I ported my application in the wrong way from gpgme-1.9.0
to 1.13.1 some years ago (now using latest, of course).

GPGME-1.10.0 introduced the new key deletion flag GPGME_DELETE_FORCE and the new
function gpgme_op_delete_ext, but somehow I failed to use the new function.
Instead, my code looked like this:

    gpgme_error_t  err = gpgme_op_delete (ctx,
                                          key,
                                          GPGME_DELETE_ALLOW_SECRET | GPGME_DELETE_FORCE);
    if (err) {
      handle_error(...);
    }

Unluckily, both gpgme_op_delete and the newer gpgme_op_delete_ext have an
integer type as third parameter, and therefore the GCC compiler didn't warn
either, not even with -Wextra.

As an effect, GPGME does not add the '--yes' option to the gpg call.
Well, it was like that, but I was surprised to see that gpgme_op_delete does
not return an error while the underlying `gpg` call fails:

    $ gpg --disable-dirmngr --batch --pinentry-mode=loopback --no-tty \
        --delete-secret-and-public-key  -- E7C0CD48F8BB8CFF481AC5D4408E548D1D380ED9
    gpg: can't do this in batch mode without "--yes"
    gpg: E7C0CD48F8BB8CFF481AC5D4408E548D1D380ED9: delete key failed: End of file
    $ echo $?
    2

Shouldn't gpgme_op_delete better propagate this error from GPG back to the caller?
With that, I'd have detected my above porting fault much earlier.

'gpgme.trace' attached.

Thanks & have a nice day,
Berny
-------------- next part --------------
2023-11-15 01:46:54 gpgme[2647.a57] gpgme_debug: level=9
2023-11-15 01:46:54 gpgme[2647.a57] gpgme_check_version: call: req_version=(null), VERSION=1.23.1
2023-11-15 01:46:54 gpgme[2647.a57] gpgme_check_version_internal: call: req_version=(null), offset_sig_validity=60
2023-11-15 01:46:54 gpgme[2647.a57] gpgme_set_locale: enter: ctx=0x0000000000000000 category=0, value=en_US.utf8
2023-11-15 01:46:54 gpgme[2647.a57] gpgme_set_locale: leave: 
2023-11-15 01:46:54 gpgme[2647.a57] gpgme-dinfo: gpgconf='/usr/bin/gpgconf'
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_pipe: enter: inherit_idx=1 (GPGME uses it for reading)
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_pipe: leave: read fd=8 write fd=9
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: enter: path=/usr/bin/gpgconf
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: argv[ 0] = /usr/bin/gpgconf
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: argv[ 1] = --list-dirs
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: fd[0] = 0x9 -> 0x1
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: fd[0] = 0x9 -> 0x1
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: waiting for child process pid=2649
2023-11-15 01:46:54 gpgme[2647.a57]   _gpgme_io_close: enter: fd=9
2023-11-15 01:46:54 gpgme[2647.a57]   _gpgme_io_close: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: enter: fd=8 buffer=0x00007ffceb4b65b0 count=1023
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: sysconfdir:/etc/gnupg<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: bindir:/usr/bin<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: libexecdir:/usr/libexec<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: libdir:/usr/lib64/gnupg<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: datadir:/usr/share/gnupg<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: localedir:/usr/share/locale<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: socketdir:/run/user/717/gnupg/d.hn4sh7q1to53tbbx
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: fxiejnfj<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: dirmngr-socket:/run/user/717/gnupg/d.hn4sh7q1to5
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: 3tbbxfxiejnfj/S.dirmngr<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: keyboxd-socket:/run/user/717/gnupg/d.hn4sh7q1to5
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: 3tbbxfxiejnfj/S.keyboxd<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: agent-ssh-socket:/run/user/717/gnupg/d.hn4sh7q1t
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: o53tbbxfxiejnfj/S.gpg-agent.ssh<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: agent-extra-socket:/run/user/717/gnupg/d.hn4sh7q
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: 1to53tbbxfxiejnfj/S.gpg-agent.extra<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: agent-browser-socket:/run/user/717/gnupg/d.hn4sh
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: 7q1to53tbbxfxiejnfj/S.gpg-agent.browser<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: agent-socket:/run/user/717/gnupg/d.hn4sh7q1to53t
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: bbxfxiejnfj/S.gpg-agent<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: homedir:/home/voelkerb/cs.gnupghome/gnupghome.cs
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: _12700<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: leave: result=719
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: enter: fd=8 buffer=0x00007ffceb4b65b0 count=1023
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_close: enter: fd=8
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_close: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_pipe: enter: inherit_idx=1 (GPGME uses it for reading)
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_pipe: leave: read fd=8 write fd=9
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: enter: path=/usr/bin/gpgconf
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: argv[ 0] = /usr/bin/gpgconf
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: argv[ 1] = --list-components
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: fd[0] = 0x9 -> 0x1
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: fd[0] = 0x9 -> 0x1
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: waiting for child process pid=2651
2023-11-15 01:46:54 gpgme[2647.a57]   _gpgme_io_close: enter: fd=9
2023-11-15 01:46:54 gpgme[2647.a57]   _gpgme_io_close: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: enter: fd=8 buffer=0x00007ffceb4b65b0 count=1023
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: gpg:OpenPGP:/usr/bin/gpg2<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: gpgsm:S/MIME:/usr/bin/gpgsm<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: keyboxd:Public Keys:/usr/libexec/keyboxd<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: gpg-agent:Private Keys:/usr/bin/gpg-agent<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: scdaemon:Smartcards:/usr/libexec/scdaemon<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: tpm2daemon:TPM:/usr/libexec/tpm2daemon<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: dirmngr:Network:/usr/bin/dirmngr<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: pinentry:Passphrase Entry:/usr/bin/pinentry<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: leave: result=295
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: enter: fd=8 buffer=0x00007ffceb4b65b0 count=1023
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_close: enter: fd=8
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_close: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57] gpgme-dinfo:       gpg='/usr/bin/gpg2'
2023-11-15 01:46:54 gpgme[2647.a57] gpgme-dinfo:     gpgsm='/usr/bin/gpgsm'
2023-11-15 01:46:54 gpgme[2647.a57] gpgme-dinfo:   keyboxd='/usr/libexec/keyboxd'
2023-11-15 01:46:54 gpgme[2647.a57] gpgme-dinfo: gpg-agent='/usr/bin/gpg-agent'
2023-11-15 01:46:54 gpgme[2647.a57] gpgme-dinfo:  scdaemon='/usr/libexec/scdaemon'
2023-11-15 01:46:54 gpgme[2647.a57] gpgme-dinfo:   dirmngr='/usr/bin/dirmngr'
2023-11-15 01:46:54 gpgme[2647.a57] gpgme-dinfo:  pinentry='/usr/bin/pinentry'
2023-11-15 01:46:54 gpgme[2647.a57] gpgme-dinfo:   homedir='/home/voelkerb/cs.gnupghome/gnupghome.cs_12700'
2023-11-15 01:46:54 gpgme[2647.a57] gpgme-dinfo:   sockdir='/run/user/717/gnupg/d.hn4sh7q1to53tbbxfxiejnfj'
2023-11-15 01:46:54 gpgme[2647.a57] gpgme-dinfo:     agent='/run/user/717/gnupg/d.hn4sh7q1to53tbbxfxiejnfj/S.gpg-agent'
2023-11-15 01:46:54 gpgme[2647.a57] gpgme-dinfo:       ssh='/run/user/717/gnupg/d.hn4sh7q1to53tbbxfxiejnfj/S.gpg-agent.ssh'
2023-11-15 01:46:54 gpgme[2647.a57] gpgme-dinfo:   dirmngr='/run/user/717/gnupg/d.hn4sh7q1to53tbbxfxiejnfj/S.dirmngr'
2023-11-15 01:46:54 gpgme[2647.a57] gpgme-dinfo:     uisrv='/run/user/717/gnupg/d.hn4sh7q1to53tbbxfxiejnfj/S.uiserver'
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_pipe: enter: inherit_idx=1 (GPGME uses it for reading)
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_pipe: leave: read fd=8 write fd=9
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: enter: path=/usr/bin/gpg2
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: argv[ 0] = /usr/bin/gpg2
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: argv[ 1] = --version
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: fd[0] = 0x9 -> 0x1
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: fd[0] = 0x9 -> 0x1
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: waiting for child process pid=2653
2023-11-15 01:46:54 gpgme[2647.a57]   _gpgme_io_close: enter: fd=9
2023-11-15 01:46:54 gpgme[2647.a57]   _gpgme_io_close: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: enter: fd=8 buffer=0x00007ffceb4b69a0 count=79
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: gpg (GnuPG) 2.4.3<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: libgcrypt 1.10.2<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: Copyright (C) 2023 g10 Code GmbH<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: License GNU
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: leave: result=79
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_close: enter: fd=8
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_close: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_pipe: enter: inherit_idx=1 (GPGME uses it for reading)
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_pipe: leave: read fd=8 write fd=9
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: enter: path=/usr/bin/gpgsm
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: argv[ 0] = /usr/bin/gpgsm
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: argv[ 1] = --version
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: fd[0] = 0x9 -> 0x1
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: fd[0] = 0x9 -> 0x1
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: waiting for child process pid=2655
2023-11-15 01:46:54 gpgme[2647.a57]   _gpgme_io_close: enter: fd=9
2023-11-15 01:46:54 gpgme[2647.a57]   _gpgme_io_close: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: enter: fd=8 buffer=0x00007ffceb4b69a0 count=79
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: gpgsm (GnuPG) 2.4.3<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: libgcrypt 1.10.2<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: libksba 1.6.4<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: Copyright (C) 2023 g10 Code 
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: leave: result=79
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_close: enter: fd=8
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_close: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_pipe: enter: inherit_idx=1 (GPGME uses it for reading)
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_pipe: leave: read fd=8 write fd=9
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: enter: path=/usr/bin/gpgconf
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: argv[ 0] = /usr/bin/gpgconf
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: argv[ 1] = --version
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: fd[0] = 0x9 -> 0x1
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: fd[0] = 0x9 -> 0x1
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: check: waiting for child process pid=2657
2023-11-15 01:46:54 gpgme[2647.a57]   _gpgme_io_close: enter: fd=9
2023-11-15 01:46:54 gpgme[2647.a57]   _gpgme_io_close: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_spawn: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: enter: fd=8 buffer=0x00007ffceb4b69a0 count=79
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: gpgconf (GnuPG) 2.4.3<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: Copyright (C) 2023 g10 Code GmbH<LF>
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: check: License GNU GPL-3.0-or-l
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_read: leave: result=79
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_close: enter: fd=8
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_close: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57] gpgme_new: enter: r_ctx=0x00007ffceb4b6a68 
2023-11-15 01:46:54 gpgme[2647.a57] gpgme_new: leave: ctx=0x00000000016f5500
2023-11-15 01:46:54 gpgme[2647.a57] gpgme_set_pinentry_mode: call: ctx=0x00000000016f5500 pinentry_mode=4
2023-11-15 01:46:54 gpgme[2647.a57] gpgme_set_armor: call: ctx=0x00000000016f5500 use_armor=1 (yes)
2023-11-15 01:46:54 gpgme[2647.a57] gpgme_set_offline: call: ctx=0x00000000016f5500 offline=1 (yes)
2023-11-15 01:46:54 gpgme[2647.a57] gpgme_set_passphrase_cb: call: ctx=0x00000000016f5500 passphrase_cb=0x0000000000000000/0x0000000000000000
2023-11-15 01:46:54 gpgme[2647.a57] gpgme_data_new_from_mem: enter: r_dh=0x00007ffceb4b59f8 buffer=0x00000000016f59f8, size=1751, copy=0 (no)
2023-11-15 01:46:54 gpgme[2647.a57] gpgme_data_new_from_mem: leave: dh=0x00000000016f69a0
2023-11-15 01:46:54 gpgme[2647.a57] gpgme_data_set_encoding: enter: dh=0x00000000016f69a0 encoding=3
2023-11-15 01:46:54 gpgme[2647.a57] gpgme_data_set_encoding: leave: 

...

2023-11-15 01:46:54 gpgme[2647.a57]       gpgme_op_delete: enter: ctx=0x00000000016ef720 key=0x00000000016ecdf0 (E7C0CD48F8BB8CFF481AC5D4408E548D1D380ED9), allow_secret=3
2023-11-15 01:46:54 gpgme[2647.a57]         gpgme_data_release: call: dh=0x0000000000000000 
2023-11-15 01:46:54 gpgme[2647.a57]         gpgme_data_release: call: dh=0x00000000016f69a0 
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_pipe: enter: inherit_idx=1 (GPGME uses it for reading)
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_pipe: leave: read fd=8 write fd=9
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_set_close_notify: enter: fd=8 close_handler=0x00000000004e0089/0x00000000016ee5d0
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_set_close_notify: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_set_close_notify: enter: fd=9 close_handler=0x00000000004e0089/0x00000000016ee5d0
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_set_close_notify: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57]         gpgme_data_new: enter: r_dh=0x00000000016ee740 
2023-11-15 01:46:54 gpgme[2647.a57]         gpgme_data_new: leave: dh=0x00000000016f69a0
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_pipe: enter: inherit_idx=1 (GPGME uses it for reading)
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_pipe: leave: read fd=10 write fd=11
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_set_close_notify: enter: fd=10 close_handler=0x00000000004e0089/0x00000000016ee5d0
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_set_close_notify: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_set_close_notify: enter: fd=11 close_handler=0x00000000004e0089/0x00000000016ee5d0
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_set_close_notify: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_spawn: enter: path=/usr/bin/gpg2
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_spawn: check: argv[ 0] = gpg2
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_spawn: check: argv[ 1] = --disable-dirmngr
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_spawn: check: argv[ 2] = --pinentry-mode=loopback
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_spawn: check: argv[ 3] = --batch
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_spawn: check: argv[ 4] = --lc-ctype=en_US.utf8
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_spawn: check: argv[ 5] = --status-fd
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_spawn: check: argv[ 6] = 9
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_spawn: check: argv[ 7] = --logger-fd
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_spawn: check: argv[ 8] = 11
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_spawn: check: argv[ 9] = --no-tty
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_spawn: check: argv[10] = --charset=utf8
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_spawn: check: argv[11] = --enable-progress-filter
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_spawn: check: argv[12] = --exit-on-status-write-error
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_spawn: check: argv[13] = --delete-secret-and-public-key
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_spawn: check: argv[14] = --
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_spawn: check: argv[15] = E7C0CD48F8BB8CFF481AC5D4408E548D1D380ED9
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_spawn: check: fd[0] = 0x9
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_spawn: check: fd[1] = 0xb
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_spawn: check: fd[1] = 0xb
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_spawn: check: waiting for child process pid=2734
2023-11-15 01:46:54 gpgme[2647.a57]           _gpgme_io_close: enter: fd=9
2023-11-15 01:46:54 gpgme[2647.a57]           _gpgme_io_close: check: invoking close handler 0x00000000004e0089/0x00000000016ee5d0
2023-11-15 01:46:54 gpgme[2647.a57]           _gpgme_io_close: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57]           _gpgme_io_close: enter: fd=11
2023-11-15 01:46:54 gpgme[2647.a57]           _gpgme_io_close: check: invoking close handler 0x00000000004e0089/0x00000000016ee5d0
2023-11-15 01:46:54 gpgme[2647.a57]           _gpgme_io_close: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_spawn: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_add_io_cb: call: ctx=0x00000000016ef720 fd=8, dir=1 -> tag=0x00000000016d7100
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_add_io_cb: call: ctx=0x00000000016ef720 fd=10, dir=1 -> tag=0x00000000016ef430
2023-11-15 01:46:54 gpgme[2647.a57]         gpgme:gpg_io_event: call: gpg=0x00000000016ee5d0 event 0x0000000000500283, type 0, type_data 0x0000000000000000
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_select: enter: nfds=10, nonblock=0
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_select: check: poll on [ r=8 r=10 ]
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_select: check: poll OK [ r=1 ]
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_select: leave: result=1
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_run_io_cb: call: item=0x00000000016ecd70 need to check
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_select: enter: nfds=1, nonblock=1
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_select: check: poll on [ r=10 ]
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_select: check: poll OK [ r=0 ]
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_select: leave: result=1
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_run_io_cb: call: item=0x00000000016ecd70 handler (0x00000000016f69a0, 10)
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_data_inbound_handler: enter: dh=0x00000000016f69a0 fd=10
2023-11-15 01:46:54 gpgme[2647.a57]           _gpgme_io_read: enter: fd=10 buffer=0x00007ffceb4b5920 count=4096
2023-11-15 01:46:54 gpgme[2647.a57]           _gpgme_io_read: check: gpg: can't do this in batch mode without "--yes"
2023-11-15 01:46:54 gpgme[2647.a57]           _gpgme_io_read: check: <LF>
2023-11-15 01:46:54 gpgme[2647.a57]           _gpgme_io_read: leave: result=49
2023-11-15 01:46:54 gpgme[2647.a57]           gpgme_data_write: enter: dh=0x00000000016f69a0 buffer=0x00007ffceb4b5920, size=49
2023-11-15 01:46:54 gpgme[2647.a57]           gpgme_data_write: leave: result=49
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_data_inbound_handler: leave: 
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_select: enter: nfds=10, nonblock=0
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_select: check: poll on [ r=8 r=10 ]
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_select: check: poll OK [ r=1 ]
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_select: leave: result=1
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_run_io_cb: call: item=0x00000000016ecd70 need to check
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_select: enter: nfds=1, nonblock=1
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_select: check: poll on [ r=10 ]
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_select: check: poll OK [ r=0 ]
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_select: leave: result=1
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_run_io_cb: call: item=0x00000000016ecd70 handler (0x00000000016f69a0, 10)
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_data_inbound_handler: enter: dh=0x00000000016f69a0 fd=10
2023-11-15 01:46:54 gpgme[2647.a57]           _gpgme_io_read: enter: fd=10 buffer=0x00007ffceb4b5920 count=4096
2023-11-15 01:46:54 gpgme[2647.a57]           _gpgme_io_read: check: gpg: E7C0CD48F8BB8CFF481AC5D4408E548D1D380ED9: d
2023-11-15 01:46:54 gpgme[2647.a57]           _gpgme_io_read: check: elete key failed: End of file<LF>
2023-11-15 01:46:54 gpgme[2647.a57]           _gpgme_io_read: leave: result=78
2023-11-15 01:46:54 gpgme[2647.a57]           gpgme_data_write: enter: dh=0x00000000016f69a0 buffer=0x00007ffceb4b5920, size=78
2023-11-15 01:46:54 gpgme[2647.a57]           gpgme_data_write: leave: result=78
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_data_inbound_handler: leave: 
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_select: enter: nfds=10, nonblock=0
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_select: check: poll on [ r=8 r=10 ]
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_select: check: poll OK [ r=0 r=1 ]
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_select: leave: result=2
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_run_io_cb: call: item=0x00000000016ef870 need to check
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_select: enter: nfds=1, nonblock=1
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_select: check: poll on [ r=8 ]
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_select: check: poll OK [ r=0 ]
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_select: leave: result=1
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_run_io_cb: call: item=0x00000000016ef870 handler (0x00000000016ee5d0, 8)
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_read: enter: fd=8 buffer=0x00000000016e91f0 count=1024
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_read: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_close: enter: fd=8
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_close: check: invoking close handler 0x00000000004e0089/0x00000000016ee5d0
2023-11-15 01:46:54 gpgme[2647.a57]           _gpgme_remove_io_cb: call: data=0x00000000016d7100 setting fd 0x8 (item=0x00000000016ef870) done
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_close: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_run_io_cb: call: item=0x00000000016ecd70 need to check
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_select: enter: nfds=1, nonblock=1
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_select: check: poll on [ r=10 ]
2023-11-15 01:46:54 gpgme[2647.a57] _gpgme_io_select: check: poll OK [ r=0 ]
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_io_select: leave: result=1
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_run_io_cb: call: item=0x00000000016ecd70 handler (0x00000000016f69a0, 10)
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_data_inbound_handler: enter: dh=0x00000000016f69a0 fd=10
2023-11-15 01:46:54 gpgme[2647.a57]           _gpgme_io_read: enter: fd=10 buffer=0x00007ffceb4b5920 count=4096
2023-11-15 01:46:54 gpgme[2647.a57]           _gpgme_io_read: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57]           _gpgme_io_close: enter: fd=10
2023-11-15 01:46:54 gpgme[2647.a57]           _gpgme_io_close: check: invoking close handler 0x00000000004e0089/0x00000000016ee5d0
2023-11-15 01:46:54 gpgme[2647.a57]             _gpgme_remove_io_cb: call: data=0x00000000016ef430 setting fd 0xa (item=0x00000000016ecd70) done
2023-11-15 01:46:54 gpgme[2647.a57]           _gpgme_io_close: leave: result=0
2023-11-15 01:46:54 gpgme[2647.a57]         _gpgme_data_inbound_handler: leave: 
2023-11-15 01:46:54 gpgme[2647.a57]         gpgme:gpg_io_event: call: gpg=0x00000000016ee5d0 event 0x0000000000500283, type 1, type_data 0x00007ffceb4b6a30
2023-11-15 01:46:54 gpgme[2647.a57]         gpgme_release: call: ctx=0x00000000016ef720 
2023-11-15 01:46:54 gpgme[2647.a57]         gpgme_data_release: call: dh=0x0000000000000000 
2023-11-15 01:46:54 gpgme[2647.a57]         gpgme_data_release: call: dh=0x00000000016f69a0 


More information about the Gnupg-devel mailing list