delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2019/08/02/10:34:57

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:from:to:subject:date:message-id:references
:in-reply-to:content-type:content-id:content-transfer-encoding
:mime-version; q=dns; s=default; b=qfTcyS5JKZTvSAZ0OOEv9wlj/E8iU
PhLKwIMCG/UJVlDzinr5H331IyzgrxkldY4rZyVKdeUnsa3uD/I5JYCKFlzV786S
rVXTJI1S9AYHbZnTe0Tu77T6nUwmp757G+rwyMHRBhwjjgd/lwSoGZe4YoInpweq
J16A7HZNeJu30Y=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:from:to:subject:date:message-id:references
:in-reply-to:content-type:content-id:content-transfer-encoding
:mime-version; s=default; bh=SBTSDNwQUgf5lJcXgkl5s9B3LuQ=; b=N5A
9lwUtqFwiimm/Vuo2QlT5+wpL9WGZz/nJYZ4uWtI8no+F8KsN2mBvlPCpLyHoQn/
zILuj1fFpWXu74TgUslaxB0xzJbxpG0QRaiTu46DuMOLHSCas76R+trNB69on9On
9NNIEeWg1yGpXNSjenR1faBKtc8oG2ekp2J6GOrM=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Authentication-Results: sourceware.org; auth=none
X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 spammy=HX-Languages-Length:2135
X-HELO: NAM05-CO1-obe.outbound.protection.outlook.com
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QIgWdvBFFXu4816nGioS7JBBUQYLkC42QwHVXkIBO5LZTnDBZTRKwIXEo3cc9/yC3EnYLDAFb21aPvmxI1kjz4u7mtWiMHC/ONEacp+Piabx2LNtfXlUgraLs5YRBkrSTYqekffpSrw7JBi3doz0coCIuqbeQ2u0J8YDSSq0CuzyXH1I++VNL9IfjS9tLwDfZLvMGbNjkRukMcwyUuV31MtLZ6UdECmPSvhRNAjYcngj4WSmn9fJYMQGv/NVpexEZNABMLoJ7GAuc1DsXXzf0G31iZhmmzPufM15QEquWSO4U3AjqSEPEzDrX6EVZtHcPWjM3whnXuGDws3IXJZ61g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aChYVt+ieHiWm7YlJ8Jw0d+Go0pj/gdRENqXtuZ+3/4=; b=mQe5RuwT48Br+A2pZ13RVSWF3UjrUz/mg5JTQyGgKe7VgOPQdxJKQC9rhXn1WxJEiGx9fC7DVXSnysK7vCpGQCHIvb0/jGpyj1V5vzM7mrz7Zm7BwoEMr8U2lwusY84dki8b/zoCTrz8/1NaTUFkN1nenxBvg6KKtKkKtMPoXyy9YSJ0/a2RpWN4etyERgDmY9Wc9TlXbk3o5FJSgB8JeyQVtNGkT0+bu91EJ02lT0TWA2EKJ61Gtm4HTxm2eIgdG12A3DTE1khhuyHy/O00ml8KAKP1Z3bmJr8HwVaf9fxetVFOzgi0QSB9gqchAE0PY7eRyDF+2YEOE25bT+9FAQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=cornell.edu;dmarc=pass action=none header.from=cornell.edu;dkim=pass header.d=cornell.edu;arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cornell.edu; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aChYVt+ieHiWm7YlJ8Jw0d+Go0pj/gdRENqXtuZ+3/4=; b=Z0a9PU/E5+4iQjqp2MobfRwBMapDaYiTpNtb45PyDWs9Lv4W3Eaddt3I3Jf+B6CA4zbC9KQfWa7h056rJgcZq21MNeE9/fhyhc/iNQwlWbiPK+QtVwyWqrQhyaB1kQH65HHkS2ruCk0bz2rrAv/yYq86eajaONu1p/nN9y+MFkc=
From: Ken Brown <kbrown AT cornell DOT edu>
To: "cygwin AT cygwin DOT com" <cygwin AT cygwin DOT com>
Subject: Re: Regression (last snapshot)
Date: Fri, 2 Aug 2019 14:34:02 +0000
Message-ID: <b4d57d88-3ec4-939f-c591-e50aaef607f3@cornell.edu>
References: <20190729134700 DOT GO11632 AT calimero DOT vinschen DOT de> <ced2750a-0a52-1396-b6c1-f4228116bde7 AT cornell DOT edu> <20190729152327 DOT GQ11632 AT calimero DOT vinschen DOT de> <20190729154049 DOT GR11632 AT calimero DOT vinschen DOT de> <c5d01965-80b9-cece-54d2-f7462f84c0a2 AT cornell DOT edu> <8e57d4da-722d-1b9a-bd28-5f96ed182f6a AT cornell DOT edu> <0a09679b-1a0f-613b-04c8-1a63da8a00c2 AT cornell DOT edu> <33aead20-540c-ee3b-0d38-ff053fbac040 AT dronecode DOT org DOT uk> <12269538-c387-1f1e-ab5a-b36b60d09937 AT cornell DOT edu> <a61264b5-80da-52fc-7093-8e8d9a8ace33 AT redhat DOT com> <20190801160440 DOT GC11632 AT calimero DOT vinschen DOT de> <19e73527-cb9a-a106-a57a-2895b8a520c9 AT cornell DOT edu> <e922144a-1f02-9398-4223-dbf76c69231f AT cornell DOT edu>
In-Reply-To: <e922144a-1f02-9398-4223-dbf76c69231f@cornell.edu>
user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0
authentication-results: spf=none (sender IP is ) smtp.mailfrom=kbrown AT cornell DOT edu;
x-ms-oob-tlc-oobclassifiers: OLM:8882;
received-spf: None (protection.outlook.com: cornell.edu does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ksb2 AT cornell DOT edu
X-IsSubscribed: yes
X-MIME-Autoconverted: from base64 to 8bit by delorie.com id x72EYdFa020298

On 8/1/2019 10:32 PM, Ken Brown wrote:
> On 8/1/2019 5:17 PM, Ken Brown wrote:
>> On 8/1/2019 12:04 PM, Corinna Vinschen wrote:
>>> On Aug  1 10:38, Eric Blake wrote:
>>>> Could it be a case of xwin-xdg-menu calling signal(SIGPIPE, SIG_IGN) or
>>>> similar, and accidentally letting grep inherit the ignored SIGPIPE?
>>>
>>> execve doesn't propagate the signal dispositions, they get reset to
>>> default.
>>
> I just built a version of grep in which I added 'signal(SIGPIPE, SIG_DFL)', and
> the error is gone.  So it looks like grep has in fact been receiving SIGPIPE,
> and for some reason it is not using the default signal handler for SIGPIPE in a
> terminal started by xwin-xdg-menu.  Could this be a gtk issue?  Does it mess
> with the signal handlers?

I think I've finally got it.

First of all, here's what POSIX says about signal handlers after an exec:

"Signals set to the default action (SIG_DFL) in the calling process 
image shall be set to the default action in the new process image. 
Except for SIGCHLD, signals set to be ignored (SIG_IGN) by the calling 
process image shall be set to be ignored by the new process image. 
Signals set to be caught by the calling process image shall be set to 
the default action in the new process image (see <signal.h>)."

Second, here's a quote from the GTK+ documentation for gtk_init():

"Since 2.18, GTK+ calls signal (SIGPIPE, SIG_IGN) during initialization, 
to ignore SIGPIPE signals, since these are almost never wanted in 
graphical applications. If you do need to handle SIGPIPE for some 
reason, reset the handler after gtk_init(), but notice that other 
libraries (e.g. libdbus or gvfs) might do similar things."

Third, xwin-xdg-menu calls gtk_init() near the beginning of main().

Putting this all together, Eric's explanation is indeed correct.  All 
processes created by xwin-xdg-menu via fork/exec inherit the property of 
ignoring SIGPIPE.

I don't know if this is a bug, but it certainly leads to surprising 
behavior.  Jon, maybe xwin-xdg-menu needs to call signal(SIGPIPE, 
SIG_DFL) either after calling gtk_init() or before calling exec()?

Ken

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019