I wonder if that "Failed to add" failure was because ssh now checks for the existence of the file. IIRC it used to work.
I suppose you can try using the tempfile module (e.g. tempfile.mkstemp()) to create a temporary file and pass the path (instead of the fd) to UserKnownHostsFile. You just have to make sure it gets deleted when autoserv quits. The advantage of the os.tmpfile() approach is the temporary file has no directory entry so it will get deleted automatically at the end and it's secure; but it no longer works for ssh apparently. -Jongki On Thu, Nov 3, 2011 at 5:40 AM, Wenyi Gao <[email protected]> wrote: > ** > On 11/02/2011 06:38 PM, Jongki Suwandi wrote: > > Are you sure this is not going to print lots of messages like this in the > log file? > > [stderr] Warning: Permanently added '192.168.122.99' (RSA) to the list > of known hosts. > > A long time ago I suggested the /dev/fd solution to replace /dev/null to > cut down the number of those messages which gets printed *everytime* ssh is > run. Those messages could number in the hundreds for long running tests. > > -Jongki > > On Wed, Nov 2, 2011 at 2:12 AM, Wenyi Gao <[email protected]> wrote: > >> The host_file got by os.tmpfile() is not available for "ssh -o >> UserKnownHostsFile " on ubuntu 11.10 and will have the error "Failed to add >> the host to the list of known hosts (/dev/fd/11)", so the patch just >> replace it with '/dev/null'. >> >> Signed-off-by: Wenyi Gao <[email protected]> <[email protected]> >> --- >> server/hosts/abstract_ssh.py | 5 +---- >> 1 files changed, 1 insertions(+), 4 deletions(-) >> >> diff --git a/server/hosts/abstract_ssh.py b/server/hosts/abstract_ssh.py >> index 582fa40..1a0b3e9 100644 >> --- a/server/hosts/abstract_ssh.py >> +++ b/server/hosts/abstract_ssh.py >> @@ -50,9 +50,7 @@ class AbstractSSHHost(SiteHost): >> self.port = port >> self.password = password >> self._use_rsync = None >> - self.known_hosts_file = os.tmpfile() >> - known_hosts_fd = self.known_hosts_file.fileno() >> - self.known_hosts_fd = '*/dev/fd/*%s' % known_hosts_fd >> + self.known_hosts_fd = '/dev/null' >> >> """ >> Master SSH connection background job, socket temp directory and >> socket >> @@ -567,7 +565,6 @@ class AbstractSSHHost(SiteHost): >> def close(self): >> super(AbstractSSHHost, self).close() >> self._cleanup_master_ssh() >> - self.known_hosts_file.close() >> >> >> def _cleanup_master_ssh(self): >> -- >> 1.7.5.4 >> >> _______________________________________________ >> Autotest mailing list >> [email protected] >> http://test.kernel.org/cgi-bin/mailman/listinfo/autotest >> >> > Yes, this will print the message mentioned by you. I understand your > solution now, but is there other solutions to avoid the error message > "Failed to add the host to the list of known hosts (/dev/fd/11)" ? >
_______________________________________________ Autotest mailing list [email protected] http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
