blob: c6aa363649e0d2dd9779d044c66364879c7819cc (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
graphic: 0.864
other: 0.706
instruction: 0.696
mistranslation: 0.657
semantic: 0.572
device: 0.552
network: 0.456
vnc: 0.398
socket: 0.369
boot: 0.211
assembly: 0.150
KVM: 0.102
pasting into ppc64 serial console kills qemu
- run qemu-system-ppc64
- when X window appears press Ctrl+Alt+3
- paste any text longer than 16 characters
qemu-system-ppc64: /home/abuild/rpmbuild/BUILD/qemu-2.6.1/hw/char/spapr_vty.c:40: vty_receive: Assertion `(dev->in - dev->out) < 16' failed.
Aborted (core dumped)
Broken in SUSE Leap 42.2 and git 4eb28abd52d48657cff6ff45e8dbbbefe4dbb414
What user interface are you using? VNC? SDL? GTK?
This is gtk interface.
However, the function on line 40 os spapr_vty.c looks really insane.
It asserts that it is not given more data to input in a ring buffer than is size of the buffer and then stuffs all the data in regardless of the amount of data already present.
It should probably loop or one of its callers but I did not find a decent comparable piece of code to cut and paste whatever callbacks are needed for the other side to consume the bytes.
OK, seems like you need to compile QEMU with CONFIG_VTE enabled (i.e. with the vte-devel packages installed before running configure) to get copy-n-paste support in the GTK interface, that's why I was initially not able to reproduce this issue.
Anyway, now I can trigger the assert(), too, and I've suggested a patch here:
http://marc.info/?<email address hidden>
FWIW, the crash should be fixed by this commit here:
http://git.qemu.org/?p=qemu.git;a=commitdiff;h=7bacfd7f7289192c83330
(but we still need to fix the gtk side, too, to only send as much characters at once as the receiving side can take)
|