On Dec 19, 2007 7:23 AM, A. Pagaltzis <[EMAIL PROTECTED]> wrote:
> I wish someone would help me fix Proc::Fork on Windows. I got
> two tickets about it and a bunch of Testers failures, but several
> attempts to make it work have failed and my repeated pleas have
> fallen on deaf ears. :-)
I poked around with it a bit. One think I noticed immediately is that
you have "-T" switches in your shebang lines on the test files.
As I've reported elsewhere, Perl on windows has what I call the
"taint-fork bug" -- forking while under taint just segfaults.
> perl -Te fork
It still segfaulted on the 01-real.t test, but it does so after the
fork when calling the anonymous subroutines instead of on the fork
itself.
With a little more poking around, the problem lies in your
modification of @_ and use of goto &_do_fork. Changing the relevent
lines to
my @args = @{ $config}{ qw( parent child error retry ) };
undef $config;
_do_fork(@args);
passes all tests. You lose the nice callstack, but it doesn't
segfault. I'm guessing that's really an issue with goto and
pseudoforks or threads on Windows.
(As an aside, I did try it with Sub::Uplevel and it ran the child
branch bug segfaulted calling the parent branch -- not sure why.)
Regards,
David