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