FS#56756 - Resetting signal handlers prior to calling hooks

Attached to Project: Pacman
Opened by Sébastien Luttringer (seblu) - Sunday, 17 December 2017, 16:36 GMT
Last edited by Andrew Gregory (andrewgregory) - Tuesday, 25 December 2018, 18:13 GMT
Task Type Bug Report
Category General
Status Closed
Assigned To Andrew Gregory (andrewgregory)
Architecture All
Severity Medium
Priority Normal
Reported Version 5.0.1
Due in Version 5.1.2
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Summary and Info:

I'm quoting Andrew Gregory from  FS#49816 :

- Hooks are run with SIGPIPE ignored which causes '... | grep -q ...' in the dkms script to print the error when the grep exits early and the echo receives EPIPE.
- does not ignore SIGPIPE, GPGME does. I need to look into resetting signal handlers prior to calling the hook.
- libalpm uses GPGME for signature checking. GPGME uses pipes to communicate with external processes. When GPGME is initialized it sets SIGPIPE to be ignored, so that it can gracefully handle EPIPE rather than have the entire application die.

This bug is to track fix into pacman, and when I can remove the workaround in dkms.
Closed by  Andrew Gregory (andrewgregory)
Tuesday, 25 December 2018, 18:13 GMT
Reason for closing:  Fixed
Additional comments about closing:  v5.1.2
Comment by Mantas Mikulėnas (grawity) - Monday, 24 September 2018, 12:23 GMT
I think this is also what causes hooks to fail after SIGWINCH if you resize the terminal window anytime during a -Syu run.

I've lost count of how many times I had to re-run mkinitcpio because the hook died due to a signal, whether due to opening a new terminal tab, or detaching from tmux, or disconnecting from mosh...
Comment by Eli Schwartz (eschwartz) - Sunday, 21 October 2018, 18:27 GMT

Loading...