I am experiencing the same issue on a newly updated 'questing' system.
I did a bit of digging and it appears that the issues originates from
the fact that 'gpg-agent' closes the file right after sending BYE so
when 'pinentry-kwallet' tries to respond with 'io_p_out OK' a broken
pipe error is produced and the script terminates prematurely.
I also have access to a 'plucky' system to compare. The 'gpg-agent' BYE
behavior is the same, but in this case, while the broken pipe error does
appear as well, it does not make the script to exit and allows it to
continue and complete the communication (BYE, OK).
Some theories:
Did 'mksh' change so that it now fails on broken pipes while it previously did
not?
Does the gpg-agent now execute pinentry-kwallet in a way that makes this error
fatal now (e.g. pipefail?)?
I'm adding a workaround which, in my case, appears to fix the issue. It
catches the SIGPIPE signal when sending the OK response:
--- pinentry-kwallet.ori 2025-12-08 00:01:45.823004855 +0200
+++ pinentry-kwallet 2025-12-08 00:03:10.725959051 +0200
@@ -300,7 +300,7 @@
"option ${line#CONFIRM }"
;;
(BYE@(| *))
- io_p_out OK
+ trap "" PIPE; io_p_out OK; trap - PIPE
break
;;
(NOP@(| *))
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2120443
Title:
pinentry-kwallet called recursively by gpg-agent
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/kwalletcli/+bug/2120443/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs