Bug 844237

Summary: virt-top fail to connect server through tcp connection with sasl authentication
Product: Red Hat Enterprise Linux 6 Reporter: Geyang Kong <gkong>
Component: virt-topAssignee: Richard W.M. Jones <rjones>
Status: CLOSED WONTFIX QA Contact: Virtualization Bugs <virt-bugs>
Severity: high Docs Contact:
Priority: high    
Version: 6.3CC: berrange, cwei, jwu, mjenner, mzhan, rbalakri, zpeng
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 844326 (view as bug list) Environment:
Last Closed: 2016-08-23 17:57:11 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 844326, 844327    
Bug Blocks:    
Attachments:
Description Flags
libvirtd's log with log_level=1 none

Description Geyang Kong 2012-07-30 05:13:49 UTC
Created attachment 601105 [details]
libvirtd's log with log_level=1

Description of problem:
  virt-top fail to connect through tcp connection with sasl authentication

Version-Release number of selected component (if applicable):
libvirt-0.9.10-21.el6_3.3.x86_64
virt-top-1.0.4-3.13.el6.x86_64

How reproducible:
100%

Steps to Reproduce:
1.Edit /etc/sysconfig/libvirtd uncomment LIBVIRTD_ARGS
LIBVIRTD_ARGS="--listen"

2.Edit  /etc/libvirt/libvirtd.conf
listen_tcp =1
auth_tcp = "sasl"

3.Add a user named "fred", and setting his password as "redhat"
# saslpasswd2 -a libvirt fred
Password: xxxxxx
Again (for verification): xxxxxx

4. #service libvirtd restart

5. #service iptables stop

6. virsh -c qemu+tcp://$ip/system

7. virt-top -c qemu+tcp://$ip/system --debug /tmp/virt-top-debug

Actual results:
1. Step 6 works well
2. Step 7 fails with following error:
--------------------------------------------------------------------------------------
libvir: RPC error : authentication failed: Failed to start SASL negotiation: -4 (SASL(-4): no mechanism available: No worthy mechs found)
libvirt: VIR_ERR_AUTH_FAILED: VIR_FROM_RPC: authentication failed: Failed to start SASL negotiation: -4 (SASL(-4): no mechanism available: No worthy mechs found)
--------------------------------------------------------------------------------------

Expected results:
1. virt-top could work well.

Additional info:
1. After step 7, debug file wasn't created, so I cannot provide it. Only attach the libvirtd's log

Comment 1 Richard W.M. Jones 2012-07-30 07:29:38 UTC
To Dan:

Does SASL authentication need a connection call other than
virConnectOpen{,ReadOnly}?

If so then we'll need to duplicate this bug for ocaml-libvirt
and add that package to the Approved Components List.

Comment 2 Daniel Berrangé 2012-07-30 07:56:16 UTC
Yes, you need to use virConnectOpenAuth() and provide an authentication callback to collect credentials. In the case of virt-top, since it is a CLI app, you can just pass "virConnectAuthDefault" to OpenAuth. For the OCaml API in general, you'd need to allow user specified callbacks.

Comment 3 Richard W.M. Jones 2012-07-30 10:06:54 UTC
Moving this bug to 6.5 since ocaml-libvirt requires a change
and this package is not on the ACL.

Comment 6 RHEL Program Management 2013-10-14 00:32:42 UTC
This request was evaluated by Red Hat Product Management for
inclusion in the current release of Red Hat Enterprise Linux.
Because the affected component is not scheduled to be updated
in the current release, Red Hat is unable to address this
request at this time.

Red Hat invites you to ask your support representative to
propose this request, if appropriate, in the next release of
Red Hat Enterprise Linux.

Comment 7 Richard W.M. Jones 2016-08-23 17:57:11 UTC
I'm closing this as it requires non-upstream changes, and we're
not going to fix low priority stuff for RHEL 6.