[PATCH draft 0/6] Remove the fhandler_base_overlapped class

Corinna Vinschen corinna-cygwin@cygwin.com
Tue Jun 11 08:48:00 GMT 2019

Hi Ken,

On Jun  8 12:20, Ken Brown wrote:
> On 6/7/2019 5:43 PM, Ken Brown wrote:
> > On 6/7/2019 3:13 PM, Ken Brown wrote:
> >> On 6/7/2019 2:31 PM, Achim Gratz wrote:
> >>> Ken Brown writes:
> >>>> I think I've found the problem.  I was mishandling signals that arrived during a
> >>>> read.  But after I fix that, there's still one nagging issue involving timerfd
> >>>> code.  I'll write to the main list with details.  I *think* it's a timerfd bug,
> >>>> but it's puzzling that I only see it when testing my new pipe implementation.
> >>>
> >>> Anything triggering a race or deadlock will depend on so many other
> >>> things that it really is no surprise to see seemingly unrelated changes
> >>> making the bug appear or disappear.  There are certainly races left in
> >>> Cygwin, I see them from time to time in various Perl modules, just never
> >>> reproducible enough to give anyone an idea of where to look.
> >>
> >> That makes sense.
> >>
> >> In the meantime, I've already discovered another problem, within an hour of
> >> posting my claim that everything was working fine: If I start emacs-X11 with
> >> cygserver running, I can't fork any subprocesses within emacs.  I get
> >>
> >> 0 [main] emacs 2689 dofork: child 2693 - died waiting for dll loading, errno 11
> >>
> >> Back to the drawing board....  I've never looked at the cygserver code, but
> >> maybe it will turn out to be something easy.
> > 
> > Good news (for me): This isn't related to my pipe code.  The same problem occurs
> > if I build the master branch.  I'll bisect when I get a chance (probably
> > tomorrow).  In the meantime, all I can say is that strace shows a
> > STATUS_ACCESS_VIOLATION at shm.cc:125.
> A bisection shows that the problem starts with the following commit:

Thanks for bisecting!

> commit f03ea8e1c57bd5cea83f6cd47fa02870bdfeb1c5
> Author: Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
> Date:   Thu May 2 12:12:44 2019 +0200
>      Cygwin: fork: Remember child not before success.
>      Do not remember the child before it was successfully initialized, or we
>      would need more sophisticated cleanup on child initialization failure,
>      like cleaning up the process table and suppressing SIGCHILD delivery
>      with multiple threads ("waitproc") involved.  Compared to that, the
>      potential slowdown due to an extra yield () call should be negligible.

Please revert the patch for the time being.  Michael, this needs some
more work, apparently.


Corinna Vinschen
Cygwin Maintainer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-patches/attachments/20190611/63becc76/attachment.sig>

More information about the Cygwin-patches mailing list