[libvirt] [PATCH 1/2] virsh: Track when create pkttyagent
Michal Privoznik
mprivozn at redhat.com
Wed May 24 14:38:59 UTC 2017
On 05/11/2017 05:04 PM, John Ferlan wrote:
> https://bugzilla.redhat.com/show_bug.cgi?id=1374126
>
> Due to how the processing for authentication using polkit works, the
> virshConnect code must first "attempt" an virConnectOpenAuth and then
> check for a "special" return error code VIR_ERR_AUTH_UNAVAILABLE in
> order to attempt to "retry" the authentication after performing a creation
> of a pkttyagent to handle the challenge/response for the client.
>
> However, if pkttyagent creation is not possible for the authentication
> being attempted (such as perhaps a "qemu+ssh://someuser@localhost/system"),
> then the same failure pattern would be returned and another attempt to
> create a pkttyagent would be done. This would continue "forever" until
> someone forced quit (e.g. ctrl-c) from virsh as the 'authfail' was not
> incremented when creating the pkttyagent.
>
> So add a 'agentCreated' boolean to track if we've attempted to create the
> agent at least once and force a failure if that creation returned the same
> error pattern.
>
> This resolves a possible never ending loop and will generate an error:
>
> error: failed to connect to the hypervisor
> error: authentication unavailable: no polkit agent available to authenticate action 'org.libvirt.unix.manage'
>
> NB: If the authentication was for a sufficiently privileged client, such as
> qemu+ssh://root@localhost/system, then the remoteDispatchAuthList "allows"
> the authentication to use libvirt since @callerUid would be 0.
>
> Signed-off-by: John Ferlan <jferlan at redhat.com>
> ---
> tools/virsh.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
ACK
Michal
More information about the libvir-list
mailing list