This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [1.7] Updated: cygwin-1.7.0-65


On Mon, Nov 23, 2009 at 10:07:05PM +0800, Huang Bambo wrote:
>2009/11/23 Corinna Vinschen <corinna-cygwin@cygwin.com>:
>> On Nov 23 17:43, Huang Bambo wrote:
>>> 2009/11/23 Corinna Vinschen <corinna-cygwin@cygwin.com>:
>>> > On Nov 22 09:33, Huang Bambo wrote:
>>> >> And there's another quesiton:
>>> >> The handle of chile process( created by fork ) seems never been closed
>>> >> bye parent process. Is it need to be closed?
>>> >
>>> > I don't understand the question. ?There's one dangling socket handle left
>>> > and I know where and why it happens. ?Other than that, I don't see any
>>> > other socket handling which is left open accidentally.
>>> >
>>> While run my last test code, every time comes one connection, there
>>> are 3 handle leak( I monited it by Process Explorer( from
>>> www.sysinternals.com)), one is the chile process's handle, one is of
>>> "Section ? ? ?\BaseNamedObjects\cygwin1S5-9770bb4ddbd85dca\cygpid.xxxx",
>>> the other one is of \Device\Afd.
>>> I mean is there any other leak with those handles.
>>
>> The leak is a result of the parent process not calling wait(2) or
>> waitpid(2) to reap the child process. ?If you let the process properly
>> call wait/waitpid, you won't see a leak, except for the current socket
>> leak this thread is about.
>
>There's some diffirence between cygwin and other *nix:
>In other *nix with this condition, those ended child process could be
>list by ps command with <defunc>tag, will you fix it?

Cygwin should produce zombie processes.  You don't see zombie processes
if the child has exited and the parent goes away though.  In that case
the process just disappears, just like on linux.

You *should* see a zombie when the parent is alive by not waiting for
children.

The "leak" that Corinna is talking about comes about when the parent has
not called wait since the parent keeps handles open to its children
until they are reaped.  That's how we know whether a process is a zombie
or not.

cgf

--
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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]