latest qemu.git master -> qemu-system-x86_64 crashes when issuing screendump command over monitor
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Found the problem during sanity test of the 'next' branch
git commit ID is e2ec3f976803b36
For reference, kernel is upstream kvm.git
git commit ID is 31880c37c11e28c
Steps to reproduce:
Start qemu, reference cmd:
MALLOC_PERTURB_=1 /usr/local/
-S \
-name 'vm1' \
-nodefaults \
-chardev socket,
-mon chardev=
-chardev socket,
-mon chardev=
-chardev socket,
-device isa-serial,
-chardev socket,
-device isa-debugcon,
-device ich9-usb-
-drive file='/
-device virtio-
-device virtio-
-netdev tap,id=
-m 2048 \
-smp 2,maxcpus=
-cpu 'Opteron_G3' \
-M pc \
-drive file='/
-drive file='/
-device usb-tablet,
-kernel '/usr/local/
-append 'ks=cdrom nicdelay=60 console=
-initrd '/usr/local/
-vnc :0 \
-vga std \
-rtc base=utc,
-boot order=cdn,
-enable-kvm
2) Connect to the monitor
nc -U /tmp/monitor-
3) Unpause the VM
[root@virtblade03 autotest]# nc -U /tmp/monitor-
QEMU 1.4.50 monitor - type 'help' for more information
(qemu) cont
cont
4) Ask for a screendump
(qemu) screendump abc.ppm
screendump abc.ppm
At this point, qemu crashes.
Program terminated with signal 11, Segmentation fault.
#0 pixman_
834 if (image->type == BITS)
(gdb) bt
#0 pixman_
#1 0x00007f0b44158374 in ppm_save (filename=
at /usr/local/
#2 0x00007f0b4410f18e in qmp_screendump (filename=
#3 0x00007f0b43ffc77a in hmp_screen_dump (mon=0x7f0b4653
#4 0x00007f0b4418c889 in handle_user_command (mon=mon@
#5 0x00007f0b4418cc0b in monitor_command_cb (mon=0x7f0b4653
at /usr/local/
#6 0x00007f0b440fe69b in readline_
#7 0x00007f0b4418c954 in monitor_read (opaque=<optimized out>, buf=<optimized out>, size=<optimized out>) at /usr/local/
#8 0x00007f0b440ec029 in qemu_chr_be_write (len=<optimized out>, buf=0x7fff41c08400 "\n", s=0x7f0b46506c00) at qemu-char.c:187
#9 tcp_chr_read (chan=<optimized out>, cond=<optimized out>, opaque=
#10 0x00007f0b43622a75 in g_main_dispatch (context=
#11 g_main_
#12 0x00007f0b440c4c78 in glib_pollfds_poll () at main-loop.c:187
#13 os_host_
#14 main_loop_wait (nonblocking=
#15 0x00007f0b43faab55 in main_loop () at vl.c:2043
#16 main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at vl.c:4432
if (image->type == BITS)
image=
The pointer to the image is invalid. Need to investigate why.
Changed in qemu: | |
status: | Fix Committed → Fix Released |
Lucas Meneghel Rodrigues <email address hidden> writes:
> Public bug reported: 0c70d9ae2ba1385 2fa5d11665 (tag 1202-ge2ec3f9)
>
> Found the problem during sanity test of the 'next' branch
>
> git commit ID is e2ec3f976803b36
> v1.4.0-
Can you bisect? I can't reproduce with the following:
[12:04 PM] anthony🐵 titi:~/build/qemu$ echo -e 'cont\nscreendump abc.ppm' | x86_64- softmmu/ qemu-system- x86_64 -monitor stdio -vga std -S -vnc :0 -enable-kvm -nodefaults
Which appears to be all of the obvious options in your command line that
would be relevant here. I notice that you're on
Regards,
Anthony Liguori
> b81c70757e38392 b42e695dc6 (tag g31880c3) autotest/ tests/virt/ qemu/qemu \ id=hmp_ id_hmp1, path=/tmp/ monitor- hmp1-20130415- 120337- CX4dw84y, server, nowait \ hmp_id_ hmp1,mode= readline \ id=qmp_ id_qmp1, path=/tmp/ monitor- qmp1-20130415- 120337- CX4dw84y, server, nowait \ qmp_id_ qmp1,mode= control \ id=serial_ id_serial1, path=/tmp/ serial- serial1- 20130415- 120337- CX4dw84y, server, nowait \ chardev= serial_ id_serial1 \ id=seabioslog_ id_20130415- 120337- CX4dw84y, path=/tmp/ seabios- 20130415- 120337- CX4dw84y, server, nowait \ chardev= seabioslog_ id_20130415- 120337- CX4dw84y, iobase= 0x402 \ uhci1,id= usb1 \ usr/local/ autotest/ tests/virt/ shared/ data/images/ rhel63- 64.qcow2' ,if=none, id=virtio0 \ blk-pci, drive=virtio0, bootindex= 1 \ net-pci, netdev= id7t6ont, mac='9a: 16:17:18: 19:1a', id='idQ3SyRX' \ id7t6ont, vhost=on, fd=24 \ 2,cores= 1,threads= 1,sockets= 2 \ usr/local/ autotest/ tests/virt/ shared/ data/isos/ linux/RHEL- 6.3-x86_ 64-DVD. iso',media= cdrom,index= 2 \ usr/local/ autotest/ tests/virt/ shared/ data/images/ rhel63- 64/ks.iso' ,media= cdrom,index= 1 \ id=usb- tablet1, bus=usb1. 0,port= 1 \ autotest/ tests/virt/ shared/ data/images/ rhel63- 64/vmlinuz' \ ttyS0,115200 console=tty0' \ autotest/ tests/virt/ shared/ data/images/ rhel63- 64/initrd. img' \ clock=host, driftfix= none \ once=d, menu=off \ hmp1-20130415- 120337- CX4dw84y, server, nowait hmp1-20130415- 120943- D6zKUQFO image_get_ width (image=0x101010...
> For reference, kernel is upstream kvm.git
>
> git commit ID is 31880c37c11e28c
> v3.8-12524-
>
> Steps to reproduce:
>
> Start qemu, reference cmd:
>
> MALLOC_PERTURB_=1 /usr/local/
> -S \
> -name 'vm1' \
> -nodefaults \
> -chardev socket,
> -mon chardev=
> -chardev socket,
> -mon chardev=
> -chardev socket,
> -device isa-serial,
> -chardev socket,
> -device isa-debugcon,
> -device ich9-usb-
> -drive file='/
> -device virtio-
> -device virtio-
> -netdev tap,id=
> -m 2048 \
> -smp 2,maxcpus=
> -cpu 'Opteron_G3' \
> -M pc \
> -drive file='/
> -drive file='/
> -device usb-tablet,
> -kernel '/usr/local/
> -append 'ks=cdrom nicdelay=60 console=
> -initrd '/usr/local/
> -vnc :0 \
> -vga std \
> -rtc base=utc,
> -boot order=cdn,
> -enable-kvm
>
> 2) Connect to the monitor
>
> nc -U /tmp/monitor-
>
> 3) Unpause the VM
>
> [root@virtblade03 autotest]# nc -U /tmp/monitor-
> QEMU 1.4.50 monitor - type 'help' for more information
> (qemu) cont
> cont
>
> 4) Ask for a screendump
>
> (qemu) screendump abc.ppm
> screendump abc.ppm
>
> At this point, qemu crashes.
>
> Program terminated with signal 11, Segmentation fault.
> #0 pixman_