jberger / Mojo-IOLoop-ForkCall

Deprecated! Use Mojo::IOLoop::Subprocess instead
https://mojolicious.org/perldoc/Mojo/IOLoop/Subprocess
5 stars 2 forks source link

Windows abort() during fork #5

Open jberger opened 10 years ago

jberger commented 10 years ago

new test mojolicious.t is failing under native windows perl (strawberry and AS). After conversation on #p5p it seems that it might be related to this bug reported on perl5 itself

https://rt.perl.org/Public/Bug/Display.html?id=120767

bulk88: jberger, doing any file I/O during a CLONE meth call during a Win32 psuedofork will call C abort(), its an open bug

jberger commented 10 years ago

Note that the offending c level function is win32_checkTLS found in win32/perllib.c

https://github.com/Perl/perl5/blob/622abdef571eb35e5982acde3b3b85b2cac8eb40/win32/perllib.c#L52

jberger commented 10 years ago

Note also https://rt.perl.org/Public/Bug/Display.html?id=40565

jberger commented 9 years ago

Hmmmmmm, I'm seeing passes on recent Perls. This bug was seen as a failure of mojolicious.t which is now passing. I'm cautiously optimistic that this might be working, and yet bulk88 says that the abort() bug is yet unresolved.

Originally before I included that test, it looked like Windows worked, and yet any non-trivial application that attempted to use ForkCall blew up. The test was added to demontrate that problem, and it did previously abort(3). It is possible that the dragons still lie deeper, but now it seems to pass!