Hello,
I am not a experienced perl programmer but from the look at your first
post with the perl code. Do you not have to run a close sessions ?
So after your commands:
$ssh = Net::SSH::Perl->new($_, %params);
$ssh->login("root");
($stout,$sterr,$exit) = $ssh->cmd("wget -q $patchurl");
#then add in
close_session($ssh);
Also, if each connection is truly a new connection, should it not be
using a different source port ? If the source port is not changing then
it looks like your code is trying to use the same SSH connection
handle.
I believe the RFC's make some reference to the tcp port being in a
TIME_WAIT state after a connection closes in case the remote machine
needs to finish up it's end and send a packet or two back.
Michael.
On Wed, 2005-04-06 at 12:52 +0200, gui wrote:
> John Doe wrote:
> >
> >
> > I don't see the exact reason. But after having a look in the code (Perl.pm,
> > sub _create_socket, which tries ports from 1023 down to 512 to bind to),
> > maybe the ssh object is not destroyed between the loops. You could try:
> >
> > ** define $ssh as my variable within the loop (not outside as currently)
> > ** put the code within the loop in a separate block, containing the
> > my-Definition of $ssh
> > ** use "undef $ssh" at the end of the loop (still within it of course)
> > ** Insert some diagnostic code at the beginning of the loop that
> > a) examines the $ssh object before the second "loop run" and/or
> > b) sleeps for e.g. a minute, so that you can look whats happening with the
> > bound port (netstat -neat from cmdline)
> >
> > I don't have the Modules installed, so I didn't made tests, sorry.
> >
> > joe
>
> I tried some of your recommendations, like declaring $ssh in the loop
> and use "undef $ssh" at the end, but didn't solve the problem.
> I did use netstat -neat during, and after the script launch. I didn't
> see anything weird during the script running, I did see something
> bizarre after :
>
> tcp 0 0 192.168.0.3:1023 192.168.0.1:22
> TIME_WAIT 0 0
>
> that line, stayed there for at least a full minute before disappearing.
> So I decided to add a 2min sleep at the end of the loop... and to my
> surprise : IT WORKED!
> I used netstat during the 2min sleep, it seems that the connection to
> the 1023 socket lasts something between 1-2 minutes.
>
> It's weird, I wish there were another way around it. If anybody got an
> explanation or a better solution about this "socket bind for more than a
> minute, than just disappears" enigma, I'd be glad.
>
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>