Bug 790745 - [Regression]libvirtd dead when create a guest with "--channel pty,target_type=virtio" by virt-install.
[Regression]libvirtd dead when create a guest with "--channel pty,target_type...
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: libvirt (Show other bugs)
6.2
x86_64 Linux
high Severity high
: rc
: ---
Assigned To: Alex Jia
Virtualization Bugs
: Regression
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2012-02-15 05:10 EST by Daisy Wu
Modified: 2012-06-20 02:48 EDT (History)
8 users (show)

See Also:
Fixed In Version: libvirt-0.9.10-2.el6
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-06-20 02:48:25 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)
debug info (9.18 KB, text/plain)
2012-02-15 05:11 EST, Daisy Wu
no flags Details

  None (edit)
Description Daisy Wu 2012-02-15 05:10:02 EST
Description of problem:
When create a guest with "--channel pty,target_type=virtio" option, the service libvirtd dead.

Version-Release number of selected component (if applicable):
virt-manager-0.9.0-10.el6
libvirt-0.9.10-1.el6.x86_64
python-virtinst-0.600.0-7.el6.noarch
qemu-kvm-0.12.1.2-2.222.el6.x86_64

# uname -a
Linux localhost.localdomain 2.6.32-220.el6.x86_64 #1 SMP Wed Nov 9 08:03:13 EST 2011 x86_64 x86_64 x86_64 GNU/Linux

How reproducible:
always

Steps to Reproduce:
1). Create a guest by virt-install:
# virt-install -n demo1 -r 1024 --disk path=/var/lib/libvirt/images/demo1.img,size=5 --channel pty,target_type=virtio -l http://fileshare.englab.nay.redhat.com/pub/redhat/rhel/rel-eng/RHEL-6.2/RHEL6.2-20111117.0/x86_64/os/ --debug

Actual results:
Wed, 15 Feb 2012 02:42:09 ERROR    End of file while reading data: Input/output error
Wed, 15 Feb 2012 02:42:09 DEBUG    Traceback (most recent call last):
  File "/usr/sbin/virt-install", line 629, in start_install
    noboot=options.noreboot)
  File "/usr/lib/python2.6/site-packages/virtinst/Guest.py", line 1223, in start_install
    noboot)
  File "/usr/lib/python2.6/site-packages/virtinst/Guest.py", line 1291, in _create_guest
    dom = self.conn.createLinustart_xml or final_xml, 0)
  File "/usr/lib64/python2.6/site-packages/libvirt.py", line 2413, in createLinux
    if ret is None:raise libvirtError('virDomainCreateLinu) failed', conn=self)
libvirtError: End of file while reading data: Input/output error
Wed, 15 Feb 2012 02:42:09 DEBUG    Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
  virsh --connect qemu:///system start demo1
otherwise, please restart your installation.
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
  virsh --connect qemu:///system start demo1
otherwise, please restart your installation.

Check the libvirtd status:
# service libvirtd status
libvirtd dead but pid file exists


Expected results:
Guest should be installed successfully and service libvirtd is normal.

Additional info:
This issue can not be reproduced on libvirt-0.9.9-2.el6.x86_64, so mark it as regression.
Workaround: if add the "name" option, all work well.
--channel pty,target_type=virtio,name=redhat
Comment 1 Daisy Wu 2012-02-15 05:11:19 EST
Created attachment 562181 [details]
debug info
Comment 3 Alex Jia 2012-02-15 05:20:34 EST
Patch for upstream:
https://www.redhat.com/archives/libvir-list/2012-February/msg00676.html
Comment 5 Alex Jia 2012-02-15 22:07:42 EST
v2 patch for upstream:
https://www.redhat.com/archives/libvir-list/2012-February/msg00729.html
Comment 6 Alex Jia 2012-02-16 10:25:28 EST
In POST:
commit 18942b9bea8a5a8a4d52c0cdde253ae91be338a6
Author: Alex Jia <ajia@redhat.com>
Date:   Thu Feb 16 10:32:03 2012 +0800

    qemu: Prevent crash of libvirtd without guest agent
    
    * src/qemu/qemu_process.c (qemuFindAgentConfig): avoid crash libvirtd due to
    deref a NULL pointer.
    
    * How to reproduce?
    1. virsh edit the following xml into guest configuration:
        <channel type='pty'>
          <target type='virtio'/>
        </channel>
    2. virsh start <domain>
    
    or
    % virt-install -n foo -r 1024 --disk path=/var/lib/libvirt/images/foo.img,size=1 \
    --channel pty,target_type=virtio -l <installation tree>
    
    Signed-off-by: Alex Jia <ajia@redhat.com>
Comment 8 Huang Wenlong 2012-02-22 02:10:03 EST
Verify this bug with 
libvirt-0.9.10-2.el6.x86_64

# virt-install -n demo7 -r 1024 --disk path=/var/lib/libvirt/images/demo7.img,size=5 --channel pty,target_type=virtio -l http://fileshare.englab.nay.redhat.com/pub/redhat/rhel/rel-eng/RHEL-6.2/RHEL6.2-20111117.0/x86_64/os/ 

Starting install...
Retrieving file vmlinuz...                                                                                  | 7.5 MB     00:00 ... 
Retrieving file initrd.img...                                                                               |  56 MB     00:00 ... 
Allocating 'demo7.img'                                                                                      | 5.0 GB     00:00     
Creating domain...               


-------------------
guest's xml 
...
  <channel type='pty'>
      <source path='/dev/pts/3'/>
      <target type='virtio'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
...

Wenlong
Comment 10 errata-xmlrpc 2012-06-20 02:48:25 EDT
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHSA-2012-0748.html

Note You need to log in before you can comment on or make changes to this bug.