spice issueshttps://gitlab.freedesktop.org/groups/spice/-/issues2023-12-08T23:12:59Zhttps://gitlab.freedesktop.org/spice/win32/vd_agent/-/issues/24Release a new Version (0.11.0)2023-12-08T23:12:59ZLu KeRelease a new Version (0.11.0)As the last release was over 3 years ago it is time for a new one. There have been several commits since the beginning of 2020 when the last release was.
The current version of spice guest tools still use the vd_agent version 0.8.0. I ...As the last release was over 3 years ago it is time for a new one. There have been several commits since the beginning of 2020 when the last release was.
The current version of spice guest tools still use the vd_agent version 0.8.0. I already asked the spice guest tools when they release an update, but first this sub-module of it should get updated.https://gitlab.freedesktop.org/spice/spice/-/issues/83handle_dev_destroy_surface_wait: condition `msg->surface_id == 0' failed (DoS...2023-11-22T07:38:49ZMarc-André Lureauhandle_dev_destroy_surface_wait: condition `msg->surface_id == 0' failed (DoS via assert failure)```
cat << EOF | ./qemu-system-x86_64 -display none -machine accel=qtest, -m 512M -M \
pc -nodefaults -vga qxl -qtest stdio
outl 0xcf8 0x8000101c
outl 0xcfc 0xc000
outl 0xcf8 0x80001004
outw 0xcfc 0x01
outl 0xc00b 0x01000000
EOF
```
qem...```
cat << EOF | ./qemu-system-x86_64 -display none -machine accel=qtest, -m 512M -M \
pc -nodefaults -vga qxl -qtest stdio
outl 0xcf8 0x8000101c
outl 0xcfc 0xc000
outl 0xcf8 0x80001004
outw 0xcfc 0x01
outl 0xc00b 0x01000000
EOF
```
qemu-system-x86_64: Spice: ../server/red-worker.cpp:367:handle_dev_destroy_surface_wait: condition `msg->surface_id == 0' failed
qxl_spice_destroy_surface_wait() should probably return an error on surface_id != 0.https://gitlab.freedesktop.org/spice/win32/qxl-wddm-dod/-/issues/22Google Chrome has a tearing effect when playing a video containing a bullet s...2023-08-22T03:23:56Zsoul-jhGoogle Chrome has a tearing effect when playing a video containing a bullet screen![Snipaste_2023-08-22_11-18-30](/uploads/1ee94e6b35ecbe6d8f2c9e5a3ccc4f30/Snipaste_2023-08-22_11-18-30.png)
I'm function QxlDod: : PresentDisplayOnly (_In_ CONST DXGKARG_PRESENT_DISPLAYONLY * pPresentDisplayOnly) will be pPresentDisplay...![Snipaste_2023-08-22_11-18-30](/uploads/1ee94e6b35ecbe6d8f2c9e5a3ccc4f30/Snipaste_2023-08-22_11-18-30.png)
I'm function QxlDod: : PresentDisplayOnly (_In_ CONST DXGKARG_PRESENT_DISPLAYONLY * pPresentDisplayOnly) will be pPresentDisplayOnly->pSource save the full-screen data contained into bmp, and find that some pictures have tearshttps://gitlab.freedesktop.org/spice/linux/vd_agent/-/issues/35spice-vdagentd does not work on KDE Plasma2023-11-01T23:05:51ZDUO Labsspice-vdagentd does not work on KDE PlasmaRelated to #27. See also https://bugs.kde.org/show_bug.cgi?id=472622.
On KDE Plasma on X11,`spice-vdagentd` is started automatically when you log in. However, if you try to copy you get `UID mismatch: UID=1001 PID=636 suid=4294967295`.
...Related to #27. See also https://bugs.kde.org/show_bug.cgi?id=472622.
On KDE Plasma on X11,`spice-vdagentd` is started automatically when you log in. However, if you try to copy you get `UID mismatch: UID=1001 PID=636 suid=4294967295`.
`spice-vdagent` (the user daemon) is dead. If you try to start it manually with `spice-vdagent -d -x`, you get
```plaintext
spice-vdagent[17777]: vdagent started
spice-vdagent[17777]: 0xaaab02cf2d30 connected to /run/spice-vdagentd/spice-vdagent-sock
spice-vdagent[17777]: vdagent_display_create: net_wm_name="KWin", has icons=0
spice-vdagent[17777]: display: failed to call GetCurrentState from mutter over DBUS
spice-vdagent[17777]: error message: Cannot invoke method; proxy is for the well-known name org.gnome.Mutter.DisplayConfig without an owner, and proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag
spice-vdagent[17777]: No guest output map, using output index as display id
spice-vdagent[17777]: Sending guest screen resolutions to vdagentd:
spice-vdagent[17777]: display_id=0 - 1280x800+0+0
spice-vdagent[17777]: 0xaaab02cf2d30 sent guest xorg resolution, arg1: 1280, arg2: 800, size 20
spice-vdagent[17777]: 0xaaab02cf2d30 disconnected
```
Interestingly, if I install xdg-desktop-portal-gtk/vte3 and reboot, clipboard sync works as expected. However, if I reboot again after, it stops working again.
All other DEs I have tried work as expectedhttps://gitlab.freedesktop.org/spice/linux/vd_agent/-/issues/34Wayland: On resizing screen scaling resets to 100%2023-08-08T16:31:21ZStuart AxonWayland: On resizing screen scaling resets to 100%Using an Ubuntu 22.04 on arm64v8 guest in Qemu on a Mac via Qemu -
GNOME I had my scaling set to 200%.
When I resize the host window, the guest resolution changes to fill the window, but the scaling is not preserved and resets to 100%....Using an Ubuntu 22.04 on arm64v8 guest in Qemu on a Mac via Qemu -
GNOME I had my scaling set to 200%.
When I resize the host window, the guest resolution changes to fill the window, but the scaling is not preserved and resets to 100%.
This is a bit jarring as everything becomes half the size any time I move the window.https://gitlab.freedesktop.org/spice/linux/vd_agent/-/issues/33vdagent delaying DE startup when using -x option : failed to call GetCurrentS...2023-08-07T12:28:18ZDen Mirasvdagent delaying DE startup when using -x option : failed to call GetCurrentState from mutter over DBUSI'm using Arch linux with Cinnamon and I tried both spice-vdagent versions from the official repo :
```
extra/spice-vdagent 0.22.1-3
Spice agent for Linux guests
```
As well as the git version (there's not much change)
```
yay -Qi s...I'm using Arch linux with Cinnamon and I tried both spice-vdagent versions from the official repo :
```
extra/spice-vdagent 0.22.1-3
Spice agent for Linux guests
```
As well as the git version (there's not much change)
```
yay -Qi spice-vdagent-git
Name : spice-vdagent-git
Version : 0.22.1.3.gaa08162-1
```
I'm able to replicate consistently a problem whenever I have -x in to the CLI :
```
[qacicd@arch ~]$ cat /etc/xdg/autostart/spice-vdagent.desktop
[Desktop Entry]
Name=Spice vdagent
Comment=Agent for Spice guests
Exec=/usr/bin/spice-vdagent -x --file-xfer-save-dir=/home/qacicd/
Terminal=false
Type=Application
Categories=
X-GNOME-Autostart-Phase=WindowManager
NoDisplay=true
X-systemd-skip=true
```
This is what happens during the boot :
![vdagent-cinnamon-mutter-timeout](/uploads/3f9615a3f463b2d37d3e9c28a6c274e1/vdagent-cinnamon-mutter-timeout.webm)
And this is the log :
```
Aug 07 13:21:34 arch spice-vdagent[693]: display: failed to call GetCurrentState from mutter over DBUS
Aug 07 13:21:34 arch spice-vdagent[693]: error message: Cannot invoke method; proxy is for the well-known name org.gnome.Mutter.DisplayConfig without an owner, and proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag
```
This happens until the timeout :
`Aug 07 13:22:03 arch cinnamon-session[437]: WARNING: t+30.15880s: Application 'spice-vdagent.desktop' failed to register before timeout`
As a sidenote, the -x was added trying to have the file transfer working reading stuff on the internet but it's not needed, and **I already have my setup working without that option** but I'm reporting this nevertheless since there's little to no info online.https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/176Incorrect auto resize VM with window when using Plasma KDE Wayland rescaled2024-02-27T06:44:24ZxndpxsIncorrect auto resize VM with window when using Plasma KDE Wayland rescaledI am getting a 3072 x 1410 when a 1080p monitor is rescaled to 125%, and 5120x2160 when rescaled to 150%.
Normal Behavior:
This should keep in a resolution above ~= 1920 x 900 even if a monitor on KDE plasma is rescaled.I am getting a 3072 x 1410 when a 1080p monitor is rescaled to 125%, and 5120x2160 when rescaled to 150%.
Normal Behavior:
This should keep in a resolution above ~= 1920 x 900 even if a monitor on KDE plasma is rescaled.https://gitlab.freedesktop.org/spice/spice/-/issues/82Invalid net test and unresponsive during the first connection2023-07-26T09:35:01ZJosep Maria ViñolasInvalid net test and unresponsive during the first connection## Host environment
- Operating system: Alpine 3.18
- OS/kernel version: Linux 3f0228816600 5.19.0-41-generic #42~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC
- Architecture: x86_64
- QEMU flavor: ...## Host environment
- Operating system: Alpine 3.18
- OS/kernel version: Linux 3f0228816600 5.19.0-41-generic #42~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC
- Architecture: x86_64
- QEMU flavor: qemu-system-x86_64
- QEMU version: QEMU emulator version 8.0.3
- QEMU command line:
/usr/bin/qemu-kvm \
-name guest=feeb770c-fec4-44a4-8f7f-0038572af851,debug-threads=on \
-S \
-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain-79-feeb770c-fec4-44a4-8/master-key.aes"}' \
-machine pc-i440fx-8.0,usb=off,vmport=off,dump-guest-core=off,memory-backend=pc.ram,hpet=off,acpi=on \
-accel kvm \
-cpu host,migratable=on \
-m 500 \
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":524288000}' \
-overcommit mem-lock=off \
-smp 1,sockets=1,dies=1,cores=1,threads=1 \
-uuid 96544c76-ee57-42fe-85cd-d73a6962b8cc \
-no-user-config \
-nodefaults \
-chardev socket,id=charmonitor,fd=43,server=on,wait=off \
-mon chardev=charmonitor,id=monitor,mode=control \
-rtc base=utc,driftfix=slew \
-global kvm-pit.lost_tick_policy=delay \
-no-shutdown \
-global PIIX4_PM.disable_s3=1 \
-global PIIX4_PM.disable_s4=1 \
-boot menu=off,strict=on \
-device '{"driver":"ich9-usb-ehci1","id":"usb","bus":"pci.0","addr":"0x6.0x7"}' \
-device '{"driver":"ich9-usb-uhci1","masterbus":"usb.0","firstport":0,"bus":"pci.0","multifunction":true,"addr":"0x6"}' \
-device '{"driver":"ich9-usb-uhci2","masterbus":"usb.0","firstport":2,"bus":"pci.0","addr":"0x6.0x1"}' \
-device '{"driver":"ich9-usb-uhci3","masterbus":"usb.0","firstport":4,"bus":"pci.0","addr":"0x6.0x2"}' \
-device '{"driver":"ahci","id":"sata0","bus":"pci.0","addr":"0x7"}' \
-device '{"driver":"virtio-serial-pci","id":"virtio-serial0","bus":"pci.0","addr":"0x8"}' \
-blockdev '{"driver":"file","filename":"/isard/templates/3054302f-2fdd-4a9d-8e6a-8d4d0b69285b.qcow2","node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-2-format","read-only":true,"driver":"qcow2","file":"libvirt-2-storage","backing":null}' \
-blockdev '{"driver":"file","filename":"/isard/groups/f9104b4f-1531-43d2-aa42-543bb4df104b.qcow2","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2","file":"libvirt-1-storage","backing":"libvirt-2-format"}' \
-device '{"driver":"ide-hd","bus":"sata0.0","drive":"libvirt-1-format","id":"sata0-0-0","bootindex":1}' \
-netdev '{"type":"tap","fd":"44","vhost":true,"vhostfd":"46","id":"hostnet0"}' \
-device '{"driver":"virtio-net-pci","netdev":"hostnet0","id":"net0","mac":"52:54:00:1a:2f:0d","bus":"pci.0","addr":"0x3"}' \
-netdev '{"type":"tap","fd":"47","vhost":true,"vhostfd":"48","id":"hostnet1"}' \
-device '{"driver":"virtio-net-pci","netdev":"hostnet1","id":"net1","mac":"52:54:00:5f:ee:af","bus":"pci.0","addr":"0x4"}' \
-chardev pty,id=charserial0 \
-device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0","index":0}' \
-chardev socket,id=charchannel0,fd=42,server=on,wait=off \
-device '{"driver":"virtserialport","bus":"virtio-serial0.0","nr":1,"chardev":"charchannel0","id":"channel0","name":"org.qemu.guest_agent.0"}' \
-chardev spicevmc,id=charchannel1,name=vdagent \
-device '{"driver":"virtserialport","bus":"virtio-serial0.0","nr":2,"chardev":"charchannel1","id":"channel1","name":"com.redhat.spice.0"}' \
-device '{"driver":"usb-tablet","id":"input0","bus":"usb.0","port":"1"}' \
-audiodev '{"id":"audio1","driver":"spice"}' \
-spice port=5912,tls-port=5913,addr=0.0.0.0,x509-dir=/etc/pki/libvirt-spice,image-compression=auto_glz,jpeg-wan-compression=always,zlib-glz-wan-compression=always,playback-compression=off,streaming-video=all,seamless-migration=on \
-vnc 0.0.0.0:14,websocket=5704,password=on,audiodev=audio1 \
-device '{"driver":"qxl-vga","id":"video0","max_outputs":1,"ram_size":67108864,"vram_size":67108864,"vram64_size_mb":0,"vgamem_mb":16,"bus":"pci.0","addr":"0x2"}' \
-device '{"driver":"intel-hda","id":"sound0","bus":"pci.0","addr":"0x5"}' \
-device '{"driver":"hda-duplex","id":"sound0-codec0","bus":"sound0.0","cad":0,"audiodev":"audio1"}' \
-chardev spicevmc,id=charredir0,name=usbredir \
-device '{"driver":"usb-redir","chardev":"charredir0","id":"redir0","bus":"usb.0","port":"2"}' \
-chardev spicevmc,id=charredir1,name=usbredir \
-device '{"driver":"usb-redir","chardev":"charredir1","id":"redir1","bus":"usb.0","port":"3"}' \
-device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","addr":"0x9"}' \
-object '{"qom-type":"rng-random","id":"objrng0","filename":"/dev/urandom"}' \
-device '{"driver":"virtio-rng-pci","rng":"objrng0","id":"rng0","bus":"pci.0","addr":"0xa"}' \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on
## Emulated/Virtualized environment
- Operating system: Any
- OS/kernel version: Any
- Architecture: x86_64
## Description of problem
After starting a VM the first connection to spice logs this errors (other connections after the first one stay connected without problems):
```
2023-07-25T16:00:47.497042Z qemu-system-x86_64: warning: Spice: main:0 (0x7f1a3fca5b90): invalid net test stage, ping id 0 test id 0 stage 4
2023-07-25T16:00:47.497170Z qemu-system-x86_64: warning: Spice: main:0 (0x7f1a3fca5b90): invalid net test stage, ping id 0 test id 0 stage 0
```
And after 60 seconds the spice viewer is closed with this error:
```
2023-07-25T16:01:47.384207Z qemu-system-x86_64: warning: Spice: main:0 (0x7f1a3fca5b90): rcc 0x7f1a1968cb60 has been unresponsive for more than 30000 ms, disconnecting
```
## Steps to reproduce
1. Start vm with spice
2. Connect to spice
3. Wait for at least 60 seconds and the viewer will close
4. Connect again and there is no ping logs and the connection stays
## Additional informationhttps://gitlab.freedesktop.org/spice/spice-gtk/-/issues/172openssl_verify: Error in server certificate verification: CA signature digest...2023-07-04T19:47:03Zdarkblaze69openssl_verify: Error in server certificate verification: CA signature digest algorithm too weakWe cannot connect with virt-viewer to old oVirt instance with old CA certificate
`(remote-viewer:12662): Spice-WARNING \*\*: 17:44:19.398: ../spice-gtk-0.42/subprojects/spice-common/common/ssl_verify.c:480:openssl_verify: Error in serve...We cannot connect with virt-viewer to old oVirt instance with old CA certificate
`(remote-viewer:12662): Spice-WARNING \*\*: 17:44:19.398: ../spice-gtk-0.42/subprojects/spice-common/common/ssl_verify.c:480:openssl_verify: Error in server certificate verification: CA signature digest algorithm too weak (num=68:depth0:/O=XXX/CN=XXXXX)`
Is it somehow possible to skip this kind of verification?
OS: Arch Linux
Edit: As it appeared it happened after switching to openssl 3. With building against openssl 1.1.1 it works great.https://gitlab.freedesktop.org/spice/spice-gtk/-/issues/171Duplicate ABIs exported by spice-glib and spice-gtk2023-06-26T11:55:28ZFrediano ZiglioDuplicate ABIs exported by spice-glib and spice-gtkNot causing many problems at the moment but 5 functions are exported and implemented by both `spice-glib` and `spice-gtk` libraries. Specifically:
- `spice_g_signal_connect_object`;
- `spice_util_get_debug`;
- `spice_util_get_version_str...Not causing many problems at the moment but 5 functions are exported and implemented by both `spice-glib` and `spice-gtk` libraries. Specifically:
- `spice_g_signal_connect_object`;
- `spice_util_get_debug`;
- `spice_util_get_version_string`;
- `spice_util_set_debug`;
- `spice_uuid_to_string`.
Most of them will behave properly and as expected however `spice_util_get_debug` and `spice_util_set_debug` save the state in library variables but there are 2 versions of them (one in `spice-glib` and another in `spice-tk`). So potentially you could enable debug with `spice_util_set_debug` but then some debug information won't be printed as they rely on other library `spice_util_get_debug`.
Beside that duplicating exports were not intended. But unfortunately they now are in the ABI and both libraries should continue to export them.
To fix that I would introduce 5 new functions in `spice-glib` (were these functions should be) and have all functions (from both libraries) call the new ones. Also, to avoid future mistakes like that it would be nice to have 2 separate symbols file, one for `spice-glib` and another for `spice-gtk`.https://gitlab.freedesktop.org/spice/usbredir/-/issues/31how to build statically linked binary2023-07-12T08:36:32Zdominic yinhow to build statically linked binaryHi there, I tried to build statically linkd binary fo usbredir, here's my configuration:
```diff
diff --git a/meson.build b/meson.build
index aac9909..8c62d05 100644
--- a/meson.build
+++ b/meson.build
@@ -13,6 +13,7 @@ usbredir_includ...Hi there, I tried to build statically linkd binary fo usbredir, here's my configuration:
```diff
diff --git a/meson.build b/meson.build
index aac9909..8c62d05 100644
--- a/meson.build
+++ b/meson.build
@@ -13,6 +13,7 @@ usbredir_include_root_dir = include_directories('.')
cc_flags = [
'--param=ssp-buffer-size=4',
+ '-static',
]
if host_machine.system() != 'windows'
cc_flags += [ '-D_FORTIFY_SOURCE=2' ]
diff --git a/tools/meson.build b/tools/meson.build
index 764fe0a..1938542 100644
--- a/tools/meson.build
+++ b/tools/meson.build
@@ -14,12 +14,12 @@ else
endif
foreach dep, version : deps
- usbredirect_deps += dependency(dep, version : version)
+ usbredirect_deps += dependency(dep, version : version, static: true)
endforeach
executable('usbredirect',
sources : usbredirect_sources,
- c_args : '-Wno-deprecated-declarations',
+ c_args : '-Wno-deprecated-declarations -static',
install : true,
dependencies : usbredirect_deps)
diff --git a/usbredirhost/meson.build b/usbredirhost/meson.build
index 6d110fe..6c6c3aa 100644
--- a/usbredirhost/meson.build
+++ b/usbredirhost/meson.build
@@ -20,12 +20,13 @@ usbredir_host_link_args = compiler.get_supported_link_arguments([
'-Wl,--version-script=@0@'.format(usbredir_host_map_file),
'-Wl,--no-undefined',
'-Wl,-dead_strip',
+ '-static',
])
libusb = 'libusb-1.0'
libusb_version = '>= 1.0.9'
libusb_required_version = '@0@ @1@'.format(libusb, libusb_version)
-libusb = dependency(libusb, version: libusb_version)
+libusb = dependency(libusb, version: libusb_version, static: true)
usbredir_host_include_directories = [
include_directories('.'),
diff --git a/usbredirparser/meson.build b/usbredirparser/meson.build
index 8718817..1c8267f 100644
--- a/usbredirparser/meson.build
+++ b/usbredirparser/meson.build
@@ -31,6 +31,7 @@ usbredir_parser_link_args = compiler.get_supported_link_arguments([
'-Wl,--version-script=@0@'.format(usbredir_parser_map_file),
'-Wl,--no-undefined',
'-Wl,-dead_strip',
+ '-static',
])
usbredir_parser_include_directories = [
```
build scripts:
```sh
meson . _build -Dfuzzing=disabled -Dtools=enabled \
-Dbin_programs=true \
-Dstatic_runtime=true \
-Ddefault_library=static \
-Dzlib=disabled -Dlzma=disabled -Dlz4=disabled
cd _build/
meson compile
```
bud the output binary was still ynamically linked:
```sh
[root@hci01 _build]# file tools/usbredirect
tools/usbredirect: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=7afab625082e3e2a6bebb9470a34bced5748ff3a, for GNU/Linux 3.2.0, with debug_info, not stripped
[root@hci01 _build]#
[root@hci01 _build]#
[root@hci01 _build]# ldd tools/usbredirect
linux-vdso.so.1 (0x00007fff2e9f0000)
libusb-1.0.so.0 => /usr/lib64/libusb-1.0.so.0 (0x00007f5500fd6000)
libffi.so.8 => /usr/lib64/libffi.so.8 (0x00007f5500fca000)
libmount.so.1 => /usr/lib64/libmount.so.1 (0x00007f5500f6a000)
libc.so.6 => /usr/lib64/libc.so.6 (0x00007f5500d69000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5500ffe000)
libudev.so.1 => /usr/lib64/libudev.so.1 (0x00007f5500d3f000)
libblkid.so.1 => /usr/lib64/libblkid.so.1 (0x00007f5500cea000)
libselinux.so.1 => /usr/lib64/libselinux.so.1 (0x00007f5500cbc000)
libpcre2-8.so.0 => /usr/lib64/libpcre2-8.so.0 (0x00007f5500c22000)
```
so, how to build a complete statically build binary?https://gitlab.freedesktop.org/spice/libcacard/-/issues/15Failure in CI2023-06-12T11:21:58ZFrediano ZiglioFailure in CISometimes the `Fedora memcheck` job is failing. When this happens the job timeout. I saw the issue twice (first time I just restarted thinking it was a system issue)
In one report I found (not sure if it's related)
```
==6256== Thread 3...Sometimes the `Fedora memcheck` job is failing. When this happens the job timeout. I saw the issue twice (first time I just restarted thinking it was a system issue)
In one report I found (not sure if it's related)
```
==6256== Thread 3:
==6256== Conditional jump or move depends on uninitialised value(s)
==6256== at 0x4AB5B28: ??? (in /usr/lib64/libnss3.so)
==6256== by 0x4AB5E65: SECMOD_WaitForAnyTokenEvent (in /usr/lib64/libnss3.so)
==6256== by 0x4862D34: vcard_emul_event_thread (vcard_emul_nss.c:830)
==6256== by 0x4BF6412: ??? (in /usr/lib64/libnspr4.so)
==6256== by 0x4C9912C: start_thread (in /usr/lib64/libc.so.6)
==6256== by 0x4D19D73: clone (in /usr/lib64/libc.so.6)
==6256==
```https://gitlab.freedesktop.org/spice/linux/vd_agent/-/issues/31Is vdagent required for enabling multiple monitors?2023-05-31T22:14:11ZYi XieIs vdagent required for enabling multiple monitors?Hope this is the right place to ask this question. I'm reading the doc [Spice with multiple monitors](https://www.spice-space.org/multiple-monitors.html). Under `Device implementation` section:
> Newer versions of the QXL implementation...Hope this is the right place to ask this question. I'm reading the doc [Spice with multiple monitors](https://www.spice-space.org/multiple-monitors.html). Under `Device implementation` section:
> Newer versions of the QXL implementation (for example, RHEL7 and newer) provide an implementation of the monitors config callback function mentioned above. In broad terms, this callback function updates some internal ROM data within the virtual device and then triggers an interrupt within the guest. The guest driver handles this interrupt and generates a hotplug event. This hotplug event is then handled by the userspace software in the same way a normal physical hotplug event would be handled. This has the advantage of consolidating all of the monitor reconfiguration functionality within a single component (in GNOME3, that component is the window manager) instead of both the vdagent and the desktop environment responsible display configuration in different situations. In the past this duplication has caused minor issues where the desktop environment attempted to apply a saved display configuration that conflicted with the vdagent.
And under `Additional Notes` section:
> Without a spice vdagent running in the guest, it may be possible to enable or disable displays from within the guest (and the spice client will adapt to those changes), but it will not be possible to enable or disable displays from the client.
Does this mean on newer QXL DRM driver vdagent is not required to enable multiple monitors?
However, when I tried in remote-viewer connected to a Debian 11 VM with QEMU flag `-device qxl-vga,max_outputs=4,ram_size_mb=8,vgamem_mb=64,vram_size_mb=128`, only `Display 1` was enabled. All other displays were grayed out. And `modetest` showed that only the first connector was in `connected` status. After installing `spice-vdagent` all displays could be enabled and disabled without any issue.
What does `enable or disable displays from within the guest` mean? Do I need to call some qxl ioctls to switch connectors status from `disconnected` to `connected`?
Thanks in advance!https://gitlab.freedesktop.org/spice/linux/vd_agent/-/issues/30Cant't automatic adjustment of the X-session resolution to the client resolut...2023-04-22T17:07:40Zzkm111Cant't automatic adjustment of the X-session resolution to the client resolution (spice-vdagnet can't receive VDAGENTD_MONITORS_CONFIG.)# Host environment
* OS/kernel version: 5.10.0-60.18.0.50.oe2203.x86_64 #1 SMP Mon Jul 4 17:24:41 CST 2022 x86_64 x86_64 GNU/Linux
* QEMU flavor: qemu-system-x86_64
* QEMU version: QEMU emulator version 6.2.0
* Libvirtd version: libvirtd...# Host environment
* OS/kernel version: 5.10.0-60.18.0.50.oe2203.x86_64 #1 SMP Mon Jul 4 17:24:41 CST 2022 x86_64 x86_64 GNU/Linux
* QEMU flavor: qemu-system-x86_64
* QEMU version: QEMU emulator version 6.2.0
* Libvirtd version: libvirtd (libvirt) 6.2.0
* Spice-server version: 0.15
* Xml partial information:
```
<video>
<<model type='qxl' ram='131072' vram='65536' vgamem='32768' heads='1' primary='yes'/>
<alias name='video0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
```
# Guest environment
* OS/kernel version:5.10.0-amd64-desktop #20.00.42.02-cbg SMP Fri Nov 12 14:13:51 CST 2021 x86_64 GNU/Linux
* spice-vdagent version:0.19.0
* Spice session guest agent: X11
* interrupt about qxl: [qxl interrupt](/uploads/30860088be22541c9e56afba26f73c81/48151272-CD48-450c-BBB4-61E9C344FEFD.png)
* Other info of graphic card:[graphic card info](/uploads/5869b7448882ae073261d4fc8ede4686/AC51013D-00E3-4a86-B29E-E1907F4487A5.png)
# Client environment
* virt-viewer:8.0
* spice-gtk:0.38
# Description of problem
* When change client window size,ensure spice-server receive `VD_AGENT_MONITORS_CONFIG`.But spice-vdagnt can't receive `VD_AGENT_MONITORS_CONFIG` in `daemon_read_complete` (VDAGENTD_CLIPBOARD* is normal),and guest resolution will not change.
* I try to modify spice-server, if pass VDAgentMonitorsConfig message via the vdagent instead of via QXLInterface::client_monitors_config api, then guest resolution will automatic adjustment to client resolution.
[diff reds.cpp](/uploads/511612564b5caa57ac9f4e0e7cfc5e9f/image.png)
* I see client_monitors_config support in https://gitlab.freedesktop.org/spice/spice/-/commit/dc69ef49d08cf835bdb480ee68247232c69ad725 and https://gitlab.freedesktop.org/spice/spice/-/commit/d694739b214853f19ab1a0df27e49b5417946b70.
@alon ,could you offer some advices?https://gitlab.freedesktop.org/spice/spice/-/issues/79qemu-system-x86_64: warning: Spice: ../server/memslot.c:68:memslot_validate_v...2023-03-23T11:41:01Zzkm111qemu-system-x86_64: warning: Spice: ../server/memslot.c:68:memslot_validate_virt: virtual address out of range# Host environment
* OS/kernel version: 5.10.0-60.18.0.50.oe2203.x86_64 #1 SMP Mon Jul 4 17:24:41 CST 2022 x86_64 x86_64 GNU/Linux
* QEMU flavor: qemu-system-x86_64
* QEMU version: QEMU emulator version 5.0.0
* Libvirtd version: libvirtd...# Host environment
* OS/kernel version: 5.10.0-60.18.0.50.oe2203.x86_64 #1 SMP Mon Jul 4 17:24:41 CST 2022 x86_64 x86_64 GNU/Linux
* QEMU flavor: qemu-system-x86_64
* QEMU version: QEMU emulator version 5.0.0
* Libvirtd version: libvirtd (libvirt) 6.2.0
* Spice-server version: 0.15
* Xml partial information:
```
<video>
<model type='qxl' ram='32768' vram='16384' vgamem='8192' heads='1' primary='yes'/>
<alias name='video0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
```
# Description of problem
* When migration with qxl, after migration, connect vm by spice-gtk successfully(all channel success), but blank screen(in spice-gtk,display channe recv no data from spice-server).
* During migration, vm warning:
![7f5c862b733060c954b0a6d890d17d27](/uploads/4212a3fdf12d4e1498468d6ecb114ade/7f5c862b733060c954b0a6d890d17d27.png)
sometimes will warning:
![66ed476a7b13046ac40a4b5962e52827](/uploads/9da0f375497d1b55cb7a0e2d6bcede30/66ed476a7b13046ac40a4b5962e52827.png)
* When migration with vga, everything OK
Xml partial information:
```
<video>
<model type='vga' vram='65536' heads='1' primary='yes'/>
<alias name='video0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
```https://gitlab.freedesktop.org/spice/spice/-/issues/78I noticed that I can't use the button to restart and shut down the computer i...2023-02-05T07:43:17ZdaiajiI noticed that I can't use the button to restart and shut down the computer in the Spice client. Do I need to make some settings?![图片](/uploads/e5e627b7011e14a04baf32ed0fca40f4/图片.png)
Or is it not supported?![图片](/uploads/e5e627b7011e14a04baf32ed0fca40f4/图片.png)
Or is it not supported?https://gitlab.freedesktop.org/spice/spice/-/issues/77Trying to open VM's screen freezes2023-01-30T04:00:24ZNazar MokrynskyiTrying to open VM's screen freezesI have faced this second time, whether through virt-manager or virt-viewer I can't see output of any VM.
Here is what it looks like:
```
> virt-viewer --verbose --debug --connect qemu+ssh://root@192.168.1.99/system HomeAssistant
(virt-vi...I have faced this second time, whether through virt-manager or virt-viewer I can't see output of any VM.
Here is what it looks like:
```
> virt-viewer --verbose --debug --connect qemu+ssh://root@192.168.1.99/system HomeAssistant
(virt-viewer:559209): virt-viewer-DEBUG: 05:50:56.960: connecting ...
(virt-viewer:559209): virt-viewer-DEBUG: 05:50:56.960: Opening connection to libvirt with URI qemu+ssh://root@192.168.1.99/system
Opening connection to libvirt with URI qemu+ssh://root@192.168.1.99/system
(virt-viewer:559209): virt-viewer-DEBUG: 05:50:57.114: initial connect
(virt-viewer:559209): virt-viewer-DEBUG: 05:50:57.114: notebook show status 0x55bd273c2240
(virt-viewer:559209): virt-viewer-DEBUG: 05:50:57.115: virt_viewer_app_set_uuid_string: UUID changed to 877b7e3a-5b49-48ab-867d-130a526d0e39
(virt-viewer:559209): virt-viewer-DEBUG: 05:50:57.115: notebook show status 0x55bd273c2240
(virt-viewer:559209): virt-viewer-DEBUG: 05:50:57.115: Guest HomeAssistant is running, determining display
Guest HomeAssistant is running, determining display
(virt-viewer:559209): virt-viewer-DEBUG: 05:50:57.116: Set connect info: (null),(null),-1,-1,(null),(null),(null),0
(virt-viewer:559209): virt-viewer-DEBUG: 05:50:57.116: Guest HomeAssistant has a spice display
Guest HomeAssistant has a spice display
```
After this it freezes with no CPU usage whatsoever. Any idea what it might be and how to debug further?
UPD: Interestingly, rebooting main OS (on which I have virt-manager/virt-viewer) helps for some reason, I just don't see what it wrong with it prior to reboot.https://gitlab.freedesktop.org/spice/spice/-/issues/76make AF_UNIX sockets on Windows work2023-01-11T12:32:04ZG Kmake AF_UNIX sockets on Windows work
As of today, the qemu spice client does not make local (non IP) connections
https://gitlab.com/qemu-project/qemu/-/issues/1426
It maybe because spice on windows is still skirting around unix sockets.
https://gitlab.freedesktop.org/spi...
As of today, the qemu spice client does not make local (non IP) connections
https://gitlab.com/qemu-project/qemu/-/issues/1426
It maybe because spice on windows is still skirting around unix sockets.
https://gitlab.freedesktop.org/spice/spice/-/blob/master/server/reds.cpp#L3442
```
L2514:reds.cpp:
#ifndef _WIN32
:
#else
return -1;
#endif
```
Since Windows 10 April 2018 Update release build 17134, windows supports unix sockets, so the check should not be to skip if windows, but to skip if windows version less than 17134.
Also, spice should be able to parse windows paths with ```\``` (backslashes)
## Ref
* Since 20171219, Insider Build 17063, Microsoft has added AF_UNIX to windows sockets.
https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/https://gitlab.freedesktop.org/spice/usbredir/-/issues/30Add tests with umockdev2023-01-02T07:32:36ZVictor TosoAdd tests with umockdevWe should add some tests with [umockdev](https://github.com/martinpitt/umockdev) as it is being used in [libusb](https://github.com/libusb/libusb/pull/1078)We should add some tests with [umockdev](https://github.com/martinpitt/umockdev) as it is being used in [libusb](https://github.com/libusb/libusb/pull/1078)https://gitlab.freedesktop.org/spice/usbredir/-/issues/28investigate low transfer speed with usb 3.0 devices2022-11-22T08:32:45ZVictor Tosoinvestigate low transfer speed with usb 3.0 devicesKubeVirt folks were trying to redirect a [MUTT](https://learn.microsoft.com/en-us/windows-hardware/drivers/usbcon/microsoft-usb-test-tool--mutt--devices) device to a Windows guest and benchmark tool said transfer speed was 159 Mbps when ...KubeVirt folks were trying to redirect a [MUTT](https://learn.microsoft.com/en-us/windows-hardware/drivers/usbcon/microsoft-usb-test-tool--mutt--devices) device to a Windows guest and benchmark tool said transfer speed was 159 Mbps when it should be at least 300 Mbps for the device to work.
I'm testing with an external ssd, details in the bottom, using gnome-disk benchmark tool for simplicity. On a Fedora 37 client, host and guest.
`Local`
![Screenshot_from_2022-11-19_09-32-54](/uploads/fd0fd66cacf1547b30abfa683f5f2ee6/Screenshot_from_2022-11-19_09-32-54.png)
`Guest with Spice`
![Screenshot_from_2022-11-19_09-23-38](/uploads/df42295bd9c240fbfe6417a71ef64013/Screenshot_from_2022-11-19_09-23-38.png)
`Guest with usbredirect`
![Screenshot_from_2022-11-19_09-31-54](/uploads/e7e2813cc4de2778f5158c457127ea35/Screenshot_from_2022-11-19_09-31-54.png)
Host configuration used for the redirected device:
```xml
<redirdev bus='usb' type='tcp'>
<source mode='bind' host='localhost' service='5550'/>
<protocol type='raw'/>
<address type='usb' bus='0' port='3'/>
</redirdev>
```
Access time is double with SPICE but 488 times more with usbredirect with the configuration used by KubeVirt. Average write/read is way lower in comparison to when using SPICE too. We will need to check/optimize usbredirect and QEMU's configuration to fix this.
`SSD SanDisk`
```
toso@tapioca ~> sudo lsusb -v -d 0781:55ae
Bus 002 Device 004: ID 0781:55ae SanDisk Corp. Extreme 55AE
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 3.20
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 9
idVendor 0x0781 SanDisk Corp.
idProduct 0x55ae
bcdDevice 30.01
iManufacturer 2 SanDisk
iProduct 3 Extreme 55AE
iSerial 1 323134374E39343031313536
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0079
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 896mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk-Only
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 15
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 15
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 1
bNumEndpoints 4
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 98
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 15
MaxStreams 32
Data-in pipe (0x03)
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 15
MaxStreams 32
Data-out pipe (0x04)
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 15
MaxStreams 32
Status pipe (0x02)
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 0
Command pipe (0x01)
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 0x002a
bNumDeviceCaps 3
USB 2.0 Extension Device Capability:
bLength 7
bDescriptorType 16
bDevCapabilityType 2
bmAttributes 0x0000f41e
BESL Link Power Management (LPM) Supported
BESL value 1024 us
Deep BESL value 61440 us
SuperSpeed USB Device Capability:
bLength 10
bDescriptorType 16
bDevCapabilityType 3
bmAttributes 0x00
wSpeedsSupported 0x000e
Device can operate at Full Speed (12Mbps)
Device can operate at High Speed (480Mbps)
Device can operate at SuperSpeed (5Gbps)
bFunctionalitySupport 1
Lowest fully-functional device speed is Full Speed (12Mbps)
bU1DevExitLat 10 micro seconds
bU2DevExitLat 2047 micro seconds
SuperSpeedPlus USB Device Capability:
bLength 20
bDescriptorType 16
bDevCapabilityType 10
bmAttributes 0x00000001
Sublink Speed Attribute count 1
Sublink Speed ID count 0
wFunctionalitySupport 0x1100
bmSublinkSpeedAttr[0] 0x000a4030
Speed Attribute ID: 0 10Gb/s Symmetric RX SuperSpeedPlus
bmSublinkSpeedAttr[1] 0x000a40b0
Speed Attribute ID: 0 10Gb/s Symmetric TX SuperSpeedPlus
Device Status: 0x000c
(Bus Powered)
U1 Enabled
U2 Enabled
```