Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 602153

Summary: Guest aborted when boot with spice using a duplicate port
Product: Red Hat Enterprise Linux 6 Reporter: Qunfang Zhang <qzhang>
Component: qemu-kvmAssignee: Alon Levy <alevy>
Status: CLOSED DUPLICATE QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: low    
Version: 6.0CC: acathrow, dblechte, juzhang, lihuang, llim, michen, mkenneth, ndai, qzhou, tburke, uril, virt-maint
Target Milestone: beta   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 649196 (view as bug list) Environment:
Last Closed: 2011-09-20 08:56:50 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 580953, 649196    

Description Qunfang Zhang 2010-06-09 09:32:06 UTC
Description of problem:
I boot a guest on a host with spice using port 5930, and then boot another guest on the same host using port 5930 too, then guest aborted.
So suggest there's a prompt instead of aborted.

Command line:
/usr/libexec/qemu-kvm -usbdevice tablet -rtc-td-hack -m 8G -smp 8 -drive file=/dev/vgtest/lv-2k3-64-raw,format=raw,media=disk,if=none,boot=on,cache=none,werror=stop,rerror=stop,id=test -device virtio-blk-pci,drive=test -net nic,vlan=0,macaddr=20:20:20:56:54:22,model=virtio -net tap,vlan=0,script=/etc/qemu-ifup -uuid af354869-1403-4797-8321-9de7d305abbe -cpu qemu64,+sse2 -balloon none -monitor stdio -fda /root/virtio-drivers-1.0.0-45801.vfd -vga qxl -spice port=5930,disable-ticketing -boot c

Version-Release number of selected component (if applicable):
qemu-kvm-0.12.1.2-2.71.el6.x86_64

How reproducible:
Always

Steps to Reproduce:
1.Boot a guest using the above command line.
2.Boot another guest using the same spice port
3.
  
Actual results:
Guest aborted.

Expected results:
No aborted, just prompt

Additional info:
[root@amd-2427-32-1 ~]# gdb /usr/libexec/qemu-kvm 
GNU gdb (GDB) Red Hat Enterprise Linux (7.1-24.el6)
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/libexec/qemu-kvm...Reading symbols from /usr/lib/debug/usr/libexec/qemu-kvm.debug...done.
done.
(gdb) r -usbdevice tablet -rtc-td-hack -m 8G -smp 8 -drive file=/dev/vgtest/lv-2k3-64-raw,format=raw,media=disk,if=none,boot=on,cache=none,werror=stop,rerror=stop,id=test -device virtio-blk-pci,drive=test -net nic,vlan=0,macaddr=20:20:20:56:54:22,model=virtio -net tap,vlan=0,script=/etc/qemu-ifup -uuid af354869-1403-4797-8321-9de7d305abbe -cpu qemu64,+sse2 -balloon none -monitor stdio -fda /root/virtio-drivers-1.0.0-45801.vfd -vga qxl -spice port=5930,disable-ticketing -boot c
Starting program: /usr/libexec/qemu-kvm -usbdevice tablet -rtc-td-hack -m 8G -smp 8 -drive file=/dev/vgtest/lv-2k3-64-raw,format=raw,media=disk,if=none,boot=on,cache=none,werror=stop,rerror=stop,id=test -device virtio-blk-pci,drive=test -net nic,vlan=0,macaddr=20:20:20:56:54:22,model=virtio -net tap,vlan=0,script=/etc/qemu-ifup -uuid af354869-1403-4797-8321-9de7d305abbe -cpu qemu64,+sse2 -balloon none -monitor stdio -fda /root/virtio-drivers-1.0.0-45801.vfd -vga qxl -spice port=5930,disable-ticketing -boot c
[Thread debugging using libthread_db enabled]
Detaching after fork from child process 6911.
do_spice_init: starting 0.4.2-10..el6
reds_init_socket: reds_init_socket: binding socket to :5930 failed


Program received signal SIGABRT, Aborted.
0x000000317c6329c5 in raise () from /lib64/libc.so.6


(gdb) bt
#0  0x000000317c6329c5 in raise () from /lib64/libc.so.6
#1  0x000000317c6341a5 in abort () from /lib64/libc.so.6
#2  0x0000003187a1768e in reds_init_socket (portnr=5930, 
    family=<value optimized out>, 
    addr=0x2a3ac0 <Address 0x2a3ac0 out of bounds>) at reds.c:3153
#3  0x0000003187a1d2eb in reds_init_net (core_interface=<value optimized out>)
    at reds.c:3171
#4  do_spice_init (core_interface=<value optimized out>) at reds.c:5475
#5  0x0000003187a1d9e5 in spice_server_init (s=<value optimized out>, 
    core=<value optimized out>) at reds.c:5507
#6  0x000000000046fd0f in qemu_spice_init ()
    at /usr/src/debug/qemu-kvm-0.12.1.2/spice.c:438
#7  0x000000000040d629 in main (argc=<value optimized out>, 
    argv=<value optimized out>, envp=<value optimized out>)
    at /usr/src/debug/qemu-kvm-0.12.1.2/vl.c:6216
(gdb)

Comment 2 RHEL Program Management 2010-06-09 09:53:16 UTC
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux major release.  Product Management has requested further
review of this request by Red Hat Engineering, for potential inclusion in a Red
Hat Enterprise Linux Major release.  This request is not yet committed for
inclusion.

Comment 3 Gerd Hoffmann 2010-06-10 08:08:30 UTC
Oh, it is just qemu which is aborted, before the guest got a chance to run, so this doesn't harm the guest.  There also is a message clearly stating what happened.  Which makes this a minor issue IMHO.

Also fixing this requires spice-server passing up errors instead if just abort()ing.  Needs some infrastructure work upstream.  Fixing this in 6.1 when we sync RHEL-6 spice with upstream should be doable.

Comment 5 Bill Burns 2010-09-17 10:01:49 UTC
*** Bug 634845 has been marked as a duplicate of this bug. ***

Comment 6 Gerd Hoffmann 2010-11-18 13:31:37 UTC
Reassigning to spice-server as the abort() actually is there.

Comment 12 Uri Lublin 2011-01-31 17:34:02 UTC
As Gerd mentioned above, in RHEL-6.1, spice-server is rebased to spice upstream 0.8. So spice-server does not abort in that case anymore.

But, we need to check in qemu-kvm the value returned from spice_server_init(), and exit upon failure.

Moving back to qemu-kvm.

Comment 14 Andrew Cathrow 2011-09-19 18:55:21 UTC
Moving to 6.3 - libvirt should block this - we can fix in 6.3

Comment 15 Alon Levy 2011-09-20 08:56:50 UTC
This bug appears to be fixed:

6 bow:spice_rhel6 alon$ qemu-system-x86_64 -spice port=9998
do_spice_init: starting 0.8.2
reds_init_socket: reds_init_socket: binding socket to :9998 failed
failed to initialize spice server

qemu fails (like Uri asked in comment 12) since commit 9e1520b2efe1a49715312103e9dc4fa32d4322e4 marked with BZ 682227, so making this a duplicate of that.

Also like Uri said spice doesn't abort on binding failure in reds_init_socket since commit 2e1b66143497d58ee503336b1c084f8792697598 which is in 0.5.2 already, i.e. is part of all packages since the rebase to spice 0.8.

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