[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Pkg-xfce-devel] Bug#733722: xfce4-terminal: doesn't reset SIGPIPE before spawing a shell (was: coreutils: ls -l | head sometimes dies with a broken pipe)



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On Sat, Jan 04, 2014 at 08:27:18PM +0000, Julian Gilbey wrote:
> reassign 733722 xfce4-terminal 0.6.3-1
> retitle 733722 xfce4-terminal: doesn't reset SIGPIPE before spawing a shell
> tags 733722 + patch
> forwarded 733722 https://bugzilla.xfce.org/show_bug.cgi?id=10602
> thanks
> 
> (xfce4-terminal maintainer: please see the original report for a
> slightly longer explanation of the bug)

Note that if you don't CC: us manually, we won't get it.

> So I get that SIGPIPE is being ignored.  The process tree is:
> 
> init -> gdm3 -> gdm-simple-slave -> gdm-session-worker -> sh ->
>   xfce4-session -> xfce4-panel -> xfce4-terminal -> bash
> 
> So it's somewhere in that mix, and I've tracked it down to
> xfce4-terminal (because running the ls | head commands in an xterm
> instead of in xfce4-terminal works just fine).
> 
> And in xfce4-terminal, line 172 of terminal/main.c (the first line of
> code executed by xfce4-terminal!) reads:
> 
>   signal (SIGPIPE, SIG_IGN);
> 
> and this is never undone.  This was introduced in xfce4-terminal
> version 0.2.5.8rc2 (fixing xfce bug #2349), and we are currently at
> 0.6.2-4, so I'm not sure why I'm the first one to notice this
> problematic behaviour.

I'm running 0.6.3-1 but I don't think anything relevant changed since
0.6.2, and:

corsac at scapa:~$ trap
trap -- '' SIGTSTP
trap -- '' SIGTTIN
trap -- '' SIGTTOU
corsac at scapa:~$ yes | head -n1
y

(this is with bash, trap doesn't return anything with zsh).
> 
> Anyway, a proposed bug-fix is attached: the signal handler is reset
> before the shell process is forked.  There is also another tiny bugfix
> in this patch: since the #include <signal.h> is enclosed within an
> #ifdef HAVE_SIGNAL_H clause, I've enclosed the call to signal() within
> a similar clause in main.c.

I'll wait for upstream comment on this.

Thanks for the report anyway.

Regards,
- -- 
Yves-Alexis Perez
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)

iQEcBAEBCgAGBQJSyaHsAAoJEG3bU/KmdcCliMYH/3LCbFKMrndjGO63oEMNz7rQ
4McC6LTlzz6e8mCR8ES2uZiKKOzijJUi++/jVpCmNo71BwSv8Hp70Rw9UcZ9l156
lw6ueyT1MXaCd5/LtHePJMGy+4cE2Fz3gm77k8lh68artDwBsdJZ5JB96ozd9lKI
sMyQNXoyscyvgcE+l/YWTFic+toESDMsS+84WmmrKuPg2/1nqPsMS122Tw0b7nX0
0Jz+PP2JkRVaxRHqZ6sCs52VHaGcx2ZYXwS2vkPVkFuqOM7VpNMYx/S1DicLpO8K
ATGcS3iWpu1PahfRRwEhnYJ6mksy9wKoXQoMrNFAh/nb6d3fwZfavG+iCMhtYDg=
=QTlG
-----END PGP SIGNATURE-----




Reply to: