Wookie has asked for the wisdom of the Perl Monks concerning the following question:
Quick question...
I was working on a program for quick testing of Network connectivity for a list of servers, so I wrote a forking monster that ran 20 chiildren at once, attempting connections with Net::Telnet and Net::FTP.
This was fine - until someone suggested adding Net::Traceroute to run a traceroute for each server. This was duly added, but unfortuantely once it was - the logging fron the job seemed to go nuts, and the only explanation that was offered was that Net::Traceroute somehow interferes with other versions of itself running if it's threaded?
Has anyone else experienced a problem like this - or could suggest what the problem is?
Sub used to run Traceroute:
game(Wookie,opponent) eq 'Wookie' ? undef $problem : remove_limbs(arms,opponent);
I was working on a program for quick testing of Network connectivity for a list of servers, so I wrote a forking monster that ran 20 chiildren at once, attempting connections with Net::Telnet and Net::FTP.
This was fine - until someone suggested adding Net::Traceroute to run a traceroute for each server. This was duly added, but unfortuantely once it was - the logging fron the job seemed to go nuts, and the only explanation that was offered was that Net::Traceroute somehow interferes with other versions of itself running if it's threaded?
Has anyone else experienced a problem like this - or could suggest what the problem is?
Sub used to run Traceroute:
# Subroutine check_tr # # Check Traceroute to host sub check_tr { my ($server,$timeout)=@_; die("Insufficent Arguments passed to check_tr\n") unless (defined $ +timeout); my ($conn,$log); $log="Server $server - Traceroute - "; $conn=Net::Traceroute->new(host => $server,timeout => $timeout); if ($conn->found) { # Managed to trace my $hops = $conn->hops; $log.="Hops $hops\n"; } else { $log.="*** FAILED TO TRACE ***\n"; } return($log); }
game(Wookie,opponent) eq 'Wookie' ? undef $problem : remove_limbs(arms,opponent);
Back to
Seekers of Perl Wisdom