[libvirt] remote driver RPC API usage breaks launching ssh askpass

Cole Robinson crobinso at redhat.com
Tue Jul 19 20:07:17 UTC 2011


This commit broke launching SSH askpass from virt-manager:

http://libvirt.org/git/?p=libvirt.git;a=commit;h=c1b226447781ba8367606f760dde6a88414382a3

Using upstream virt-manager, running

python src/virt-manager.py

and trying to connect to a remote SSH connection without SSH keys causes
a segfault:

#0  virNetSocketRead (sock=0xc, buf=0x7f746c006458 "", len=4)
    at rpc/virnetsocket.c:969
#1  0x00007f7477ea7374 in virNetClientIOReadMessage (client=0x7f746c006400)
    at rpc/virnetclient.c:712
#2  virNetClientIOHandleInput (client=0x7f746c006400) at
rpc/virnetclient.c:731
#3  0x00007f7477ea7ae0 in virNetClientIncomingEvent (sock=0x7f746c002040,
    events=<value optimized out>, opaque=0x7f746c006400)
    at rpc/virnetclient.c:1120
#4  0x00007f74782332ce in libvirt_virEventInvokeHandleCallback (
    self=<value optimized out>, args=<value optimized out>)
    at libvirt-override.c:2997
#5  0x0000003075ee965b in call_function (f=<value optimized out>,
    throwflag=<value optimized out>)
    at /usr/src/debug/Python-2.7/Python/ceval.c:4071
#6  PyEval_EvalFrameEx (f=<value optimized out>,
    throwflag=<value optimized out>)
    at /usr/src/debug/Python-2.7/Python/ceval.c:2721
    ...

If you apply the following patch to virt-manager:

$ cat a
diff --git a/src/virt-manager.py.in b/src/virt-manager.py.in
index cf0a20e..4d3f1c6 100755
--- a/src/virt-manager.py.in
+++ b/src/virt-manager.py.in
@@ -357,8 +357,8 @@ def main():
                               "disabling DBus service")

     # Hook libvirt events into glib main loop
-    import virtManager.libvirtglib
-    virtManager.libvirtglib.register_event_impl()
+    #import virtManager.libvirtglib
+    #virtManager.libvirtglib.register_event_impl()

     # At this point we're either starting a brand new controlling instance,
     # or the dbus comms to existing instance has failed

rerun make, and reproduce the error, libvirt raises an exception from
virConnectOpenAuth:

libvirtError: Cannot recv data: Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). :
Connection reset by peer

I haven't poked at it yet, putting it here incase anyone else has ideas.

- Cole




More information about the libvir-list mailing list