Bug 1731368

Summary: libvirt client socket will be closed if open the console of guest in virt-manager with vdsmd service running
Product: Red Hat Enterprise Linux 7 Reporter: mxie <mxie>
Component: virt-managerAssignee: Pavel Hrdina <phrdina>
Status: CLOSED NOTABUG QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 7.7CC: jsuchane, juzhou, mzhan, tzheng, xiaodwan, zili
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-11-27 12:15:19 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:
Attachments:
Description Flags
virt-manager-debug.log none

Description mxie@redhat.com 2019-07-19 09:29:43 UTC
Created attachment 1591937 [details]
virt-manager-debug.log

Description of problem:
libvirt client socket will be closed if open the console of guest in virt-manager with vdsmd service running


Version-Release number of selected component (if applicable):
libvirt-4.5.0-23.el7.x86_64
qemu-kvm-rhev-2.12.0-33.el7.x86_64
virt-manager-1.5.0-7.el7.noarch
vdsm-4.30.24-2.el7ev.x86_64

How reproducible:
100%

Steps to Reproduce:
1. Install vdsm packages in rhel7 server and start the vdsmd service                                                                                                                                                
# systemctl status vdsmd
● vdsmd.service - Virtual Desktop Server Manager
   Loaded: loaded (/usr/lib/systemd/system/vdsmd.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-07-16 12:47:23 CST; 2 days ago
  Process: 11574 ExecStartPre=/usr/libexec/vdsm/vdsmd_init_common.sh --pre-start (code=exited, status=0/SUCCESS)
 Main PID: 12254 (vdsmd)
    Tasks: 44
   CGroup: /system.slice/vdsmd.service
           ├─12254 /usr/bin/python2 /usr/share/vdsm/vdsmd
           └─13546 /usr/libexec/ioprocess --read-pipe-fd 53 --write-pipe-


2.Add authentication permission for libvirt
# echo redhat | saslpasswd2 -p -a libvirt test

3.Open the virt-manager and try to open the console of a running guest, but virt-manager will hang  and the connection with qemu is disconnected with below error:

#virt-manager --debug
....
Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/console.py", line 738, in _init_viewer
    self._viewer.console_open()
  File "/usr/share/virt-manager/virtManager/viewers.py", line 247, in console_open
    return self._open()
  File "/usr/share/virt-manager/virtManager/viewers.py", line 461, in _open
    return Viewer._open(self)
  File "/usr/share/virt-manager/virtManager/viewers.py", line 162, in _open
    fd = self._get_fd_for_open()
  File "/usr/share/virt-manager/virtManager/viewers.py", line 156, in _get_fd_for_open
    return self._vm.open_graphics_fd()
  File "/usr/share/virt-manager/virtManager/domain.py", line 1206, in open_graphics_fd
    return self._backend.openGraphicsFD(0, flags)
  File "/usr/lib64/python2.7/site-packages/libvirt.py", line 1884, in openGraphicsFD
    if ret == -1: raise libvirtError ('virDomainOpenGraphicsFD() failed', dom=self)
libvirtError: Failed to recv file descriptor: Permission denied
[Thu, 18 Jul 2019 18:03:36 virt-manager 39400] DEBUG (connection:1463) Error polling connection qemu:///system
Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/connection.py", line 1441, in tick_from_engine
    self._tick(*args, **kwargs)
  File "/usr/share/virt-manager/virtManager/connection.py", line 1331, in _tick
    self._hostinfo = self._backend.getInfo()
  File "/usr/lib64/python2.7/site-packages/libvirt.py", line 3887, in getInfo
    if ret is None: raise libvirtError ('virNodeGetInfo() failed', conn=self)
libvirtError: internal error: client socket is closed


Actual results:
As above description

Expected results:
Can open the console of guest in virt-manager normally with vdsmd service running

Additional info:
1.I didn't meet this problem on rhel7.6
2.Can't reproduce the bug if open the console of guest using virt-viewer directly

Comment 2 Jaroslav Suchanek 2019-07-19 20:56:55 UTC
This does not look like virt-manager issue. Please attach also libvirt debugs logs. I would close it as notabug just because the combination of vdsm service & virt-manager & libvirt may lead to unpredictable results. I just would like to know what was happening there.

Thanks.

Comment 3 Pavel Hrdina 2019-11-27 12:15:19 UTC
It was already stated in comment 2 that the combination of virt-manager and vdsm is not supported.