Skip Menu |

Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the Parallel-ForkManager CPAN distribution.

Report information
The Basics
Id: 46268
Status: rejected
Priority: 0/
Queue: Parallel-ForkManager

People
Owner: Nobody in particular
Requestors: michael.elliott [...] tradedoubler.com
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: 0.7.5
Fixed in: (no value)



Subject: Parallel::ForkManager causes a GPF when running from within a PAR Packaged EXE but not in unpackaged script form
I've written a script that forks using this module up to (but no more than) ten times to download files using WWW::Mechanize. While this works with the source code using ActiveState it doesn't work when I use pp to package the file. I've attached a SS of the gpf thrown, included the error signature and the appcompat.txt file that Windows generates. It forks the first set of 10 downloads then as soon as it's done that it GPF's, while the perl source script forks 10 downloads, and then continues forking until the entire set of urls in PROGIDS has been exhausted. Is there an inherent problem with using par packaged EXEs with Parallel::ForkManager? The script performs similar to the following: use WWW::Mechanize; use Parallel::ForkManager; $| = 1; $source = shift (@ARGV); open PROGIDS, "<", $source; my $output = shift (@ARGV); unlink $output; my $downloadattempts = 0; my $filename = ""; my $mech = WWW::Mechanize->new(timeout => 600); my $count = 0; while (<PROGIDS>) { $count++; } close PROGIDS; if ($count > 10) { $pm = new Parallel::ForkManager(10); } else { $pm = new Parallel::ForkManager($count); } open PROGIDS, "<", $source; print "Downloading:\n"; while (<PROGIDS>) { chomp $_; my $pid = $pm->start and next; STARTDOWNLOAD: $filename = $file.".xls"; $mech->get ( $_, ':content_file' => $filename ); $me = $mech->status; unless ($me eq "200") { $downloadattempts++; if ($downloadattempts < 3) { goto STARTDOWNLOAD; } else { exit(); } $pm->finish; } $pm->wait_all_children; print "Done.\n";
Subject: screenshotPPedForkManagerprog.JPG
screenshotPPedForkManagerprog.JPG
Subject: e3fd_appcompat.txt
<?xml version="1.0" encoding="UTF-16"?> <DATABASE> <EXE NAME="1.exe" FILTER="GRABMI_FILTER_PRIVACY"> <MATCHING_FILE NAME="086f7401.dll" SIZE="73825" CHECKSUM="0x3E480AB" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="09/03/2008 20:21:32" UPTO_LINK_DATE="09/03/2008 20:21:32" /> <MATCHING_FILE NAME="1.exe" SIZE="44544" CHECKSUM="0x9510295E" BIN_FILE_VERSION="0.0.0.0" BIN_PRODUCT_VERSION="0.0.0.0" PRODUCT_VERSION="" FILE_DESCRIPTION="" COMPANY_NAME="" PRODUCT_NAME="" FILE_VERSION="" ORIGINAL_FILENAME="" INTERNAL_NAME="" LEGAL_COPYRIGHT="" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x1" MODULE_TYPE="WIN32" PE_CHECKSUM="0x138F9" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="0.0.0.0" UPTO_BIN_PRODUCT_VERSION="0.0.0.0" LINK_DATE="07/30/2008 18:27:23" UPTO_LINK_DATE="07/30/2008 18:27:23" VER_LANGUAGE="Process Default Language [0x400]" /> <MATCHING_FILE NAME="28271083.dll" SIZE="28771" CHECKSUM="0xD188EB36" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="09/03/2008 20:22:05" UPTO_LINK_DATE="09/03/2008 20:22:05" /> <MATCHING_FILE NAME="77800eec.dll" SIZE="24676" CHECKSUM="0x88A9B9A" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="09/03/2008 20:20:29" UPTO_LINK_DATE="09/03/2008 20:20:29" /> <MATCHING_FILE NAME="88b10c9e.dll" SIZE="24673" CHECKSUM="0x34499AEE" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="09/03/2008 20:20:23" UPTO_LINK_DATE="09/03/2008 20:20:23" /> <MATCHING_FILE NAME="9b7bd55e.dll" SIZE="102527" CHECKSUM="0x509E2186" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="09/03/2008 20:54:25" UPTO_LINK_DATE="09/03/2008 20:54:25" /> <MATCHING_FILE NAME="d5d5d29f.dll" SIZE="28772" CHECKSUM="0x5C6D9660" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="09/03/2008 20:21:07" UPTO_LINK_DATE="09/03/2008 20:21:07" /> <MATCHING_FILE NAME="f25066f5.dll" SIZE="24667" CHECKSUM="0xBF119D72" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="09/03/2008 20:20:53" UPTO_LINK_DATE="09/03/2008 20:20:53" /> <MATCHING_FILE NAME="f45c1ecc.dll" SIZE="41064" CHECKSUM="0x53090EDF" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="09/03/2008 21:18:13" UPTO_LINK_DATE="09/03/2008 21:18:13" /> <MATCHING_FILE NAME="fe6d7949.dll" SIZE="41077" CHECKSUM="0x144F9FFF" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="09/03/2008 20:49:38" UPTO_LINK_DATE="09/03/2008 20:49:38" /> <MATCHING_FILE NAME="perl510.dll" SIZE="853504" CHECKSUM="0x2CEBFBA6" MODULE_TYPE="WIN32" PE_CHECKSUM="0xDB243" LINKER_VERSION="0x0" LINK_DATE="01/30/2008 07:15:52" UPTO_LINK_DATE="01/30/2008 07:15:52" /> </EXE> <EXE NAME="perl510.dll" FILTER="GRABMI_FILTER_THISFILEONLY"> <MATCHING_FILE NAME="perl510.dll" SIZE="853504" CHECKSUM="0x2CEBFBA6" MODULE_TYPE="WIN32" PE_CHECKSUM="0xDB243" LINKER_VERSION="0x0" LINK_DATE="01/30/2008 07:15:52" UPTO_LINK_DATE="01/30/2008 07:15:52" /> </EXE> <EXE NAME="kernel32.dll" FILTER="GRABMI_FILTER_THISFILEONLY"> <MATCHING_FILE NAME="kernel32.dll" SIZE="989696" CHECKSUM="0x2D998938" BIN_FILE_VERSION="5.1.2600.5781" BIN_PRODUCT_VERSION="5.1.2600.5781" PRODUCT_VERSION="5.1.2600.5781" FILE_DESCRIPTION="Windows NT BASE API Client DLL" COMPANY_NAME="Microsoft Corporation" PRODUCT_NAME="Microsoft® Windows® Operating System" FILE_VERSION="5.1.2600.5781 (xpsp_sp3_gdr.090321-1317)" ORIGINAL_FILENAME="kernel32" INTERNAL_NAME="kernel32" LEGAL_COPYRIGHT="© Microsoft Corporation. All rights reserved." VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0xFE572" LINKER_VERSION="0x50001" UPTO_BIN_FILE_VERSION="5.1.2600.5781" UPTO_BIN_PRODUCT_VERSION="5.1.2600.5781" LINK_DATE="03/21/2009 14:06:58" UPTO_LINK_DATE="03/21/2009 14:06:58" VER_LANGUAGE="English (United States) [0x409]" /> </EXE> </DATABASE>
Subject: error signature.txt
AppName: 1.exe AppVer: 0.0.0.0 ModName: perl510.dll ModVer: 0.0.0.0 Offset: 0000de9c
quick note that the line: $filename = $file.".xls"; should read in this version: $filename = $_.".xls"; thanks :) M
Hi, Thank you for the report, but unfortunately I don't know windows, EXE packaging, PAR-s at all, so I am not going to be able to solve this. :( Balázs