From: Pino Toscano <ptoscano@redhat.com>
To: "Richard W.M. Jones" <rjones@redhat.com>
Cc: qemu-devel@nongnu.org, qemu-block@nongnu.org, jcody@redhat.com,
kwolf@redhat.com, mreitz@redhat.com
Subject: Re: [Qemu-devel] [PATCH] ssh: switch from libssh2 to libssh
Date: Thu, 20 Oct 2016 17:44:41 +0200 [thread overview]
Message-ID: <2129980.is88ABC7Ux@thyrus.usersys.redhat.com> (raw)
In-Reply-To: <20161020153250.GE11243@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 2427 bytes --]
On Thursday, 20 October 2016 16:32:50 CEST Richard W.M. Jones wrote:
> On Thu, Oct 20, 2016 at 05:15:24PM +0200, Pino Toscano wrote:
> > Rewrite the implementation of the ssh block driver to use libssh instead
> > of libssh. The libssh library has various advantages over libssh:
> > - easier API for authentication (for example for using ssh-agent)
> > - easier API for known_hosts handling
> > - supports newer types of keys in known_hosts
> >
> > Kerberos authentication can be enabled once the libssh bug for it [1] is
> > fixed.
> >
> > The development version of libssh (i.e. the future 0.8.x) supports
> > fsync, so reuse the build time check for this.
> >
> > [1] https://red.libssh.org/issues/242
> >
> > Signed-off-by: Pino Toscano <ptoscano@redhat.com>
>
>
> When I applied this patch and compiled it with warnings enabled:
>
> block/ssh.c: In function ‘connect_to_ssh’:
> block/ssh.c:643:12: warning: ‘ret’ may be used uninitialized in this function [-Wmaybe-uninitialized]
> return ret;
> ^~~
Interesting, there was no warning for me. Anyway, I think this:
diff --git a/block/ssh.c b/block/ssh.c
index 7c316db..7ff376e 100644
--- a/block/ssh.c
+++ b/block/ssh.c
@@ -519,6 +519,7 @@ static int connect_to_ssh(BDRVSSHState *s, QDict *options,
/* Create SSH session. */
s->session = ssh_new();
if (!s->session) {
+ ret = -EINVAL;
goto err;
}
should fix it (added already locally).
> To test the patch, I used virt-builder to create a virtual machine
> disk image on another machine (accessible over ssh). Then from my
> laptop I ran:
>
> ./x86_64-softmmu/qemu-system-x86_64 -nodefconfig \
> -M accel=kvm -cpu host -m 2048 \
> -drive file.driver=ssh,file.user=[user],file.host=[host],file.path=/var/tmp/fedora-24.img,format=raw,if=virtio \
> -serial stdio
>
> Unfortunately this failed with a large number of sftp errors:
>
> read failed: (sftp error code: 0)
>
> and subsequently hung. So I'm afraid I couldn't test the patch at all :-(
Can you please enable the logging of the ssh driver, and libssh own
logging too? Basically (see lines 45-46) set:
#define DEBUG_SSH 1
#define TRACE_LIBSSH 4
> Also fsync was not supported for me, but I'm using 0.7.3 and the code
> says I need 0.8.0.
Yes, this is correct.
Thanks,
--
Pino Toscano
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
next prev parent reply other threads:[~2016-10-20 15:44 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-20 15:15 [Qemu-devel] [PATCH] ssh: switch from libssh2 to libssh Pino Toscano
2016-10-20 15:32 ` Richard W.M. Jones
2016-10-20 15:44 ` Pino Toscano [this message]
2016-10-20 16:11 ` Richard W.M. Jones
2016-10-20 16:04 ` Stefan Weil
2016-10-20 16:52 ` Pino Toscano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2129980.is88ABC7Ux@thyrus.usersys.redhat.com \
--to=ptoscano@redhat.com \
--cc=jcody@redhat.com \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=rjones@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.