tsung_stats.pl on Mac OS X Mavericks run into "Can't locate Template.pm" error - macos

I'm trying to run tsung_stats.pl from tsung (installed through brew) on Mac OS X 10.9 and got error:
Can't locate Template.pm in #INC (#INC contains:
/Library/Perl/5.16/darwin-thread-multi-2level /Library/Perl/5.16
/Network/Library/Perl/5.16/darwin-thread-multi-2level
/Network/Library/Perl/5.16 /Library/Perl/Updates/5.16.2
/System/Library/Perl/5.16/darwin-thread-multi-2level
/System/Library/Perl/5.16
/System/Library/Perl/Extras/5.16/darwin-thread-multi-2level
/System/Library/Perl/Extras/5.16 .) at tsung_stats.pl line 564
I searched and it seems I have to install perl templates, so I ran "sudo cpan Template" and yet still get the same error.
cpan and perl are all in /usr/bin/. Tsung is in /usr/local/Cellar/tsung/1.5.0/bin/tsung
Versions are:
perl: perl 5, version 16, subversion 2 (v5.16.2)
cpan: 1.57
tsung: 1.5.0
I searched my system and found no file name Template.pm. The closest I found was two TextTemplate.pm files in
/System/Library/Perl/Extras/5.16/Locale/Maketext/Extract/Plugin/
/System/Library/Perl/Extras/5.12/Locale/Maketext/Extract/Plugin/
The following code snippet in question starts from line 563:
sub html_report {
require Template;
my $titre = 'Tsung ';
my $version = $tagvsn;
my $contact = 'tsung-users#process-one.net';
my $output = 'index.html';
my $tt = Template->new({
INCLUDE_PATH => $template_dir,
PRE_CHOMP => 1,
INTERPOLATE => 1,
}) or die "Template error " . Template->error();
my $xml_conf;
opendir (DIR, ".") or warn "can't open directory .";
while (my $file = readdir (DIR) ) {
if ($file =~ /.xml$/) {
$xml_conf= $file;
}
}
foreach my $type ("mean", "maxmean", "minmean") {
foreach my $data (keys % {$maxval->{$type}} ) {
next if ($data =~ m/^size/);
if ($data =~ m/os_mon/) {
$maxval->{$type}->{$data} = sprintf "%.2f",$maxval->{$type}->{$data};
next;
}
next if not ($data eq "session" or $data eq "connect" or $data eq "request" or $data eq "page" or $data =~ m/^tr_/);
$maxval->{$type}->{$data} = &formattime($maxval->{$type}->{$data});
}
}
foreach my $size ("size_rcv", "size_sent") {
if ($maxval->{rate}->{$size}) {
$maxval->{rate}->{$size} = &formatsize($maxval->{rate}->{$size}*8,"bits");
$maxval->{maxmean}->{$size} = &formatsize($maxval->{maxmean}->{$size},"B");
} else {
warn "$size is equal to 0 !\n";
}
}
my $vars =
{
version => $version,
os_mon => $extra,
errors => $errors,
title => $titre,
subtitle => "Stats Report",
http => $http,
stats_subtitle => "Stats Report ",
graph_subtitle => "Graphs Report ",
contact => $contact,
data => $maxval,
cat_data => $category,
conf => $xml_conf
};
$tt->process("report.thtml", $vars, "report.html") or die $tt->error(), "\n";
$vars =
{
version => $version,
os_mon => $extra,
errors => $errors,
http => $http,
match => $match,
async => $async,
bosh => $bosh,
title => $titre,
subtitle => "Graphs Report",
stats_subtitle => "Stats Report ",
graph_subtitle => "Graphs Report ",
os_mon_other=> $os_mon_other,
contact => $contact,
conf => $xml_conf,
ext => $imgfmt
};
if (not $dygraph) {
$tt->process("graph.thtml", $vars, "graph.html") or die $tt->error(), "\n";
} else {
$tt->process("graph_dy.thtml", $vars, "graph.html") or die $tt->error(), "\n";
copy (($template_dir . "/dygraph-combined.js"), ".") or die "copy failed : $!";
}
}
I believe $template_dir is in this piece of code (start from line 71):
my $prefix ="/usr/local/Cellar/tsung/1.5.0";
unless ($template_dir) {
if (-d (dirname($0) . "/templates/")) {
$template_dir = dirname($0)."/templates/";
} elsif (-d "$ENV{HOME}/.tsung/templates/") {
$template_dir = "$ENV{HOME}/.tsung/templates/";
} elsif (-d "${prefix}/share/tsung/templates") {
$template_dir = "${prefix}/share/tsung/templates";
} elsif (-d "/usr/share/tsung/templates") {
$template_dir = "/usr/share/tsung/templates";
} elsif (-d "/usr/local/share/tsung/templates") {
$template_dir = "/usr/local/share/tsung/templates";
} else {
warn "Can't find template directory !";
}
}
I checked those locations and found some .pm files, but none were Template.pm.
Any help would be appreciated.

As deduced in the comments:
You need to install Template::Toolkit.

For tsung >= 1.6 and perl 5:
sudo cpan Template

just (on windows) run the following lines on cmd
cd C:\Perl64\bin
ppm install Template-Toolkit

If you tried by running cpan Template or cpan Template:Toolkit and still have this issue, check the version number and the path.
The file: tsung_stats.pl is using /usr/bin/perl and if for some reason you have another perl (like me) in /usr/local/Cellar/perl chances are the script never finds the Template you just installed.
Modify the file tsung_stats.pl in the first line from:
#!/usr/bin/perl -w
to
#!/usr/bin/env perl -w
This will load your perl version used by cpan.

Related

preg_match(): No ending delimiter

We are using ViPER Guestbook in our websites and getting following error messages:
[20-Jun-2015 12:01:40 UTC] PHP Warning: preg_match(): No ending delimiter '/' found in /home/...../...../gb/index.php on line 277
[20-Jun-2015 12:01:40 UTC] PHP Warning: preg_match(): No ending delimiter '/' found in /home/....../...../gb/index.php on line 278
These lines are:
(!preg_match("/^".PFIX."CUSTOM",$_key)) &&
(!preg_match("/^".PFIX."RATING",$_key))) {
The full code is:
$_b = true;
foreach ($arg as $_key => $_val) {
if ((!in_array($_key,$_paramlist)) &&
(!preg_match("/^".PFIX."CUSTOM",$_key)) &&
(!preg_match("/^".PFIX."RATING",$_key))) {
if (is_array($_val)) {
foreach ($_val as $_inkey => $_inval) {
$_param .= "&".urlencode($_key)."[".
urlencode($_inkey)."]=".urlencode($_inval);
}
}
else {
$_param .= "&".urlencode($_key)."=".urlencode($_val);
}
}
elseif ($_key != PFIX."decode")
$_b = false;
}
Where should the ending delimiter '/' be in this code?
Please help.
Thanks.
Lakshmanan
Thanks for your help.
We have corrected the code to as follows:
(!preg_match("/^".PFIX."CUSTOM/",$_key)) &&
(!preg_match("/^".PFIX."RATING/",$_key))) {
and there is no error messages as of now.
Thanks,
Lakshmanan

ZipArchive::extractTo doesn't working on Windows Platform

I'm using the following code (Windows Hosting - Plesk/Win) :
<?php
$zip = new ZipArchive;
$res = $zip->open('file.zip');
if ($res === TRUE) {
$path = getcwd();
$path = str_replace("/","\\",$path);
echo $path;
$zip->extractTo('E:\\Vhosts\\domain.com\\httpdocs\\test\\');
$zip->close();
echo 'Ok!';
} else {
echo 'Error!';
}
?>
When I run this code, the following message appears:
Warning:
ZipArchive::extractTo(E:\Vhosts\domain.com\httpdocs\test/image1.jpg)
[ziparchive.extractto]: failed to open stream: Permission denied in
E:\Vhosts\domain.com\httpdocs\test\extractphp.php on line 10
I don't now why this command put a slash before the unzipped file (test/image1.jpg).
How can I resolve this issue ?

TypeError: div is null

Basically I want pass data from fetch_javaScript function to database_fetch when ever i execute my program i got following error TypeError: div is null
some time i'm able to pass data database_fetch function but got prepare can't locate.
use strict;
use CGI;
use DBI;
use Data::Dumper;
require ("/usr/local/lib/perl5/site_perl/5.8.8/Class/Accessor.pm");
require ("/usr/local/lib/perl5/site_perl/5.8.8/CGI/Ajax.pm");
my $p = new CGI qw(header start_html end_html h1 script link);
my $ajax = new CGI::Ajax( 'fetch_javaScript' => my $database_fetch );
$p->header(-charset=>'US-ASCII');
print $ajax->build_html($p,\&generateHTML);
sub generateHTML
{
my %lable_fund=("Select"=>"Select",
"PMF"=>"PMF",
"PRAMERICA"=>"PRAMERICA",
"DHL"=>"DHL",
"EMF"=>"Edelweiss MF"
);
my %lable_agent=("Select"=>"Select",
"Gyanesh"=>"Gyanesh",
"Satish"=>"Satish",
"Sailesh"=>"Sailesh",
"ArchanaMuluguru"=>"Archana",
"Santosh"=>"Santosh",
"Priyanka"=>"Priyanka"
);
my $datepicker = "datetimepicker.js";
my $jquery = "cal.gif";
print $p->header();
print $p->start_html('MFS CALL CENTER');
print $p->h3('MFS CALL RECORDINGS');
print $p->start_html(-title=>'What we think we become',
-text=>'black',
-bgcolor=>'Gray',
-lang => "javascript",
-script => [{ -type => 'image/gif',
-src => $jquery },
{ -type => 'text/javascript',
-src => $datepicker },
],
);
print "Fund Name ",$p->popup_menu(-name=>'fund',
-id => 'fund1',
-values =>['Select','PMF','PRAMERICA','JM','DHL','EMF'],
-default => 'Select',
-multiple=>'true',
-labels => \%lable_fund),"\n";
print "<P>";
print "Agent Name ",$p->popup_menu(-name=>'agent',
-id => 'agent1',
-values=>['Select','Gyanesh','Satish','Sailesh','ArchanaMuluguru','Santosh','Afreen','Salman','Balaji','Priyanka'],
-default => 'Select',
-multiple=>'true',
-labels => \%lable_fund),"\n";
print "<P>";
print "From Date ", qq`<input name="timestamp" id="demo3" type="text" size="18"><img src="cal.gif" width="16" height="16" border="0" alt="Pick a date">`;
print " To Date ", qq`<input name="timestamp1" id="demo4" type="text" size="18"><img src="cal.gif" width="16" height="16" border="0" alt="Pick a date">`;
print "<P>";
print $p->button(-name=>'Submit',-value=>'Submit',-onclick=>"fetch_javaScript(['fund1','agent1','demo3','demo4'],['id1','id2','id3','id4','id5'],'GET');return true;");
print $p->end_html;
}
$database_fetch =sub
{
my #Details;
# my ($service_name,$agent_name,$call_start_time,$call_end_time);
my $service_name = shift;
my $agent_name=shift;
my $call_start_time=shift;
my $call_end_time=shift;
# print "$service_name ","$agent_name","$call_start_time ","$call_end_time ";
my $call_rec_file_name;
my $DSN = q/dbi:ODBC:SQLSERVER/;
my $uid = q/ivr/;
my $pwd = q/ivr/;
my $DRIVER = "Freetds";
my $dbh = DBI->connect($DSN,$uid,$pwd) or die "Coudn't Connect SQL";
my $servernumber = 2;
my $sql_fund=("select count '$service_name' from cti_services where service_name='$service_name'");
my $fund_count;
my $sql_fund1 = $dbh->prepare($sql_fund);
$sql_fund1->execute();
$sql_fund1->bind_columns(\$fund_count);
$sql_fund1->fetch;
my $sql_agent=("select count(agent_name) from cti_agents where agent_name=?");
my $agent_count;
my $sql_agent1 = $dbh->prepare($sql_agent);
$sql_agent1->execute($agent_name);
$sql_agent1->bind_columns(\$agent_count);
$sql_agent1->fetch;
if( $fund_count == 1 && $agent_count == 1 )
{
my $sql="select top(10) service_name,agent_name,call_rec_file_name,call_start_time,call_end_time from cti_agents join cti_call_master on (agent_name = call_agent_name) join cti_services on (call_service_id = service_id) where agent_name = 'Sailesh' and call_rec_file_name is not null";
my $sth = $dbh->prepare($sql);
while (my #data = $sth->fetchrow_array())
{
#Details=#data;
return #Details;
}
}
}
thanks in advance
You are using $database_fetch before it is assigned. You should change the call to
my $ajax = CGI::Ajax->new(fetch_javaScript => \&database_fetch);
and the subroutine definition to
sub database_fetch {
...
}

Magento Index Management issues, products not displaying in category pages

This is a Magento issue - using the Enterprise edition. Unfortunately their support technicians are all in San Francisco, and I am based in the UK, so their support to me is restricted to a certain time window.
I have categories which are active, set to display products, and/or products and static blocks, and are sub categories of the default root category.
I also have test products, which are enabled, in stock, with quantities, visible in Catalog, Search, and are assigned to these sub categories.
The problem is, my test products (or any product!) do not show on the category page. I am using the default/default themes, and have not changed the page_layout.
I have cleared/flushed all caches, and reindexed.
However, most of my indexes appear as status 'SCHEDULED' and have never been updated - there are no checkboxes next to these, so I cannot select them to 'reindex data'.
See the screenshot.
If anyone has any clues on how to fix this, I will be very happy.
Thanks
Reindex is somewhat required to display products on front, especially if you have flat tables enabled (Admin Panel > System > Configuration > Catalog > Frontend: "Use Flat Catalog Category" and "Use Flat Catalog Product").
The situation with indexes is a bit of strange. It you do it on your local workstation or you have access to shell on hosting you can manually force indexes by running this command:
pwd$ php shell/indexer.php reindexall
If you have enabled flat tables you can try to disable them, to check if products will be visible on front.
You need to also put right permissions on var and media folders and theirs content. 755 should be ok.
Problem solved. Thanks guys for your answers but it was none of the above.
I had installed a Product Feature module incorrectly. I was under the assumption that when developing in app/code/local/... anything that didn't work would fall back to app/code/core/...
Sadly this was not the case. My fault, and everyone knows the phrase about making assumptions.
Magento has a very steep learning curve!
Thats really interesting, I had a similar issue recently where a reindex was not fully working. However I didnt get scheduled being displayed.
Can I ask what version of Enterprise are you using ?
As Ventus suggested a tried and tested method of forcing a reindex is to use the shell script, To do this you need to SSH into your server. Then use the cd command ( change directory ) to where your website is located on the file system. E.g. cd /var/www/....
From here run php shell/indexer.php reindexall
Set cron to run this will take care of reindexing provided you have not changed crontab values.
From your screen it looks like you have never run a cron on this setup.
Put this code below into a .php file in your magento install and then run it from your URL, this will clean and re-index everything. You can run it from a cron job. Any errors then you have a problem with yor database in witch case you should back it up and then re-creat it in a new DB instance.
<?php
set_time_limit(0);
require_once dirname(__FILE__) . '/app/Mage.php';
//get all stores
$websites = Mage::app()->getWebsites();
$thisstore = $websites[1]->getDefaultStore()->getCode();
echo "Store: ".$thisstore."<br/>";
//clean var dir
$dirs = array(
'downloader/.cache/*',
'var/cache/',
'var/locks/',
'var/log/',
'var/report/',
'var/minifycache/',
'var/mincache/',
'var/tmp/'
);
foreach($dirs as $v => $k) {
exec('rm -rf '.$k);
}
/*
//clean out sessions
$dirs = array('var/session/');
foreach($dirs as $v => $k) {
exec('rm -rf '.$k);
}
*/
//clean db log files
$xml = simplexml_load_file('./app/etc/local.xml', NULL, LIBXML_NOCDATA);
$db['host'] = $xml->global->resources->default_setup->connection->host;
$db['name'] = $xml->global->resources->default_setup->connection->dbname;
$db['user'] = $xml->global->resources->default_setup->connection->username;
$db['pass'] = $xml->global->resources->default_setup->connection->password;
$db['pref'] = $xml->global->resources->db->table_prefix;
global $db;
$tables = array(
'catalogsearch_fulltext',
'dataflow_batch_export',
'dataflow_batch_import',
'log_customer',
'log_quote',
'log_summary',
'log_summary_type',
'log_url',
'log_url_info',
'log_visitor',
'log_visitor_info',
'log_visitor_online',
'importexport_importdata',
'core_url_rewrite',
'report_viewed_product_index',
'report_event',
'core_cache',
'core_cache_option',
'core_cache_tag'
);
mysql_connect($db['host'], $db['user'], $db['pass']) or die(mysql_error());
mysql_select_db($db['name']) or die(mysql_error());
foreach($tables as $v => $k) {
mysql_query('SET FOREIGN_KEY_CHECKS=0; '.'TRUNCATE `'.$db['pref'].$k.'`;'.' SET FOREIGN_KEY_CHECKS=1; ') or die(mysql_error());
}
///---------------------------------//
// now run standard magento cleanup file
## Function to set file permissions to 0644 and folder permissions to 0755
function AllDirChmod( $dir = "./", $dirModes = 0755, $fileModes = 0644 ){
$d = new RecursiveDirectoryIterator( $dir );
foreach( new RecursiveIteratorIterator( $d, 1 ) as $path ){
if( $path->isDir() ) chmod( $path, $dirModes );
else if( is_file( $path ) ) chmod( $path, $fileModes );
}
}
## Function to clean out the contents of specified directory
function cleandir($dir) {
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if ($file != '.' && $file != '..' && is_file($dir.'/'.$file)) {
if (unlink($dir.'/'.$file)) { }
else { echo $dir . '/' . $file . ' (file) NOT deleted!<br />'; }
}
else if ($file != '.' && $file != '..' && is_dir($dir.'/'.$file)) {
cleandir($dir.'/'.$file);
if (rmdir($dir.'/'.$file)) { }
else { echo $dir . '/' . $file . ' (directory) NOT deleted!<br />'; }
}
}
closedir($handle);
}
}
function isDirEmpty($dir){
return (($files = #scandir($dir)) && count($files) <= 2);
}
// rebuild everything!!!
$processes = Mage::getSingleton('index/indexer')->getProcessesCollection();
$processes->walk('setMode', array(Mage_Index_Model_Process::MODE_REAL_TIME));
$processes->walk('save');
$processes->walk('reindexAll');
$processes->walk('reindexEverything');
echo "----------------------- CLEANUP START -------------------------<br/>";
$start = (float) array_sum(explode(' ',microtime()));
echo "<br/>*************** SETTING PERMISSIONS ***************<br/>";
echo "Setting all folder permissions to 755<br/>";
echo "Setting all file permissions to 644<br/>";
AllDirChmod( "." );
echo "Setting pear permissions to 550<br/>";
echo "<br/>****************** CLEARING CACHE ******************<br/>";
if (file_exists("var/cache")) {
echo "Clearing var/cache<br/>";
cleandir("var/cache");
}
if (file_exists("var/session")) {
echo "Clearing var/session<br/>";
cleandir("var/session");
}
if (file_exists("var/minifycache")) {
echo "Clearing var/minifycache<br/>";
cleandir("var/minifycache");
}
if (file_exists("downloader/pearlib/cache")) {
echo "Clearing downloader/pearlib/cache<br/>";
cleandir("downloader/pearlib/cache");
}
if (file_exists("downloader/pearlib/download")) {
echo "Clearing downloader/pearlib/download<br/>";
cleandir("downloader/pearlib/download");
}
if (file_exists("downloader/pearlib/pear.ini")) {
echo "Removing downloader/pearlib/pear.ini<br/>";
unlink ("downloader/pearlib/pear.ini");
}
if (file_exists("media/catalog/product/cache/")) {
echo "Removing media/catalog/product/cache/<br/>";
unlink ("media/catalog/product/cache/");
}
if (file_exists("media/tmp/")) {
echo "Removing media/tmp/<br/>";
unlink ("media/tmp/");
}
date_default_timezone_set("Europe/London");
echo "Start Cleaning all caches at ... " . date("Y-m-d H:i:s") . "<br/>";
ini_set("display_errors", 1);
Mage::app('admin')->setUseSessionInUrl(false);
Mage::getConfig()->init();
$types = Mage::app()->getCacheInstance()->getTypes();
try {
echo "Cleaning data cache... <br/>";
flush();
foreach ($types as $type => $data) {
echo "Removing $type ... ";
echo Mage::app()->getCacheInstance()->clean($data["tags"]) ? "[OK]" : "[ERROR]";
echo "<br/>";
}
} catch (exception $e) {
die("[ERROR:" . $e->getMessage() . "]");
}
echo "<br/>";
try {
echo "Cleaning stored cache... ";
flush();
echo Mage::app()->getCacheInstance()->clean() ? "[OK]" : "[ERROR]";
echo "<br/>";
} catch (exception $e) {
die("[ERROR:" . $e->getMessage() . "]");
}
try {
echo "Cleaning merged JS/CSS...";
flush();
Mage::getModel('core/design_package')->cleanMergedJsCss();
Mage::dispatchEvent('clean_media_cache_after');
echo "[OK]<br/>";
} catch (Exception $e) {
die("[ERROR:" . $e->getMessage() . "]");
}
try {
echo "Cleaning image cache... ";
flush();
echo Mage::getModel('catalog/product_image')->clearCache();
echo "[OK]<br/>";
} catch (exception $e) {
die("[ERROR:" . $e->getMessage() . "]");
}
echo "<br/>************** CHECKING FOR EXTENSIONS ***********<br/>";
If (!isDirEmpty("app/code/local/")) {
echo "-= WARNING =- Overrides or extensions exist in the app/code/local folder<br/>";
}
If (!isDirEmpty("app/code/community/")) {
echo "-= WARNING =- Overrides or extensions exist in the app/code/community folder<br/>";
}
$end = (float) array_sum(explode(' ',microtime()));
echo "<br/>------------------- CLEANUP COMPLETED in:". sprintf("%.4f", ($end-$start))." seconds ------------------<br/>";
//sitemap refresh
$collection = Mage::getModel('sitemap/sitemap')->getCollection();
foreach ($collection as $sitemap) {
try {
$sitemap->generateXml();
}
catch (Exception $e) {
$errors[] = $e->getMessage();
}
}
?>

No email content with Mail::IMAPClient

This is how I connect yo GMail using Mail::IMAPClient
sub connectGMail
{
my $socket = IO::Socket::SSL->new
(
PeerAddr => 'imap.gmail.com',
PeerPort => 993,
SSL_verify_mode => SSL_VERIFY_NONE
)
or die "socket(): $#";
my $client = Mail::IMAPClient->new
(
User => 'whateverUser',
Password => 'aG00dP455w0rd'
Socket => $socket
)
or die "Cannot connect ($#)\n";
return $client;
}
Then I pass this client object to processEmails subroutine
sub processEmails
{
my $client = shift;
if ($client->IsAuthenticated())
{
$client->select('Pruebas');
my #messages = $client->messages();
my $mime_parser = getMIMEParser();
my $filer = MIME::Parser::FileInto->new();
mkdir(EXTRACT_DIR);
for(#messages)
{
my $msg_body = $client->message_string($_);
my $msg_subject = Encode::decode('MIME-Header', $client->subject($_));
if ($msg_body)
{
my $dir = EXTRACT_DIR . "/" . $msg_subject;
$filer->init($dir);
mkdir($dir);
$mime_parser->filer($filer);
my $ok = parseEmail($mime_parser, $msg_body);
if ($ok)
{
print(STDERR "Email \"$msg_subject\" parsed OK\n");
}
}
else
{
print(STDERR "No body for message with subject $msg_subject\n");
}
}
}
else
{
print(STDERR "Something nasty happened\n");
}
}
The problem is that $msg_body (retreived using message_string) is empty for all messages, but $msg_subject is correct, which means the connection is OK. Here's the output:
No body for message with subject íQuÚ pasa!
No body for message with subject Prueba con formateo HTML
In general, I think it would be really helpful if you try to include a runnable code sample.
I changed your code a little and for me it works just perfectly fine. I have very similar code in my code base.
use Mail::IMAPClient;
use MIME::Parser::Filer;
my $client = Mail::IMAPClient->new(
Server => 'imap.gmail.com',
User => 'test#gmail.com',
Password => 'test-pass',
Ssl => 1,
Uid => 1,
) or die "Cannot connect ($#)\n";
$client->select('INBOX');
my #messages = $client->messages();
my $filer = MIME::Parser::FileInto->new();
print "There are " . scalar #messages . " messages waiting.\n";
for (#messages) {
print "Processing...\n";
my $msg_body = $client->message_string($_);
my $msg_subject = Encode::decode( 'MIME-Header', $client->subject($_) );
if ($msg_body) {
print "$msg_body\n";
print( STDERR "Email \"$msg_subject\" parsed OK\n" );
}
else {
print( STDERR "No body for message with subject $msg_subject\n" );
}
}
Ran into the same issue and was able to fix it with:
$client->Ignoresizeerrors(1)

Resources