Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Re: Net::OpenSSH premature session termination

by salva (Abbot)
on Dec 07, 2011 at 13:45 UTC ( #942247=note: print w/replies, xml ) Need Help??

in reply to Net::OpenSSH premature session termination

Probably, when the first thread exits, the DESTROY method is called for all the Net::OpenSSH objects effectively closing the connections.

Currently the module already has logic to support the case where the process is forked and the destructor is called from the child process so it shouldn't be too difficult to extend it to support the threads case as long as there is a method to detect it.

So, is there some easy way to detect when an object has been cloned in a new thread?

As a workaround, in the meantime, call the master_exited method for all Net::OpenSSH objects from every new thread.

Replies are listed 'Best First'.
Re^2: Net::OpenSSH premature session termination
by troy99 (Novice) on Dec 07, 2011 at 13:55 UTC

    Thanks for the reply Salva! Would this be at the SSH session creation time? Or when the threads are reaped? Should the master_exited call be here? As in:

    # For Net::OpenSSH need to specify whether to create # pipes or not, default is no pipes. my %opts; $opts{stdin_pipe} = 1; $opts{stdout_pipe} = 1; $opts{stderr_to_stdout} = 1; # Kick off the script on the remote machine ($ssh{'STDIN'}, $ssh{'STDOUT'}, undef, $ssh{'PID'}) = $ssh{'SSH'}->open_ex(\%opts, $script) or die "Error ".$ssh{$host}->error; $ssh{$host}->master_exited()
      no, you have to call it from inside the async block.

        Ah, OK, thanks!

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://942247]
[Corion]: marto: Yeah - taking a week off from the kids might be a plan :-D
[choroba]: what island?
[Corion]: choroba: La Palma on the Canary Islands
[choroba]: Ah, we went to Lanzarote 2 years ago with the kids and it was OK
[Corion]: choroba: I was there last year, yes, that would be suited a bit better for kids - much more beach and more varied kids friendly landscape than La Palma :)
[Corion]: We went to visit the "recently" (1975?) active volcano on La Palma but the landscape was underwhelming, at least when compared to the (cold) lava fields on Lanzarote

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (7)
As of 2018-02-23 16:08 GMT
Find Nodes?
    Voting Booth?
    When it is dark outside I am happiest to see ...

    Results (303 votes). Check out past polls.