Bug 1170432

Summary: RAMBlock "vga.vram" already registered, abort!
Product: Red Hat Enterprise Linux 7 Reporter: mazhang <mazhang>
Component: qemu-kvm-rhevAssignee: Gerd Hoffmann <kraxel>
Status: CLOSED DUPLICATE QA Contact: Virtualization Bugs <virt-bugs>
Severity: low Docs Contact:
Priority: low    
Version: 7.1CC: juzhang, kraxel, michen, rbalakri, virt-maint
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-06-13 12:51:48 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:

Description mazhang 2014-12-04 04:25:51 UTC
Description of problem:
Boot vm with "-vga std" and "-device VGA", qemu-kvm abort.

Version-Release number of selected component (if applicable):

Host:
qemu-kvm-1.5.3-83.el7.x86_64
ipxe-roms-qemu-20130517-6.gitc4bce43.el7.noarch
qemu-kvm-common-1.5.3-83.el7.x86_64
qemu-kvm-debuginfo-1.5.3-83.el7.x86_64
qemu-kvm-tools-1.5.3-83.el7.x86_64
qemu-img-1.5.3-83.el7.x86_64
3.10.0-212.el7.x86_64

How reproducible:
always

Steps to Reproduce:
1.Boot vm with:
gdb --args /usr/libexec/qemu-kvm \
-M pc \
-cpu SandyBridge \
-m 2G \
-smp 4,sockets=120,cores=2,threads=1,maxcpus=240 \
-enable-kvm \
-name rhel7 \
-uuid 990ea161-6b67-47b2-b803-19fb01d30d12 \
-smbios type=1,manufacturer='Red Hat',product='RHEV Hypervisor',version=el6,serial=koTUXQrb,uuid=feebc8fd-f8b0-4e75-abc3-e63fcdb67170 \
-k en-us \
-rtc base=localtime,clock=host,driftfix=slew \
-nodefaults \
-monitor stdio \
-qmp tcp:0:5555,server,nowait \
-boot menu=on \
-bios /usr/share/seabios/bios.bin \
-monitor unix:/tmp/monitor0,server,nowait \
-device VGA,id=video0,vgamem_mb=64,bus=pci.0 \
-vga std \
-vnc :0 \
-serial unix:/tmp/ttyS0,server,nowait \
-monitor unix:/tmp/monitor-unix0,server,nowait \
-drive file=/home/rhel7-64.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,werror=stop,rerror=stop,aio=threads \
-device virtio-blk-pci,scsi=off,bus=pci.0,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 \

2.
3.

Actual results:
qemu-kvm abort.

(qemu) [New Thread 0x7fffe8f74700 (LWP 30477)]
[New Thread 0x7fffe3fff700 (LWP 30478)]
[New Thread 0x7fffe37fe700 (LWP 30479)]
[New Thread 0x7fffe2ffd700 (LWP 30480)]
RAMBlock "vga.vram" already registered, abort!

Program received signal SIGABRT, Aborted.
0x00007ffff18145d7 in raise () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install alsa-lib-1.0.28-2.el7.x86_64 boost-system-1.53.0-23.el7.x86_64 boost-thread-1.53.0-23.el7.x86_64 celt051-0.5.1.3-8.el7.x86_64 cyrus-sasl-lib-2.1.26-17.el7.x86_64 dbus-libs-1.6.12-8.el7.x86_64 flac-libs-1.3.0-4.el7.x86_64 glib2-2.40.0-4.el7.x86_64 glibc-2.17-69.el7.x86_64 glusterfs-api-3.6.0.29-2.el7.x86_64 glusterfs-libs-3.6.0.29-2.el7.x86_64 gmp-6.0.0-11.el7.x86_64 gnutls-3.3.8-7.el7.x86_64 gsm-1.0.13-11.el7.x86_64 json-c-0.11-4.el7_0.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.12.2-8.el7.x86_64 libICE-1.0.8-7.el7.x86_64 libSM-1.2.1-7.el7.x86_64 libX11-1.6.0-2.1.el7.x86_64 libXau-1.0.8-2.1.el7.x86_64 libXext-1.3.2-2.1.el7.x86_64 libXi-1.7.2-2.1.el7.x86_64 libXtst-1.2.2-2.1.el7.x86_64 libaio-0.3.109-12.el7.x86_64 libasyncns-0.8-7.el7.x86_64 libattr-2.4.46-12.el7.x86_64 libcap-2.22-8.el7.x86_64 libcom_err-1.42.9-5.el7.x86_64 libffi-3.0.13-11.el7.x86_64 libgcc-4.8.3-8.el7.x86_64 libgcrypt-1.5.3-9.el7.x86_64 libgpg-error-1.12-3.el7.x86_64 libibverbs-1.1.8-4.el7.x86_64 libiscsi-1.9.0-6.el7.x86_64 libjpeg-turbo-1.2.90-5.el7.x86_64 libnl3-3.2.21-7.el7.x86_64 libogg-1.3.0-7.el7.x86_64 libpng-1.5.13-5.el7.x86_64 librados2-0.80.7-2.el7.x86_64 librbd1-0.80.7-2.el7.x86_64 librdmacm-1.0.19.1-1.el7.x86_64 libseccomp-2.1.1-2.el7.x86_64 libselinux-2.2.2-6.el7.x86_64 libsndfile-1.0.25-9.el7.x86_64 libstdc++-4.8.3-8.el7.x86_64 libtasn1-3.8-2.el7.x86_64 libusbx-1.0.15-4.el7.x86_64 libuuid-2.23.2-19.el7.x86_64 libvorbis-1.3.3-8.el7.x86_64 libxcb-1.9-5.el7.x86_64 lzo-2.06-6.el7_0.2.x86_64 nettle-2.7.1-4.el7.x86_64 nspr-4.10.6-2.el7.x86_64 nss-3.16.2-9.el7.x86_64 nss-softokn-freebl-3.16.2-12.el7.x86_64 nss-util-3.16.2-3.el7.x86_64 openssl-libs-1.0.1e-40.el7.x86_64 p11-kit-0.20.7-2.el7.x86_64 pcre-8.32-13.el7.x86_64 pixman-0.32.4-4.el7.x86_64 pulseaudio-libs-3.0-29.el7.x86_64 snappy-1.1.0-3.el7.x86_64 spice-server-0.12.4-8.el7.x86_64 tcp_wrappers-libs-7.6-77.el7.x86_64 trousers-0.3.11.2-3.el7.x86_64 usbredir-0.6-7.el7.x86_64 xz-libs-5.1.2-8alpha.el7.x86_64 zlib-1.2.7-13.el7.x86_64
(gdb) bt
#0  0x00007ffff18145d7 in raise () from /lib64/libc.so.6
#1  0x00007ffff1815cc8 in abort () from /lib64/libc.so.6
#2  0x000055555571950c in qemu_ram_set_idstr (addr=<optimized out>, name=0x5555566d4630 "vga.vram", dev=dev@entry=0x0) at /usr/src/debug/qemu-1.5.3/exec.c:1100
#3  0x000055555576fac3 in vmstate_register_ram (mr=mr@entry=0x5555566b8c28, dev=dev@entry=0x0) at /usr/src/debug/qemu-1.5.3/savevm.c:2868
#4  0x000055555576fae7 in vmstate_register_ram_global (mr=mr@entry=0x5555566b8c28) at /usr/src/debug/qemu-1.5.3/savevm.c:2879
#5  0x0000555555738900 in vga_common_init (s=0x5555566b8c18) at /usr/src/debug/qemu-1.5.3/hw/display/vga.c:2334
#6  0x000055555565290a in pci_std_vga_initfn (dev=0x5555566b8570) at hw/display/vga-pci.c:150
#7  0x000055555566fd12 in pci_qdev_init (qdev=0x5555566b8570) at hw/pci/pci.c:1723
#8  0x00005555556385b4 in device_realize (dev=0x5555566b8570, err=0x7fffffffd9f0) at hw/core/qdev.c:178
#9  0x000055555563951b in device_set_realized (obj=0x5555566b8570, value=<optimized out>, err=0x7fffffffdb18) at hw/core/qdev.c:693
#10 0x00005555556dde1e in property_set_bool (obj=0x5555566b8570, v=<optimized out>, opaque=0x5555566cb5e0, name=<optimized out>, errp=0x7fffffffdb18) at qom/object.c:1302
#11 0x00005555556dfef7 in object_property_set_qobject (obj=0x5555566b8570, value=<optimized out>, name=0x555555835eaa "realized", errp=0x7fffffffdb18) at qom/qom-qobject.c:24
#12 0x00005555556df0e0 in object_property_set_bool (obj=obj@entry=0x5555566b8570, value=value@entry=true, name=name@entry=0x555555835eaa "realized", errp=errp@entry=0x7fffffffdb18)
    at qom/object.c:853
#13 0x00005555556cdc7f in qdev_device_add (opts=0x5555564c4490) at qdev-monitor.c:556
#14 0x000055555570a549 in device_init_func (opts=<optimized out>, opaque=<optimized out>) at vl.c:2289
#15 0x00005555558216bb in qemu_opts_foreach (list=<optimized out>, func=func@entry=0x55555570a540 <device_init_func>, opaque=opaque@entry=0x0, 
    abort_on_failure=abort_on_failure@entry=1) at util/qemu-option.c:1198
#16 0x00005555555c7271 in main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at vl.c:4270


Expected results:
Give a warning if qemu-kvm not support -vga work with -device VGA.

Additional info:

Comment 4 Gerd Hoffmann 2016-06-13 12:51:48 UTC
Fundamentally the same issue as bug 1206037.  There can't be multiple vga cards in the system.  qemu throws a rather cryptic message on the attempt though, which should be improved.

*** This bug has been marked as a duplicate of bug 1206037 ***