Hi David, thanks for taking a gander!
* David Golden <[EMAIL PROTECTED]> [2007-12-19 16:35]: > As I've reported elsewhere, Perl on windows has what I call the > "taint-fork bug" -- forking while under taint just segfaults. Ugh. > With a little more poking around, the problem lies in your > modification of @_ and use of goto &_do_fork. That was a desperate guess; the previous version just returned the $config hash and used DESTROY to trigger the fork when it went out of scope. I blindly guessed that object destruction across threads might be causing the problem, so I tried to get rid of the hash before the 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. Does it continue to pass if you replace the first line with my ( $p, $c, $e, $r ) = @{ $config }{ qw( parent child error retry ) }; and then inline the body of `_do_fork`? (Logically, it should, but this utterly undebuggable problem has made me a bit superstitious…) Regards, -- Aristotle Pagaltzis // <http://plasmasturm.org/>