Bug 980714
Summary: | error when connect spice guest with virt-manager | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Wayne Sun <gsun> | ||||||
Component: | qemu-kvm | Assignee: | Uri Lublin <uril> | ||||||
Status: | CLOSED DUPLICATE | QA Contact: | Virtualization Bugs <virt-bugs> | ||||||
Severity: | high | Docs Contact: | |||||||
Priority: | high | ||||||||
Version: | 7.0 | CC: | acathrow, dyuan, gren, gsun, jdenemar, marcandre.lureau, matteo.bernardini, virt-maint, ydu, yhalperi, zpeng | ||||||
Target Milestone: | rc | ||||||||
Target Release: | --- | ||||||||
Hardware: | x86_64 | ||||||||
OS: | Linux | ||||||||
Whiteboard: | |||||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||||
Doc Text: | Story Points: | --- | |||||||
Clone Of: | Environment: | ||||||||
Last Closed: | 2013-10-08 07:34:38 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
Wayne Sun
2013-07-03 06:10:12 UTC
tried on both virt-mangaer version: virt-manager-0.10.0-0.2.gitb68faac8.el7.noarch virt-manager-0.10.0-0.1.el7.noarch and same error in guest qemu log and console black screen. (In reply to Wayne Sun from comment #0) > Description of problem: > connect spice guest use virt-manager will get black screen and error in qemu > log > > Version-Release number of selected component (if applicable): > libvirt-1.1.0-1.el7.x86_64 > qemu-kvm-1.5.0-2.el7.x86_64 > kernel-3.9.0-55.el7.x86_64 > spice-server-0.12.2-5.1.el7.x86_64 > > How reproducible: > always > > Steps to Reproduce: > 1. start a spice guest > # virsh list > Id Name State > ---------------------------------------------------- > 20 kvm-rhel6.4-x86_64-qcow2-virtio running > > # virsh dumpxml kvm-rhel6.4-x86_64-qcow2-virtio > ... > <serial type='pty'> > <source path='/dev/pts/6'/> > <target port='0'/> > <alias name='serial0'/> > </serial> > <console type='pty' tty='/dev/pts/6'> > <source path='/dev/pts/6'/> > <target type='serial' port='0'/> > <alias name='serial0'/> > </console> > <input type='mouse' bus='ps2'/> > <graphics type='vnc' port='5900' autoport='yes' listen='127.0.0.1'> > <listen type='address' address='127.0.0.1'/> > </graphics> > <sound model='ich6'> > <alias name='sound0'/> > <address type='pci' domain='0x0000' bus='0x00' slot='0x04' > function='0x0'/> > </sound> > <video> > <model type='cirrus' vram='65536' heads='1'/> > <alias name='video0'/> > <address type='pci' domain='0x0000' bus='0x00' slot='0x02' > function='0x0'/> > </video> > ... > Sorry, wrong xml here, should be: # virsh dumpxml kvm-rhel6.4-x86_64-qcow2-virtio ... <serial type='pty'> <source path='/dev/pts/10'/> <target port='0'/> <alias name='serial0'/> </serial> <console type='pty' tty='/dev/pts/10'> <source path='/dev/pts/10'/> <target type='serial' port='0'/> <alias name='serial0'/> </console> <channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/test.agent'/> <target type='virtio' name='org.qemu.guest_agent.0'/> <alias name='channel0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='mouse' bus='ps2'/> <graphics type='spice' port='5901' autoport='yes' listen='127.0.0.1'> <listen type='address' address='127.0.0.1'/> </graphics> <sound model='ich6'> <alias name='sound0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </sound> <video> <model type='qxl' ram='65536' vram='65536' heads='1'/> <alias name='video0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> ... I'll add guest xml as attachment. > check qemu process > # ps aux|grep qemu > qemu 30581 15.5 0.4 5998800 540008 ? Sl 13:55 0:42 > /usr/libexec/qemu-kvm -name kvm-rhel6.4-x86_64-qcow2-virtio -S -machine > pc-i440fx-1.4,accel=kvm,usb=off -m 1024 -realtime mlock=off -smp > 1,sockets=1,cores=1,threads=1 -uuid bbb1ae2a-a1ff-49d7-8e39-fa1055a8bdc8 > -no-user-config -nodefaults -chardev > socket,id=charmonitor,path=/var/lib/libvirt/qemu/kvm-rhel6.4-x86_64-qcow2- > virtio.monitor,server,nowait -mon > chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown > -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device > virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x7 -drive > file=/var/lib/libvirt/images/kvm-rhel6.4-x86_64-qcow2.img,if=none,id=drive- > virtio-disk0,format=qcow2,cache=none -device > virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=drive-virtio-disk0, > id=virtio-disk0,bootindex=1 -netdev > tap,fd=25,id=hostnet0,vhost=on,vhostfd=26 -device > virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:48:88:34,bus=pci.0, > addr=0x3 -chardev pty,id=charserial0 -device > isa-serial,chardev=charserial0,id=serial0 -chardev > socket,id=charchannel0,path=/var/lib/libvirt/qemu/test.agent,server,nowait > -device > virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0, > name=org.qemu.guest_agent.0 -spice > port=5901,addr=127.0.0.1,disable-ticketing,seamless-migration=on -device > qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0x2 > -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device > hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device > virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 > > 2. connect with virt-manager > # virt-manager > open guest console > > # tailf /var/log/libvirt/qemu/kvm-rhel6.4-x86_64-qcow2-virtio.log > main_channel_link: add main channel client > main_channel_handle_parsed: net test: latency 0.499000 ms, bitrate > 8943231441 bps (8528.930131 Mbps) > red_dispatcher_set_cursor_peer: > red_dispatcher_set_cursor_peer: > red_channel_client_pre_create_validate: Error client 0x7f45453ac610: > duplicate channel type 4 id 0 > inputs_connect: inputs channel client create > red_channel_client_pre_create_validate: Error client 0x7f45453ac610: > duplicate channel type 2 id 0 > > close guest console and reopen > # tailf /var/log/libvirt/qemu/kvm-rhel6.4-x86_64-qcow2-virtio.log > red_channel_client_disconnect: 0x7f453e885290 (channel 0x7f453e4ef3b0 type 3 > id 0) > red_channel_client_disconnect: 0x7f44d02abbe0 (channel 0x7f44d021d0c0 type 2 > id 0) > red_channel_client_disconnect: 0x7f453ed25090 (channel 0x7f453e4e4510 type 1 > id 0) > red_channel_client_disconnect: 0x7f44d025d5c0 (channel 0x7f44d021d680 type 4 > id 0) > main_channel_client_on_disconnect: rcc=0x7f453ed25090 > red_client_destroy: destroy client with #channels 4 > red_channel_client_disconnect: 0x7f453e885290 (channel 0x7f453e4ef3b0 type 3 > id 0) > red_channel_client_disconnect: 0x7f453e885290 (channel 0x7f453e4ef3b0 type 3 > id 0) > red_dispatcher_disconnect_cursor_peer: > red_channel_client_disconnect: 0x7f44d025d5c0 (channel 0x7f44d021d680 type 4 > id 0) > red_channel_client_disconnect: 0x7f44d025d5c0 (channel 0x7f44d021d680 type 4 > id 0) > red_dispatcher_disconnect_display_peer: > red_channel_client_disconnect: 0x7f44d02abbe0 (channel 0x7f44d021d0c0 type 2 > id 0) > red_channel_client_disconnect: 0x7f44d02abbe0 (channel 0x7f44d021d0c0 type 2 > id 0) > red_channel_client_disconnect: 0x7f453ed25090 (channel 0x7f453e4e4510 type 1 > id 0) > red_channel_client_disconnect: 0x7f453ed25090 (channel 0x7f453e4e4510 type 1 > id 0) > main_channel_link: add main channel client > main_channel_handle_parsed: net test: latency 0.462000 ms, bitrate > 2876404494 bps (2743.153090 Mbps) > red_dispatcher_set_cursor_peer: > inputs_connect: inputs channel client create > red_channel_client_pre_create_validate: Error client 0x7f453eafb500: > duplicate channel type 2 id 0 > red_dispatcher_set_cursor_peer: > red_channel_client_pre_create_validate: Error client 0x7f453eafb500: > duplicate channel type 4 id 0 > > The console will get black screen, and it will remain blackscreen with after > try. > > > Actual results: > get black screen and error > > Expected results: > should work > > Additional info: > use virt-viewer will not get black screen Created attachment 768093 [details]
guest xml
When I use -device qxl-vga,id=video0,ram_size=ram_size=67108864,vram_size=67108864 with spice server in qemu commandline, like as follows: /bin/qemu-kvm ${otherargs} \ -spice port=5900,addr=127.0.0.1,disable-ticketing,seamless-migration=on \ -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0x2 The qemu reports error: red_channel_client_pre_create_validate: Error client 0x7fef531a1960: duplicate channel type 4 id 0 red_channel_client_pre_create_validate: Error client 0x7fef531a1960: duplicate channel type 2 id 0 The virt-manager reports error like: (virt-manager:22989): Gtk-CRITICAL **: gtk_viewport_add: assertion `gtk_bin_get_child (bin) == NULL' failed (virt-manager:22989): Gtk-CRITICAL **: gtk_widget_realize: assertion `widget->priv->anchored || GTK_IS_INVISIBLE (widget)' failed 2013-07-03 17:43:46,042 (console:1135): Viewer connected (virt-manager:22989): GSpice-WARNING **: spice-server send audio-volume-msg with 0 channels (virt-manager:22989): GSpice-WARNING **: spice-server send audio-volume-msg with 0 channels (virt-manager:22989): GSpice-CRITICAL **: recv hdr: Connection reset by peer For old qemu qxl commondline /bin/qemu-kvm ${otherargs} \ -spice port=5900,addr=127.0.0.1,disable-ticketing,seamless-migration=on \ -vga qxl -global qxl.ram_size=67108864 -global qxl.vram_size=18874368 no spice-client error is throw out. I think if qemu or spice developer can have a look. Using remote-viewer, error is still thrown out. (remote-viewer:1063): GSpice-CRITICAL **: recv hdr: Connection reset by peer (remote-viewer:1063): GSpice-CRITICAL **: recv hdr: Connection reset by peer As the following error is thrown out by spice-server. so move component to spice-server red_channel_client_pre_create_validate: Error client 0x7fef531a1960: duplicate channel type 4 id 0 It doesn't look like a spice-server bug, but a client side bug. There is a duplicated attempt to connect a channel with the same id. I'm not sure if it is a spice-gtk, remote-viewer or virt-manager bug. Marc-Andre, can you please move it to the right component? (In reply to Gunannan Ren from comment #6) > Using remote-viewer, error is still thrown out. > > (remote-viewer:1063): GSpice-CRITICAL **: recv hdr: Connection reset by peer > > (remote-viewer:1063): GSpice-CRITICAL **: recv hdr: Connection reset by peer > > As the following error is thrown out by spice-server. so move component to > spice-server > red_channel_client_pre_create_validate: Error client 0x7fef531a1960: > duplicate channel type 4 id 0 (In reply to Yonit Halperin from comment #7) > It doesn't look like a spice-server bug, but a client side bug. There is a > duplicated attempt to connect a channel with the same id. I'm not sure if it > is a spice-gtk, remote-viewer or virt-manager bug. > Marc-Andre, can you please move it to the right component? Since we have never seen that error before, it is very likely because the server sends the same channel twice in the channel list. (channel type 2 is display, channel type 4 is cursor) I don't have a RHEL7 handy, it would be worth attaching SPICE_DEBUG=1 log, using remote-viewer (which is simpler than virt-manager) This bug is duplicated with bug 981094, the fix patch on qemu side is https://lists.gnu.org/archive/html/qemu-devel/2013-07/msg03879.html gsun, can we test it this issue on RHEL7. (In reply to Gunannan Ren from comment #9) > This bug is duplicated with bug 981094, the fix patch on qemu side is > https://lists.gnu.org/archive/html/qemu-devel/2013-07/msg03879.html > > gsun, can we test it this issue on RHEL7. Yes, I've tested it, it works now. pkgs: libvirt-1.1.1-8.el7.x86_64 qemu-kvm-1.5.3-7.el7.x86_64 kernel-3.10.0-9.el7.x86_64 virt-manager-0.10.0-3.el7.noarch steps: 1. start domain # virsh start kvm-rhel6.4-x86_64-qcow2-virtio # virsh dumpxml kvm-rhel6.4-x86_64-qcow2-virtio ... <graphics type='spice' port='5900' autoport='yes' listen='127.0.0.1'> <listen type='address' address='127.0.0.1'/> </graphics> <sound model='ich6'> <alias name='sound0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </sound> <video> <model type='qxl' ram='65536' vram='65536' heads='1'/> <alias name='video0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> ... # ps aux|grep rhel6.4 qemu 19081 4.0 0.4 5949204 577748 ? Sl 11:01 0:41 /usr/libexec/qemu-kvm -name kvm-rhel6.4-x86_64-qcow2-virtio -S -machine pc-i440fx-rhel7.0.0,accel=kvm,usb=off -m 1024 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid 6dcbc192-236a-4aaf-be4e-777e333e3ce3 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/kvm-rhel6.4-x86_64-qcow2-virtio.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x7 -drive file=/var/lib/libvirt/images/kvm-rhel6.4-x86_64-qcow2.img,if=none,id=drive-virtio-disk0,format=qcow2,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -netdev tap,fd=23,id=hostnet0,vhost=on,vhostfd=24 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:48:88:34,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev socket,id=charchannel0,path=/var/lib/libvirt/qemu/test.agent,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 -spice port=5900,addr=127.0.0.1,disable-ticketing,seamless-migration=on -vga qxl -global qxl-vga.ram_size=67108864 -global qxl-vga.vram_size=67108864 -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 so the qemu command include: -vga qxl -global qxl-vga.ram_size=67108864 -global qxl-vga.vram_size=67108864 2. check with virt-manager no black screen, mouse works fine. Created attachment 809060 [details] remote-viewer debug log (In reply to Marc-Andre Lureau from comment #8) > (In reply to Yonit Halperin from comment #7) > > It doesn't look like a spice-server bug, but a client side bug. There is a > > duplicated attempt to connect a channel with the same id. I'm not sure if it > > is a spice-gtk, remote-viewer or virt-manager bug. > > Marc-Andre, can you please move it to the right component? > > Since we have never seen that error before, it is very likely because the > server sends the same channel twice in the channel list. > > (channel type 2 is display, channel type 4 is cursor) > > I don't have a RHEL7 handy, it would be worth attaching SPICE_DEBUG=1 log, > using remote-viewer (which is simpler than virt-manager) (In reply to Gunannan Ren from comment #9) > This bug is duplicated with bug 981094, the fix patch on qemu side is > https://lists.gnu.org/archive/html/qemu-devel/2013-07/msg03879.html Thanks Gunannan. This patch also fixes bug 974887. *** This bug has been marked as a duplicate of bug 974887 *** |