Re: POE::Component::Client::Keepalive crashes perl (5.16) on Windows
Rocco Caputo <[email protected]> Sun, 15 Feb 2015 13:35:53 -0500
| Newsgroups | gmane.comp.lang.perl.poe |
|---|---|
| Message-ID | <[email protected]> |
> On Feb 15, 2015, at 06:59, Michael Lackhoff <[email protected]> = wrote: >=20 > When it comes to the dependency mentioned > in the Subject perl crashes several times during dmake test. It is not > just a simple test failure but a Windows dialog box appears, saying = that > perl.exe has crashed. Hello, Michael. In these cases I usually use something like Devel::Trace to find out = which line(s) of Perl were executing before the dialog pops up. Output = will be super verbose, but it's the last ten lines (or so) that really = matter. While it's possible to turn on crash dumps and examine them in a = debugger, I've found this to be generally unhelpful on Windows. The = same goes for Windows system call traces. There's a tool for that, but = Perl tends to crash in its own code. Please be sure you're using the latest available versions of POE, = POE::Component::Resolver, and POE::Component::Client::Keepalive. The = PPM build system is often stuck on some earlier version. It feels like the most problematic part of = POE::Component::Client::Keepalive's stack would be = POE::Component::Resolver. It's all "pure Perl", but the resolver uses = POE::Wheel::Run to move blocking DNS calls into subprocesses. POE::Wheel::Run uses Windows-specific modules to avoid problems with = fork(). Many of these modules are bundled with Perl, but maybe PPM = and/or CPAN contain newer versions. As a general recommendation, I = suppose it wouldn't hurt to make sure these are up to date: = Win32API::File, Win32::Console, Win32::Process, Win32::Job, and Win32. = There may be unmet minimum version requirements for your particular = setup. If you get Devel::Trace working, sending me the last output before the = popup might help. --=20 Rocco Caputo <[email protected]>