typing string via VNC is unreliable
Bug #1802465 reported by
Zhaocong
This bug affects 3 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Expired
|
Undecided
|
Unassigned |
Bug Description
QEMU version is 3.0.0
# Description
The problem is that, when typing string through VNC, it can be unreliable -- sometimes some key strokes get skipped, sometimes get swapped, sometimes get repeated. There's no problem when typing through VNC on physical hardware.
# Steps to reproduce
1. Launch virtual machine by:
qemu-kvm -display vnc=:1 -m 2048 opensuse-
2. Connect to VNC by:
vncviewer -Shared :5901
3. Simulate a series of key strokes by "vncdotool" [1]:
vncdotool -s 127.0.0.1::5901 typefile strings_
4. Usually after a few hundred keys are typed, something goes wrong.
I attached a screenshot that it mistypes " hello" to "h ello".
To post a comment you must log in.
In my case the problem is quite subtle.
Nearly every time we send the key strokes, the guest os keeps receiving space or tab or new line character. And ending part of the text is truncated, where the truncated part is fixed depending on the keystrokes we are sending.
Additionally, the keystrokes are mis-ordered at a higher frequency than 1 out of a few hundreds as you said.
In brief,
- Repeatedly receiving space, tab or new line character as ending
- Truncation regarding ending part of key strokes
- characters are mis-ordered, lost, repeated
A question is, how can you make character transaction faster with vncdotool? In my case, vncdotool is typing fairly slow.
I found this debian bug report quite useful, what do you think? https:/ /bugs.debian. org/cgi- bin/bugreport. cgi?bug= 758881
Re-producing procedures
---
I re-produced the problem in a slightly different way since your method seems not working for me.
> qemu-img create tumbleweed.img 40G .img,if= virtio -boot d -cdrom openSUSE- Tumbleweed- DVD-x86_ 64-Snapshot2018 1119-Media. iso -m 2048 --enable-kvm -display vnc=:1 .img,if= virtio -m 4G --enable-kvm -display vnc=:1
> qemu-system-x86_64 -drive file=tumbleweed
> qemu-system-x86_64 -drive file=tumbleweed