[PATCH 6/7] util: Check for pkttyagent availability properly
Jim Fehlig
jfehlig at suse.com
Sat Dec 11 00:48:03 UTC 2021
Hi Martin!
I recently received a bug report (sorry, not public) about simple operations
like 'virsh list' hanging when invoked with an internal test tool. I found this
commit to be the culprit.
On 11/20/21 16:10, Martin Kletzander wrote:
> It does not need a tty to work, it opens its controlling terminal for user
> interaction and with this patch even crazy things like this work:
>
> echo 'list --name' | virsh -q >/dev/null
FYI, your crazy thing worked for me without this commit :-).
> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
> ---
> src/util/virpolkit.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/util/virpolkit.c b/src/util/virpolkit.c
> index 63bb8133a8aa..7156adc10c0a 100644
> --- a/src/util/virpolkit.c
> +++ b/src/util/virpolkit.c
> @@ -180,9 +180,9 @@ virPolkitAgentCreate(void)
> int outfd = STDOUT_FILENO;
> int errfd = STDERR_FILENO;
>
> - if (!isatty(STDIN_FILENO)) {
With the test tool invoking virsh, isatty fails
> + if (!virPolkitAgentAvailable()) {
but virPolkitAgentAvailable succeeds. pkttyagent is then needlessly spawned with
no one to talk to.
I haven't been able to cook up a simple reproducer. Not sure if it helps, but
here's a pstree view of the internal test tool
sshd(15736)---bash(15739)---perl(17717) \
---runtest(17722)---test.sh(17727) \
---virsh(17728)-+-pkttyagent(17730)-+-{gdbus}(17732)
| |-{gmain}(17731)
| `-{pkttyagent}(17733)
`-{vshEventLoop}(17729)
I'm not familiar with the test tool but have cc'd Julie, who might be able to
answer any questions about it.
Regards,
Jim
> virReportError(VIR_ERR_SYSTEM_ERROR, "%s",
> - _("Cannot start polkit text agent without a tty"));
> + _("polkit text authentication agent unavailable"));
> goto error;
> }
>
>
More information about the libvir-list
mailing list