delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2019/10/04/16:14:31

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=Ot8TIUqCi3o2BdNwrs4xOkUsidx5B
5vus3ccnKCAoO8ShAyKIvSWhf8mW0SML1nyr+/dO04OgMo2PPA0VGYo5PTVfrCpx
uUcXnQcQqPbSTnLjzRfb0DjJC1GOIKdjl0EehVXj2auOiQn5TrZLtDef1Bmb9vNc
wlkMnHCAN7tcHM=
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=lY7jNTtMmHF6D3u34qV9GBnwFPI=; b=Uoc
wGA/zG91cDVI/qk1tyqWNxcSQbDMVbzihzFxwrb33hig8IUEUKFKM5ETemJjj2rf
Yy4jIi6DvVw47ghSrGiJZkw3k5h6OPgdUR6q4+1v3VWmKqZzdwxYlJyBKEgHoeY/
DbotTbeIjzB+k19JQntC99acvy+ldn41Exi9H5W0=
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=nonsense
X-HELO: NAM04-SN1-obe.outbound.protection.outlook.com
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dIqh3o8SauDoZITkBER8+Dp2YCzwUCQNNptRciECzmSaMOUpVWHup4eX3JdnawsCbUNFVY526YRKHAKgU/QW9SKJh4dA8spsNSP2JYf7fc/0gXC0d0swyAeuo9FQ7uTCLZzA7r/FZZjG+6pgMEJ1VONe/zhGfIzDaZ85xLWjSHfZ4pVoCIqVyqjBqmw4ZD6ECxTltmensqbKV0Pbm2rLqvjchFx+DoLs4235SPbn1sI25z2z1JvwLOmIMcu5V3+qMgF3gsSjX/gyE8hjLJ8yRvw3bPV0NfesKSbqcVoxKyKd5HB1vB2lwH9p4uk/D0cdpLuFMvUoOoQm3/cMB2r11g==
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=cTeoROhLTJNSMiknI8ur7+S5MZYfjz8iBQVTs5miYU0=; b=BmFygw9K+ImTq0Iqj3IhmJ6pfFbTz8M2VRQtKSxBiIRq9qliT1qma/YRoNLhbdAC31sd06Zf2asH6g7v/GecFSPq7xxyd6AenvwjWgh5Du/knj6sbIKTlXrfNNGtG6pr3/nAFLqaWRASzdx1q3S0iY04J5pVEPizkL8RLKzktAjIlPBKON9qXK6FiXZ3l/bZp+sZyavchDtPvHdYr5CQJ8CoJP4XtSuhrX+rJaxkgsOHQWCV/qGabgELQyBjXbo/izfhW/sIhOPyt9XudNvo4rrb980YkO1K993z1jZzQdIDNKG2/gL6Vtim98Lv01Pmme1IyMbZra8A4lv0B3CaTA==
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=cTeoROhLTJNSMiknI8ur7+S5MZYfjz8iBQVTs5miYU0=; b=F1S0UbL2F7unJzwo6G5Mwuft2IHHx4fyz9PP46+dVTf6t8T/29Ms3+smMi0O/ywp+I5JhXscL3WVRjYtbUC2vBB7pcQtJHX+Y0kdLYPWU65BdygRoyu03iL5aU2k/LUTsqHcvpIn3Wi/M1wlmsofN0F1VkUfG3j5h29rgqnpLP8=
From: Ken Brown <kbrown AT cornell DOT edu>
To: "cygwin AT cygwin DOT com" <cygwin AT cygwin DOT com>
Subject: Re: ssh-agent doesn't die
Date: Fri, 4 Oct 2019 20:13:36 +0000
Message-ID: <81400f03-e424-255a-7b94-d3cbe584c356@cornell.edu>
References: <319e26c0-32f0-40b7-2137-c7de170a3486 AT rl DOT ac DOT uk> <5b225738-c2d7-fbfe-48a7-8c2a38c3398c AT cornell DOT edu> <0ccd17b6-c22a-1a18-9409-1ebcfae60868 AT huarp DOT harvard DOT edu> <9f7a14bb-f81b-c566-bb84-8da7fc6d0fad AT cornell DOT edu> <185c5774-dd8b-5488-b818-4cec5a24bf2d AT cornell DOT edu> <801bca17-2c61-bb6a-f02c-c4912232d9c5 AT cornell DOT edu>
In-Reply-To: <801bca17-2c61-bb6a-f02c-c4912232d9c5@cornell.edu>
user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0
authentication-results: spf=none (sender IP is ) smtp.mailfrom=kbrown AT cornell DOT edu;
x-ms-oob-tlc-oobclassifiers: OLM:9508;
received-spf: None (protection.outlook.com: cornell.edu does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-ms-exchange-transport-forked: True
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: nrHR6n1cQoQEh5nuU9/kF/ctunU7LK67O02ELq/rG5A4JXg6pQD9SKqk2t2MozpUifFegRYHStjgZnbno8QtkQ==
X-IsSubscribed: yes
X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id x94KEDdT020131

On 10/4/2019 10:27 AM, Ken Brown wrote:
> On 9/29/2019 4:05 PM, Ken Brown wrote:
>> On 9/27/2019 10:12 AM, Ken Brown wrote:
>>> On 9/27/2019 9:37 AM, Norton Allen wrote:
>>>> On 9/26/2019 10:50 PM, Ken Brown wrote:
>>>>>
>>>>>> As a simple test example, consider:
>>>>>>
>>>>>> /bin/ssh-agent /bin/sleep 10
>>>>>>
>>>>>> While the sleep is still running, ps shows:
>>>>>>
>>>>>>            PID    PPID    PGID     WINPID   TTY         UID    STIME COMMAND
>>>>>>           1694    1693    1694       1576  ?          22534 00:01:10
>>>>>> /usr/bin/ssh-agent
>>>>>>           1653       1    1653      11740  cons1      22534 00:00:37 /usr/bin/bash
>>>>>>           1693    1653    1693       1552  cons1      22534 00:01:10 /usr/bin/sleep
>>>>>>
>>>>>> One oddity is that ssh-agent is listed as a subprocess of sleep
>>>>> ...but this isn't a bug.  ssh-agent forks, and then the parent execs the command.
>>>>
>>>> With the salient difference presumably being that the exec is done in the parent
>>>> instead of the child as usual?
>>>
>>> Yes.  The idea is that 'ssh-agent command' should be more-or-less equivalent to
>>> running 'command', with ssh-agent running as a subprocess.
>>>
>>> The ssh-agent subprocess periodically checks to see if its parent is still
>>> alive, and it exits when the parent has died.  Someone should figure out why
>>> this is not working on Cygwin.
>>
>> As an aid to someone who might want to debug this (probably Corinna when she
>> returns), I've created a test program agent.c (attached) that simulates the
>> relevant part of ssh-agent:
>>
>> 1. It forks a subprocess that periodically checks to see if its parent has died,
>> and then exits.
>>
>> 2. The parent execs "/usr/bin/sleep 1".
>>
>> As with ssh-agent, the subprocess never detects that the parent has died, and so
>> it never exits.
>>
>> Running this program under strace shows the following error in the pinfo
>> constructor:
>>
>> pinfo::pinfo: couldn't duplicate parent rd_proc_pipe handle 0x1BC for forked
>> child 1666 after exec, Win32 error 5
>>
>> [Win32 error 5 is ERROR_ACCESS_DENIED.]
> 
> It seems that the pinfo constructor failure happens in
> cygheap_exec_info::reattach_children().  The latter is preceded by the following
> comment:
> 
> /* Reattach non-reaped subprocesses passed in from the cygwin process
>      which previously operated under this pid.  FIXME: Is there a race here
>      if the process exits during cygwin's exec handoff?  */
> 
> I tried running my test program under gdb with a breakpoint at
> reattach_children, and the breakpoint was never hit.  That gives an affirmative
> answer to the question in the FIXME. >
> As a result, the exec'd program never becomes aware that it has a subprocess, so
> it exits without resetting the subprocess's ppid to 1.
> 
> Is there someone out there familiar enough with Cygwin's exec to suggest a fix?
> It would be a nice gift to Corinna to get this fixed before her return.

What I said above about gdb is nonsense.  It's the exec'd process that calls 
reattach_children, so I wouldn't expect gdb to see that call.  I think the rest 
of my analysis is correct, but I'm not sure that the FIXME explains the failure.

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