delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2005/08/11/20:10:45

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
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
Message-ID: <42FBE9C6.4CA059D7@dessent.net>
Date: Thu, 11 Aug 2005 17:13:58 -0700
From: Brian Dessent <brian AT dessent DOT net>
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: WFSO timed out after longjmp, data pass 3 failed
References: <1123800781 DOT 29426 DOT 254 DOT camel AT sandman DOT vrac DOT iastate DOT edu>
X-IsSubscribed: yes
Reply-To: cygwin AT cygwin DOT com

Dirk Reiners wrote:

> What does WFSO mean, and is there any way to change the timeout? It
> seems to be not fully reproducible, sometimes it works, which might
> depend on other things going on on the system that slow down the process
> more or less. Therefore if I can extend the timeout somewhat I hope I
> can get rid of this.

Disclaimer: There's a good chance that I'm way off base with the
following.

WFSO stands for WaitForSingleObject and the error means that something
went wrong during the dance that parent and child processes perform in
the fork emulation code.

To emulate fork(), the parent starts the child, waits for it to
initialize, and then the child blocks (using WFSO) on a semaphore while
the parent copies over all its data onto the child.  The parent is then
supposed to signal the child to wake up again after it's done copying
all these sections (heap, stack, etc.)

The child needs a timeout for this wait, in case the parent flakes out
for some reason.  But if it does wake up on account of this timeout,
there's a serious problem and all it can really do is exit, which is
what you're seeing.  The parent was apparently still copying (in pass 3)
when this happened, and so the copying failed with errno 5 (Access
denied) as the child has terminated.

The timeout is 5 minutes, and it's hard to imagine that copying over
those sections would take anywhere near long, but I suppose if the
system is heavily taxed then it's conceivable that the parent might be
starved for CPU by a higher priority process and not complete in time. 
But that's really a stretch.

If this is the case then it should be intermittent, and not occur unless
the system is very busy.  You should try the latest cygwin DLL snapshot,
and try rebasing (though I dunno if that would affect this or not.)

Brian

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

- Raw text -


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