Bug 1691721
Summary: | RHEL6 guest didn't Synchronize in destination after postcopy migration | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 8 | Reporter: | jingzhao <jinzhao> | ||||||
Component: | spice | Assignee: | Frediano Ziglio <fziglio> | ||||||
Status: | CLOSED ERRATA | QA Contact: | SPICE QE bug list <spice-qe-bugs> | ||||||
Severity: | medium | Docs Contact: | |||||||
Priority: | medium | ||||||||
Version: | 8.2 | CC: | chayang, dblechte, dgilbert, ehabkost, fziglio, juzhang, kraxel, lhrazky, rbalakri, tpelka, uril, victortoso, virt-maint, vtosodec, xiaohli, yuhuang | ||||||
Target Milestone: | rc | Keywords: | OtherQA | ||||||
Target Release: | 8.2 | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
Whiteboard: | |||||||||
Fixed In Version: | Doc Type: | If docs needed, set a value | |||||||
Doc Text: | Story Points: | --- | |||||||
Clone Of: | Environment: | ||||||||
Last Closed: | 2020-11-04 04:07:31 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: | |||||||||
Bug Depends On: | 1691701, 1840240 | ||||||||
Bug Blocks: | |||||||||
Attachments: |
|
Description
jingzhao
2019-03-22 10:34:04 UTC
I am not sure I using vga cirrus is right since rhel8 had been deprecated cirrus driver. But I tried it with "-vnc :0 -vga cirrus" and didn't reproduce the issue Also didn't reproduce the issue if we used RHEL.7.6 host on above test scenario simple command line when migrate from rhel8.0 to rhel8.0 /usr/libexec/qemu-kvm -name rhel6.10 \ -M pc \ -cpu SandyBridge -m 4G \ -smp 4,sockets=1,cores=4,threads=1 \ -device virtio-scsi-pci,id=virtio_scsi_pci0 \ -drive id=drive_image1,if=none,snapshot=off,aio=threads,cache=none,format=qcow2,file=/mnt/rhel610-64-virtio-scsi.qcow2 \ -device scsi-hd,drive=drive_image1,id=image1,bus=virtio_scsi_pci0.0 \ -spice port=5910,addr=0.0.0.0,disable-ticketing,seamless-migration=on \ -k en-us \ -device qxl-vga,id=video0,ram_size=134217728,vram_size=67108864,vgamem_mb=16,bus=pci.0 \ -monitor stdio \ -netdev tap,id=hostnet0,vhost=on \ -device virtio-net-pci,netdev=hostnet0,id=net0,mac=18:66:da:5f:d1:02 \ I can't reproduce this with a rhel7 guest, and rhel6 guests suffer from bz 1691701. So I think we need to wait for bz 1691701 to be fixed first before we can investigate this more. I've reproduced this: /usr/libexec/qemu-kvm -M pc -cpu SandyBridge -m 4G -smp 4 -device virtio-scsi-pci,id=vsp -drive id=di1,if=none,snapshot=off,aio=threads,cache=none,format=qcow2,file=/home/vms/rhel6-10-ws.qcow2 -device scsi-hd,drive=di1,id=i1,bus=vsp.0 -spice port=5910,addr=0.0.0.0,disable-ticketing,seamless-migration=on -device qxl-vga,id=video0,ram_size=134217728,vram_size=67108864,vgamem_mb=16,bus=pci.0 -monitor stdio -netdev user,id=net -device virtio-net-pci,netdev=net -incoming tcp:0:4444 what's interesting is that for me the 'remote-viewer' hangs at 'connected to graphic server' with nothing displayed - it's not even a black screen Using qemu-kvm-4.1.0-5.el8.bz1746790a.x86_64 spice-server-0.14.2-1.el8.x86_64 This is temperamental; I've had it fail 2 or 3 times; but only when I migrate twice (like bz 1722022 ???) remote-view --spice-debug output from the dead destion; I think in this case I connected after the migrate had finished: (remote-viewer:25004): GSpice-DEBUG: 11:18:06.059: ../src/spice-session.c:288 New session (compiled from package spice-gtk 0.37) (remote-viewer:25004): GSpice-DEBUG: 11:18:06.059: ../src/spice-session.c:292 Supported channels: main, display, inputs, cursor, playback, record, smartcard, usbredir, webdav (remote-viewer:25004): GSpice-DEBUG: 11:18:06.059: ../src/usb-device-manager.c:485 auto-connect filter set to 0x03,-1,-1,-1,0|-1,-1,-1,-1,1 (remote-viewer:25004): GSpice-DEBUG: 11:18:06.064: ../src/spice-session.c:1814 no migration in progress Spice-INFO: 11:18:06.065: ../src/channel-main.c:334:spice_main_set_property: SpiceMainChannel::color-depth has been deprecated. Property is ignored (remote-viewer:25004): GSpice-DEBUG: 11:18:06.065: ../src/spice-channel.c:141 main-1:0: spice_channel_constructed (remote-viewer:25004): GSpice-DEBUG: 11:18:06.065: ../src/spice-session.c:2309 main-1:0: new main channel, switching (remote-viewer:25004): GSpice-DEBUG: 11:18:06.065: ../src/spice-gtk-session.c:1089 Changing main channel from (nil) to 0x561128f733a0 (remote-viewer:25004): GSpice-DEBUG: 11:18:06.115: ../src/usb-device-manager.c:950 device added 0bda:0316 (0x561128d73a60) (remote-viewer:25004): GSpice-DEBUG: 11:18:06.115: ../src/usb-device-manager.c:950 device added 5986:2113 (0x561128ed22e0) (remote-viewer:25004): GSpice-DEBUG: 11:18:06.116: ../src/usb-device-manager.c:950 device added 8087:0a2b (0x561128debf50) (remote-viewer:25004): GSpice-DEBUG: 11:18:06.116: ../src/usb-device-manager.c:950 device added 1050:0407 (0x561128ec8870) (remote-viewer:25004): GSpice-DEBUG: 11:18:06.116: ../src/usb-device-manager.c:950 device added 0d3d:0001 (0x561128ec8ba0) (remote-viewer:25004): GSpice-DEBUG: 11:18:06.116: ../src/usb-device-manager.c:950 device added 093a:2510 (0x561128e47560) (remote-viewer:25004): GSpice-DEBUG: 11:18:06.116: ../src/spice-channel.c:2707 main-1:0: Open coroutine starting 0x561128f733a0 (remote-viewer:25004): GSpice-DEBUG: 11:18:06.116: ../src/spice-channel.c:2544 main-1:0: Started background coroutine 0x561128f729e0 (remote-viewer:25004): GSpice-DEBUG: 11:18:06.116: ../src/spice-session.c:2246 main-1:0: Using plain text, port 5910 (remote-viewer:25004): GSpice-DEBUG: 11:18:06.116: ../src/spice-session.c:2177 open host virtlab414.virt.lab.eng.bos.redhat.com:5910 (remote-viewer:25004): GSpice-DEBUG: 11:18:06.116: ../src/spice-session.c:2099 main-1:0: connecting 0x7f3dc3fffa50... (remote-viewer:25004): GSpice-DEBUG: 11:18:06.350: ../src/spice-session.c:2083 main-1:0: connect ready (remote-viewer:25004): GSpice-DEBUG: 11:18:06.350: ../src/spice-channel.c:1363 main-1:0: channel type 1 id 0 num common caps 1 num caps 1 (remote-viewer:25004): GSpice-DEBUG: 11:18:06.522: ../src/spice-channel.c:1389 main-1:0: Peer version: 2:2 (remote-viewer:25004): GSpice-DEBUG: 11:18:06.522: ../src/spice-channel.c:1947 main-1:0: spice_channel_recv_link_msg: 2 caps (remote-viewer:25004): GSpice-DEBUG: 11:18:06.522: ../src/spice-channel.c:1961 main-1:0: got remote common caps: (remote-viewer:25004): GSpice-DEBUG: 11:18:06.523: ../src/spice-channel.c:1897 0:0xB (remote-viewer:25004): GSpice-DEBUG: 11:18:06.523: ../src/spice-channel.c:1968 main-1:0: got remote channel caps: (remote-viewer:25004): GSpice-DEBUG: 11:18:06.523: ../src/spice-channel.c:1897 0:0x9 (remote-viewer:25004): GSpice-DEBUG: 11:18:06.523: ../src/spice-channel.c:2926 test cap 0 in 0xB: yes (remote-viewer:25004): GSpice-DEBUG: 11:18:06.523: ../src/spice-channel.c:2926 test cap 2 in 0xB: no (remote-viewer:25004): GSpice-DEBUG: 11:18:06.523: ../src/spice-channel.c:2926 test cap 1 in 0xB: yes (remote-viewer:25004): GSpice-DEBUG: 11:18:06.523: ../src/spice-channel.c:2926 test cap 3 in 0xB: yes (remote-viewer:25004): GSpice-DEBUG: 11:18:06.523: ../src/spice-channel.c:2000 main-1:0: use mini header: 1 (remote-viewer:25004): GSpice-DEBUG: 11:18:06.691: ../src/spice-channel.c:1298 main-1:0: channel up, state 3 (remote-viewer:25004): GSpice-DEBUG: 11:18:06.692: ../src/spice-session.c:2413 set mm time: 3167496706 (remote-viewer:25004): GSpice-DEBUG: 11:18:06.692: ../src/spice-session.c:2416 spice_session_set_mm_time: mm-time-reset, old 8435312, new 3167496706 (remote-viewer:25004): GSpice-DEBUG: 11:18:06.692: ../src/channel-main.c:1692 server name: QEMU 4.1.0 (remote-viewer:25004): GSpice-DEBUG: 11:18:06.692: ../src/channel-main.c:1703 server uuid: 00000000-0000-0000-0000-000000000000 (remote-viewer:25004): Spice-DEBUG: 11:18:07.378: ../src/channel-display-gst.c:773:gstvideo_debug_available_decoders: From 12 video decoder elements, 1 can handle caps image/jpeg: jpegdec (remote-viewer:25004): Spice-DEBUG: 11:18:07.379: ../src/channel-display-gst.c:773:gstvideo_debug_available_decoders: From 12 video decoder elements, 1 can handle caps video/x-vp8: vp8dec (remote-viewer:25004): Spice-DEBUG: 11:18:07.379: ../src/channel-display-gst.c:802:gstvideo_has_codec: From 12 decoders, none can handle 'video/x-h264' (remote-viewer:25004): GSpice-DEBUG: 11:18:07.379: ../src/channel-display.c:894 GStreamer does not support the h264 codec (remote-viewer:25004): Spice-DEBUG: 11:18:07.379: ../src/channel-display-gst.c:773:gstvideo_debug_available_decoders: From 12 video decoder elements, 1 can handle caps video/x-vp9: vp9dec (remote-viewer:25004): Spice-DEBUG: 11:18:07.380: ../src/channel-display-gst.c:802:gstvideo_has_codec: From 12 decoders, none can handle 'video/x-h265' (remote-viewer:25004): GSpice-DEBUG: 11:18:07.380: ../src/channel-display.c:894 GStreamer does not support the h265 codec (remote-viewer:25004): GSpice-DEBUG: 11:18:07.380: ../src/spice-channel.c:141 display-2:0: spice_channel_constructed (remote-viewer:25004): GSpice-DEBUG: 11:18:07.380: ../src/spice-channel.c:141 cursor-4:0: spice_channel_constructed (remote-viewer:25004): GSpice-DEBUG: 11:18:07.380: ../src/spice-channel.c:141 inputs-3:0: spice_channel_constructed (remote-viewer:25004): GSpice-DEBUG: 11:18:07.380: ../src/spice-gtk-session.c:156 inputs-3:0: client_modifiers:0x0, guest_modifiers:0x0 (remote-viewer:25004): GSpice-DEBUG: 11:18:07.380: ../src/spice-channel.c:2707 display-2:0: Open coroutine starting 0x56112903b6b0 (remote-viewer:25004): GSpice-DEBUG: 11:18:07.381: ../src/spice-channel.c:2544 display-2:0: Started background coroutine 0x56112903acf0 (remote-viewer:25004): GSpice-DEBUG: 11:18:07.381: ../src/spice-session.c:2246 display-2:0: Using plain text, port 5910 (remote-viewer:25004): GSpice-DEBUG: 11:18:07.381: ../src/spice-session.c:2177 open host virtlab414.virt.lab.eng.bos.redhat.com:5910 (remote-viewer:25004): GSpice-DEBUG: 11:18:07.381: ../src/spice-session.c:2099 display-2:0: connecting 0x7f3dc1ffda50... (remote-viewer:25004): GSpice-DEBUG: 11:18:07.619: ../src/spice-session.c:2083 display-2:0: connect ready (remote-viewer:25004): GSpice-DEBUG: 11:18:07.620: ../src/spice-channel.c:1363 display-2:0: channel type 2 id 0 num common caps 1 num caps 1 (remote-viewer:25004): GSpice-DEBUG: 11:18:07.874: ../src/spice-channel.c:1389 display-2:0: Peer version: 2:2 (remote-viewer:25004): GSpice-DEBUG: 11:18:07.874: ../src/spice-channel.c:1947 display-2:0: spice_channel_recv_link_msg: 2 caps (remote-viewer:25004): GSpice-DEBUG: 11:18:07.874: ../src/spice-channel.c:1961 display-2:0: got remote common caps: (remote-viewer:25004): GSpice-DEBUG: 11:18:07.874: ../src/spice-channel.c:1897 0:0xB (remote-viewer:25004): GSpice-DEBUG: 11:18:07.874: ../src/spice-channel.c:1968 display-2:0: got remote channel caps: (remote-viewer:25004): GSpice-DEBUG: 11:18:07.874: ../src/spice-channel.c:1897 0:0x1052 (remote-viewer:25004): GSpice-DEBUG: 11:18:07.874: ../src/spice-channel.c:2926 test cap 0 in 0xB: yes (remote-viewer:25004): GSpice-DEBUG: 11:18:07.874: ../src/spice-channel.c:2926 test cap 2 in 0xB: no (remote-viewer:25004): GSpice-DEBUG: 11:18:07.874: ../src/spice-channel.c:2926 test cap 1 in 0xB: yes (remote-viewer:25004): GSpice-DEBUG: 11:18:07.874: ../src/spice-channel.c:2926 test cap 3 in 0xB: yes (remote-viewer:25004): GSpice-DEBUG: 11:18:07.874: ../src/spice-channel.c:2000 display-2:0: use mini header: 1 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.045: ../src/spice-channel.c:1298 display-2:0: channel up, state 3 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.045: ../src/channel-display.c:1068 display-2:0: spice_display_channel_up: cache_size 83886080, glz_window_size 58716160 (bytes) (remote-viewer:25004): GSpice-DEBUG: 11:18:08.047: ../src/spice-widget.c:1296 0:0 recalc geom monitor: 0:0, guest +0+0:0x0, window 0x0, zoom 1 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.047: ../src/spice-widget.c:1296 0:0 recalc geom monitor: 0:0, guest +0+0:0x0, window 0x0, zoom 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.047: ../src/spice-widget.c:1296 0:0 recalc geom monitor: 0:0, guest +0+0:0x0, window 0x0, zoom 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.047: ../src/spice-widget.c:1296 0:0 recalc geom monitor: 0:0, guest +0+0:0x0, window 0x0, zoom 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.047: ../src/spice-widget.c:1296 0:0 recalc geom monitor: 0:0, guest +0+0:0x0, window 0x0, zoom 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.047: ../src/spice-widget.c:356 0:0 keypress-delay is set to 100 ms (remote-viewer:25004): GSpice-DEBUG: 11:18:08.047: ../src/spice-widget.c:1296 0:0 recalc geom monitor: 0:0, guest +0+0:0x0, window 0x0, zoom 1 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.047: ../src/spice-widget.c:1296 0:0 recalc geom monitor: 0:0, guest +0+0:0x0, window 0x0, zoom 1 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.047: ../src/spice-widget.c:2546 0:0 mouse mode 2 (client) (remote-viewer:25004): GSpice-DEBUG: 11:18:08.047: ../src/spice-widget.c:1296 0:0 recalc geom monitor: 0:0, guest +0+0:0x0, window 0x0, zoom 1 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.047: ../src/spice-widget.c:1296 0:0 recalc geom monitor: 0:0, guest +0+0:0x0, window 0x0, zoom 1 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.047: ../src/spice-widget.c:1296 0:0 recalc geom monitor: 0:0, guest +0+0:0x0, window 0x0, zoom 1 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.048: ../src/spice-channel.c:2707 inputs-3:0: Open coroutine starting 0x561129199600 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.048: ../src/spice-channel.c:2544 inputs-3:0: Started background coroutine 0x561129198c40 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.048: ../src/spice-session.c:2246 inputs-3:0: Using plain text, port 5910 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.048: ../src/spice-channel.c:2707 cursor-4:0: Open coroutine starting 0x561129198b70 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.048: ../src/spice-channel.c:2544 cursor-4:0: Started background coroutine 0x5611291981b0 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.048: ../src/spice-session.c:2246 cursor-4:0: Using plain text, port 5910 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.048: ../src/spice-session.c:2177 open host virtlab414.virt.lab.eng.bos.redhat.com:5910 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.048: ../src/spice-session.c:2099 inputs-3:0: connecting 0x7f3dbbfffa50... (remote-viewer:25004): GSpice-DEBUG: 11:18:08.049: ../src/spice-session.c:2177 open host virtlab414.virt.lab.eng.bos.redhat.com:5910 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.049: ../src/spice-session.c:2099 cursor-4:0: connecting 0x7f3dbafffa50... (remote-viewer:25004): GSpice-DEBUG: 11:18:08.256: ../src/channel-display.c:1909 surface flags: 1 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.256: ../src/channel-display.c:947 display-2:0: Create primary canvas (remote-viewer:25004): GSpice-DEBUG: 11:18:08.257: ../src/spice-widget.c:300 0:0 update monitor area (remote-viewer:25004): GSpice-DEBUG: 11:18:08.257: ../src/spice-widget.c:313 0:0 update monitor: no monitor 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.257: ../src/spice-channel.c:2926 test cap 1 in 0x1052: yes (remote-viewer:25004): GSpice-DEBUG: 11:18:08.257: ../src/spice-widget.c:317 0:0 waiting until MonitorsConfig is received (remote-viewer:25004): GSpice-DEBUG: 11:18:08.257: ../src/spice-channel.c:2926 test cap 1 in 0x1052: yes (remote-viewer:25004): GSpice-DEBUG: 11:18:08.281: ../src/spice-session.c:2083 cursor-4:0: connect ready (remote-viewer:25004): GSpice-DEBUG: 11:18:08.281: ../src/spice-channel.c:1363 cursor-4:0: channel type 4 id 0 num common caps 1 num caps 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.287: ../src/spice-session.c:2083 inputs-3:0: connect ready (remote-viewer:25004): GSpice-DEBUG: 11:18:08.288: ../src/spice-channel.c:1363 inputs-3:0: channel type 3 id 0 num common caps 1 num caps 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.523: ../src/spice-channel.c:1389 cursor-4:0: Peer version: 2:2 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.523: ../src/spice-channel.c:1947 cursor-4:0: spice_channel_recv_link_msg: 1 caps (remote-viewer:25004): GSpice-DEBUG: 11:18:08.523: ../src/spice-channel.c:1961 cursor-4:0: got remote common caps: (remote-viewer:25004): GSpice-DEBUG: 11:18:08.523: ../src/spice-channel.c:1897 0:0xB (remote-viewer:25004): GSpice-DEBUG: 11:18:08.523: ../src/spice-channel.c:1968 cursor-4:0: got remote channel caps: (remote-viewer:25004): GSpice-DEBUG: 11:18:08.523: ../src/spice-channel.c:2926 test cap 0 in 0xB: yes (remote-viewer:25004): GSpice-DEBUG: 11:18:08.524: ../src/spice-channel.c:2926 test cap 2 in 0xB: no (remote-viewer:25004): GSpice-DEBUG: 11:18:08.524: ../src/spice-channel.c:2926 test cap 1 in 0xB: yes (remote-viewer:25004): GSpice-DEBUG: 11:18:08.524: ../src/spice-channel.c:2926 test cap 3 in 0xB: yes (remote-viewer:25004): GSpice-DEBUG: 11:18:08.524: ../src/spice-channel.c:2000 cursor-4:0: use mini header: 1 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.574: ../src/spice-channel.c:1389 inputs-3:0: Peer version: 2:2 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.574: ../src/spice-channel.c:1947 inputs-3:0: spice_channel_recv_link_msg: 2 caps (remote-viewer:25004): GSpice-DEBUG: 11:18:08.574: ../src/spice-channel.c:1961 inputs-3:0: got remote common caps: (remote-viewer:25004): GSpice-DEBUG: 11:18:08.575: ../src/spice-channel.c:1897 0:0xB (remote-viewer:25004): GSpice-DEBUG: 11:18:08.575: ../src/spice-channel.c:1968 inputs-3:0: got remote channel caps: (remote-viewer:25004): GSpice-DEBUG: 11:18:08.575: ../src/spice-channel.c:1897 0:0x1 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.575: ../src/spice-channel.c:2926 test cap 0 in 0xB: yes (remote-viewer:25004): GSpice-DEBUG: 11:18:08.575: ../src/spice-channel.c:2926 test cap 2 in 0xB: no (remote-viewer:25004): GSpice-DEBUG: 11:18:08.575: ../src/spice-channel.c:2926 test cap 1 in 0xB: yes (remote-viewer:25004): GSpice-DEBUG: 11:18:08.575: ../src/spice-channel.c:2926 test cap 3 in 0xB: yes (remote-viewer:25004): GSpice-DEBUG: 11:18:08.575: ../src/spice-channel.c:2000 inputs-3:0: use mini header: 1 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.680: ../src/spice-channel.c:1298 cursor-4:0: channel up, state 3 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.681: ../src/channel-cursor.c:386 cursor-4:0: set_cursor: flags 0, size 2304 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.681: ../src/channel-cursor.c:392 cursor-4:0: set_cursor: type alpha(0), 0, 24x24 (remote-viewer:25004): GSpice-DEBUG: 11:18:08.740: ../src/channel-base.c:78 main-1:0: spice_channel_handle_notify -- warn!!! #0: keyboard channel is insecure (remote-viewer:25004): GSpice-DEBUG: 11:18:08.740: ../src/spice-channel.c:1298 inputs-3:0: channel up, state 3 (remote-viewer:25004): GSpice-DEBUG: 11:18:09.275: ../src/channel-display.c:1975 display-2:0: received empty monitor config (remote-viewer:25004): GSpice-DEBUG: 11:18:09.275: ../src/channel-display.c:1123 display-2:0: display_handle_mark (remote-viewer:25004): GSpice-DEBUG: 11:18:09.275: ../src/spice-widget.c:2852 0:0 widget mark: 1, display 0x56112919c3e0 (remote-viewer:25004): GSpice-DEBUG: 11:18:09.277: ../src/decode-glz.c:349 decode_header: 642x156, id 0, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:12.237: ../src/decode-glz.c:349 decode_header: 642x410, id 1, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:15.093: ../src/decode-glz.c:349 decode_header: 642x410, id 2, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:18.112: ../src/decode-glz.c:349 decode_header: 642x410, id 3, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:21.131: ../src/decode-glz.c:349 decode_header: 642x410, id 4, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:24.143: ../src/decode-glz.c:349 decode_header: 642x173, id 5, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:27.168: ../src/decode-glz.c:349 decode_header: 642x410, id 6, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:30.187: ../src/decode-glz.c:349 decode_header: 642x410, id 7, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:33.205: ../src/decode-glz.c:349 decode_header: 642x410, id 8, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:36.227: ../src/decode-glz.c:349 decode_header: 642x410, id 9, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:39.235: ../src/decode-glz.c:349 decode_header: 642x156, id 10, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:42.260: ../src/decode-glz.c:349 decode_header: 642x410, id 11, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:45.280: ../src/decode-glz.c:349 decode_header: 642x410, id 12, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:48.301: ../src/decode-glz.c:349 decode_header: 642x410, id 13, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:51.318: ../src/decode-glz.c:349 decode_header: 642x410, id 14, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:54.139: ../src/spice-gtk-session.c:555 clipboard_get_targets: (remote-viewer:25004): GSpice-DEBUG: 11:18:54.139: ../src/spice-gtk-session.c:590 "TIMESTAMP" (remote-viewer:25004): GSpice-DEBUG: 11:18:54.139: ../src/spice-gtk-session.c:590 "TARGETS" (remote-viewer:25004): GSpice-DEBUG: 11:18:54.139: ../src/spice-gtk-session.c:590 "MULTIPLE" (remote-viewer:25004): GSpice-DEBUG: 11:18:54.139: ../src/spice-gtk-session.c:590 "UTF8_STRING" (remote-viewer:25004): GSpice-DEBUG: 11:18:54.139: ../src/spice-gtk-session.c:590 "COMPOUND_TEXT" (remote-viewer:25004): GSpice-DEBUG: 11:18:54.139: ../src/spice-gtk-session.c:590 "TEXT" (remote-viewer:25004): GSpice-DEBUG: 11:18:54.139: ../src/spice-gtk-session.c:590 "STRING" (remote-viewer:25004): GSpice-DEBUG: 11:18:54.139: ../src/spice-gtk-session.c:590 "text/plain;charset=utf-8" (remote-viewer:25004): GSpice-DEBUG: 11:18:54.139: ../src/spice-gtk-session.c:590 "text/plain" (remote-viewer:25004): GSpice-DEBUG: 11:18:54.140: ../src/spice-gtk-session.c:555 clipboard_get_targets: (remote-viewer:25004): GSpice-DEBUG: 11:18:54.140: ../src/spice-gtk-session.c:590 "TIMESTAMP" (remote-viewer:25004): GSpice-DEBUG: 11:18:54.140: ../src/spice-gtk-session.c:590 "TARGETS" (remote-viewer:25004): GSpice-DEBUG: 11:18:54.140: ../src/spice-gtk-session.c:590 "MULTIPLE" (remote-viewer:25004): GSpice-DEBUG: 11:18:54.140: ../src/spice-gtk-session.c:590 "SAVE_TARGETS" (remote-viewer:25004): GSpice-DEBUG: 11:18:54.140: ../src/spice-gtk-session.c:590 "UTF8_STRING" (remote-viewer:25004): GSpice-DEBUG: 11:18:54.140: ../src/spice-gtk-session.c:590 "COMPOUND_TEXT" (remote-viewer:25004): GSpice-DEBUG: 11:18:54.140: ../src/spice-gtk-session.c:590 "TEXT" (remote-viewer:25004): GSpice-DEBUG: 11:18:54.140: ../src/spice-gtk-session.c:590 "STRING" (remote-viewer:25004): GSpice-DEBUG: 11:18:54.140: ../src/spice-gtk-session.c:590 "text/plain;charset=utf-8" (remote-viewer:25004): GSpice-DEBUG: 11:18:54.140: ../src/spice-gtk-session.c:590 "text/plain" (remote-viewer:25004): GSpice-DEBUG: 11:18:54.329: ../src/decode-glz.c:349 decode_header: 642x156, id 15, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:57.358: ../src/decode-glz.c:349 decode_header: 642x410, id 16, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:18:57.362: ../src/decode-glz.c:95 glz_decoder_window_resize: array resize 16 -> 32 (remote-viewer:25004): GSpice-DEBUG: 11:19:00.441: ../src/decode-glz.c:349 decode_header: 642x410, id 17, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:19:03.333: ../src/decode-glz.c:349 decode_header: 158x24, id 18, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:19:03.387: ../src/decode-glz.c:349 decode_header: 642x156, id 19, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:19:06.404: ../src/decode-glz.c:349 decode_header: 642x156, id 20, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:19:09.434: ../src/decode-glz.c:349 decode_header: 642x410, id 21, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:19:12.451: ../src/decode-glz.c:349 decode_header: 642x410, id 22, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:19:15.469: ../src/decode-glz.c:349 decode_header: 642x410, id 23, ref 0 (remote-viewer:25004): GSpice-DEBUG: 11:19:17.171: ../src/spice-gtk-session.c:156 inputs-3:0: client_modifiers:0x0, guest_modifiers:0x0 ^C Hi Victor, David B suggested you could parse the log file in the previous comment; it's a remote viewer connected after a migrate and it's sitting there showing the 'connected' message but not actually drawn anything in the guest (not even a black screen). Anything that looks badly wrong? Can you suggest what spice debug would be good to turn on in qemu? Hi David, > it's a remote viewer connected after a migrate and it's sitting there showing the 'connected' > message but not actually drawn anything in the guest (not even a black screen). > Anything that looks badly wrong? | GSpice-DEBUG: 11:18:09.275: ../src/channel-display.c:1975 display-2:0: received empty monitor config With empty monitors we don't have anything to update. I think this is not usual, unless it is a temporary state. I'm unsure because this is RHEL6 guest and the monitor's config path is different between RHEL6 and RHEL7/RHEL8 depending on configuration of host for video. A expected output would be | GSpice-DEBUG: 10:22:31.923: ../src/channel-display.c:2038 display-2:0: received new monitors config from guest: n: 1/1 Weird thing is that you seem to be interacting with the host/guest just fine. > Can you suggest what spice debug would be good to turn on in qemu? Just the usual spice server log from both hosts, G_MESSAGES_DEBUG=all should work fine in RHEL8. -- Connection while on migration and the original scenario from comment #0 could trigger different bugs, I guess. Based on "can reproduce it using vnc:0 -vga qxl" I'm not sure it is client releated but perhaps worth to test the scratch build below that fix a different scenario where remote-viewer was hanging too. https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=23415379 Created attachment 1613276 [details]
Log file from source
Created attachment 1613277 [details]
Log file from dest
Attached src/dst log files.
Not tried new spice-gtk yet; just building myself a f30 version.
(RHEL8 src/dst, migration; my laptop where I'm running the viewer is f30)
Modified client didn't seem to help. Observation: Where previously it only failed sometimes, at the moment it failed 2 out of 2; Is this turning G_MESSAGE_DEBUG=all changed the timing a bit?? bp on marshall_monitors_config on destination: (gdb) bt full #0 0x00007f38ff6fce84 in marshall_monitors_config (monitors_config=0x7f37c4005e90, base_marshaller=0x7f37c402a690, rcc=0x7f37c402a610) at dcc-send.c:2288 heads_size = 0 i = <optimized out> msg = <optimized out> count = <optimized out> monconf_item = <optimized out> dcc = 0x7f37c402a610 m = 0x7f37c402a690 __FUNCTION__ = "dcc_send_item" #1 0x00007f38ff6fce84 in dcc_send_item (rcc=0x7f37c402a610, pipe_item=<optimized out>) at dcc-send.c:2445 monconf_item = <optimized out> dcc = 0x7f37c402a610 m = 0x7f37c402a690 __FUNCTION__ = "dcc_send_item" #2 0x00007f38ff71da6a in red_channel_client_send_item (item=0x7f37c4027de0, rcc=0x7f37c402a610) at red-channel-client.c:613 __FUNCTION__ = "red_channel_client_send_item" pipe_item = 0x7f37c4027de0 #3 0x00007f38ff71da6a in red_channel_client_push (rcc=0x7f37c402a610) at red-channel-client.c:1324 pipe_item = 0x7f37c4027de0 #4 0x00007f38ff71da6a in red_channel_client_push (rcc=0x7f37c402a610) at red-channel-client.c:1303 #5 0x00007f38ff71dc0d in red_channel_client_event (fd=<optimized out>, event=<optimized out>, data=<optimized out>) at red-channel-client.c:828 rcc = 0x7f37c402a610 #6 0x00007f38ff70579f in watch_func (source=<optimized out>, condition=<optimized out>, data=0x7f37c4059a30) at event-loop.c:119 watch = 0x7f37c4059a30 fd = <optimized out> #7 0x00007f390234567d in g_main_context_dispatch () at /lib64/libglib-2.0.so.0 #8 0x00007f3902345a48 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0 #9 0x00007f3902345d72 in g_main_loop_run () at /lib64/libglib-2.0.so.0 #10 0x00007f38ff73347b in red_worker_main (arg=0x5590913d5aa0) at red-worker.c:1139 worker = 0x5590913d5aa0 __FUNCTION__ = "red_worker_main" loop = 0x7f37c4002530 #11 0x00007f38fd85d2de in start_thread () at /lib64/libpthread.so.0 #12 0x00007f38fd58e2e3 in clone () at /lib64/libc.so.6 (gdb) where #0 0x00007f38ff6fce84 in marshall_monitors_config (monitors_config=0x7f37c4005e90, base_marshaller=0x7f37c402a690, rcc=0x7f37c402a610) at dcc-send.c:2288 #1 0x00007f38ff6fce84 in dcc_send_item (rcc=0x7f37c402a610, pipe_item=<optimized out>) at dcc-send.c:2445 #2 0x00007f38ff71da6a in red_channel_client_send_item (item=0x7f37c4027de0, rcc=0x7f37c402a610) at red-channel-client.c:613 #3 0x00007f38ff71da6a in red_channel_client_push (rcc=0x7f37c402a610) at red-channel-client.c:1324 #4 0x00007f38ff71da6a in red_channel_client_push (rcc=0x7f37c402a610) at red-channel-client.c:1303 #5 0x00007f38ff71dc0d in red_channel_client_event (fd=<optimized out>, event=<optimized out>, data=<optimized out>) at red-channel-client.c:828 #6 0x00007f38ff70579f in watch_func (source=<optimized out>, condition=<optimized out>, data=0x7f37c4059a30) at event-loop.c:119 #7 0x00007f390234567d in g_main_context_dispatch () at /lib64/libglib-2.0.so.0 #8 0x00007f3902345a48 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0 #9 0x00007f3902345d72 in g_main_loop_run () at /lib64/libglib-2.0.so.0 #10 0x00007f38ff73347b in red_worker_main (arg=0x5590913d5aa0) at red-worker.c:1139 #11 0x00007f38fd85d2de in start_thread () at /lib64/libpthread.so.0 #12 0x00007f38fd58e2e3 in clone () at /lib64/libc.so.6 (gdb) list 2283 in dcc-send.c (gdb) up #1 dcc_send_item (rcc=0x7f37c402a610, pipe_item=<optimized out>) at dcc-send.c:2445 2445 in dcc-send.c (gdb) list 2440 in dcc-send.c (gdb) down #0 marshall_monitors_config (monitors_config=0x7f37c4005e90, base_marshaller=0x7f37c402a690, rcc=0x7f37c402a610) at dcc-send.c:2288 2288 in dcc-send.c (gdb) list 2283 in dcc-send.c (gdb) p monitors_config $1 = (MonitorsConfig *) 0x7f37c4005e90 (gdb) p *monitors_config $2 = {refs = 2, count = 0, max_allowed = 0, heads = 0x7f37c4005e9c} (gdb) p monitors_config->heads $3 = 0x7f37c4005e9c (gdb) p *monitors_config->heads $4 = {id = 0, surface_id = 1852793632, width = 6777190, height = 37, x = 0, y = 0, flags = 0} I see there's some recent changes in that area in qxl_spice_monitors_config_async in qemu be812c0 from Lukas changes it to use a newer interface; I'll see what happens if I forcibly revert that and play around in there. At the moment I can reproduce this failure much more simply; no migration involved: a) Start qemu, let it boot b) connect remote-viewer c) close remote-viewer d) Reconnect remote-viewer the thing is I can see a : qemu-system-x86_64: info: Spice: display-channel.c:179:monitors_config_unref: freeing monitors config qemu-system-x86_64: info: Spice: display-channel.c:187:monitors_config_debug: monitors config count:1 max:1 qemu-system-x86_64: info: Spice: display-channel.c:191:monitors_config_debug: head #0 +0+0 1024x768 qemu-system-x86_64: info: Spice: display-channel.c:179:monitors_config_unref: freeing monitors config qemu-system-x86_64: info: Spice: display-channel.c:187:monitors_config_debug: monitors config count:0 max:0 qemu-system-x86_64: info: Spice: display-channel.c:179:monitors_config_unref: freeing monitors config qemu-system-x86_64: info: Spice: display-channel.c:187:monitors_config_debug: monitors config count:0 max:0 even before the disconnection of the client; so I think that's already confused? Hi Jingzhao, If I change: -device qxl-vga,id=video0,ram_size=134217728,vram_size=67108864,vgamem_mb=16,bus=pci.0 \ to -device qxl-vga,id=video0,ram_size=134217728,vram_size=67108864,vgamem_mb=16,bus=pci.0,max_outputs=1 \ the bug goes away for me; can you confirm that also fixes it for you? (Observation: Running a RHEL8 guest instead, remote-viewer prints: MonitorConfig max_allowed is not within permitted range, clamping and the value it has is 0) I'm tempted to change qemu to default max_outputs=1 as default instead of 0 - is that ever bad? Maybe unrelated, but nother upstream bug related to monitor configs: https://bugs.launchpad.net/qemu/+bug/1843151 Reverting qemu's be812c0 seems to fix this for me. commit be812c0ab7d5ab741d0d87387a75a0e8bb6461e7 Author: Lukáš Hrázký <lhrazky> Date: Fri Feb 15 16:09:19 2019 +0100 spice: set device address and device display ID in QXL interface Hi Lukáš, It looks like reverting your patch fixes this and the upstream bug I mention in comment 21 - any ideas? Specifically I think if I remove the call in qxl_realize_common to spice_qxl_set_device_info, I think it fixes it. Hello David, the memory is hazy. So I think since this is (AFAIU) only happening with RHEL6 guest, it must be a difference in the QXL driver, where IIRC there were changes on how multiple monitors and the max_outputs number was handled. As my guesses grow wilder, maybe the qxl->max_outputs that's being passed to spice_qxl_set_device_info() in the patch is 0 and that could effectively be telling spice there are no monitors? If you've got the setup to test it, could you try to find out what is being passed to SPICE in that call to spice_qxl_set_device_info() when it's working and when it isn't and compare the two? That might be enough to figure out what to do about it. HTH For both my rhel6 & rhel8 guest I'm seeing: qxl_realize_common: pre set-device-info device_address=pci/0000/03.0 max_outputs=0 but see comment #19 where I get a warning with a rhel8 guest but it doesn't cause a problem Note that the old code in qxl_spice_monitors_config_async that calls spice_qxl_set_max_monitors is guarded with a 'if (qxl->max_outputs) {' perhaps this is why! > but see comment #19 where I get a warning with a rhel8 guest but it doesn't cause a problem
I'll assume that you don't get that warning with a rhel6 guest then.
So, another wild guess, there's some fail-safe mechanism on the SPICE side that kicks in for RHEL8 when max_monitors is 0 and doesn't kick in for RHEL6, which is a bit strange.
On the other hand (assuming the 0 is the cause for the rest of the post), the question that we should ask is probably what does the max_outputs variable mean and what does it mean when it's 0? My memory fails me here, I can't remember the exact semantics anymore. For the case it is 0, does it mean unlimited? It seems to me SPICE interprets 0 as literal 0 and I think SPICE actually needs a positive upper limit on the number of monitors so that it knows how many monitors the user can turn on.
Under that reasoning QEMU shouldn't pass 0 to SPICE (unless it expects to have 0 monitors), it should pass an actual number. You should definitely confirm this with the SPICE team, but I think passing either 1 or 4 as the default when max_outputs is not set by the user might be the right thing to do?
OK, so lets ask Victor what the spice team would like us to do. Victor: So what do you reckon we should do in our default case where no one has told us the number of outputs and our default is 0; Lukas's newer code calls 'spice_qxl_set_device_info' to set both the path and the number of outputs in one go even if the number of outputs is our default 0; where as the old code that called spice_qxl_set_max_monitors used to avoid calling that if we had 0. I guess Lukas really still wants to set the device path/name - but we don't have a max_outputs to play with. Also; I don't think this is urgent, because modern libvirt's set max_outputs by default; so we should be OK. So, just to clarify again:
* Old code path in QEMU uses spice_qxl_set_max_monitors(), that does allow but ignores a 0 value as it is implemented with MAX(1u, max_monitors)
* Old code path in QEMU also had a small check on max_monitor == 0 and would not call spice_qxl_set_max_monitors() in that case
* New code path in QEMU uses spice_qxl_set_device_info(), that does allow set QXLInstance's max_monitors to 0.
* New code path in QEMU does not check that we have max_monitor == 0.
* RHEL 6 monitor's configuration uses spice's guest agent but that changed in RHEL 7 (this is a client <-> agent message actually!)
I would ask Gerd/Frediano, around different configuration scenarios that might be in QEMU if we should allow max monitors to be 0 and handle that in spice better or adding a guard in spice and checks in QEMU to avoid this to happen based on configuration too.
> Also; I don't think this is urgent, because modern libvirt's set max_outputs by default; so we should be OK.
So we can have a nice tech discussion about it, if needed! Thanks and sorry.
I'll set info to Gerd and ping Frediano.
Propose a patch, see https://lists.freedesktop.org/archives/spice-devel/2019-September/050859.html Thanks; that worked nicely with a postcopy. OK, flipped to rhel/spice *** Bug 1692225 has been marked as a duplicate of this bug. *** 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 (spice bug fix and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2020:4818 |