Regression (last snapshot)
Ken Brown
kbrown@cornell.edu
Thu Aug 1 21:17:00 GMT 2019
On 8/1/2019 12:04 PM, Corinna Vinschen wrote:
> On Aug 1 10:38, Eric Blake wrote:
>> On 8/1/19 10:30 AM, Ken Brown wrote:
>>
>>>>> OK, when xwin-xdg-menu launches an application, it creates two pipes
>>>>> and sets
>>>>> the application's stdout and stderr to the write ends of those pipes.
>>
>>> Well, I can't be sure that the pipes are responsible. It's just that
>>> the existence of the pipes is the only difference I could spot between
>>> an ordinary terminal and a terminal started from xwin-xdg-menu.
>>>
>>> Is it possible that the logging somehow slows things down or changes the
>>> buffering, so that the grep process takes longer to complete? This
>>> would be consistent with my theory that the broken pipe error doesn't
>>> really represent a bug, but rather it reflects the fact that ls exits
>>> before grep has finished writing.
>>
>> 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 realized, as a result of Eric's comment, that the explanation
I've been pushing is nonsense.
What I've been explaining is why there would be a broken pipe, and
therefore a SIGPIPE and EPIPE. But I now see that that's not the issue.
The issue is whether grep gets the SIGPIPE and terminates before it
has a chance to see the EPIPE.
So if grep isn't ignoring SIGPIPE, the only other possibility I can
think of is that grep isn't receiving SIGPIPE, or at least that there's
a delay before it receives it. Why would that happen only in terminals
started by xwin-xdg-menu?
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
More information about the Cygwin
mailing list