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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
KVM: 0.697
permissions: 0.650
vnc: 0.623
performance: 0.611
other: 0.609
device: 0.582
graphic: 0.530
semantic: 0.507
files: 0.501
boot: 0.483
debug: 0.470
PID: 0.461
network: 0.442
socket: 0.427
qemu-1.5.3 segment fault with -vga qxl
execute " qemu-system-x86_64 -enable-kvm -machine accel=kvm:tcg -m 1G -drive file=/dev/sda --full-screen -spice addr=127.0.0.1,port=5900,disable-ticketing -vga qxl " on shell will get segment fault after a few seconds if I don't connect to it with spicec client immediately.
IF excute "spicec -h 127.0.0.1 -p 5900 " immediately !!!! after the qemu-system-x86_64 execution, then no segment fault happens and it runs well.
=====================
GDB output:
root@kali-john:~# gdb /usr/local/bin/qemu-system-x86_64
GNU gdb (GDB) 7.4.1-debian
(gdb) run -enable-kvm -machine accel=kvm:tcg -m 1G -drive file=/dev/sda --full-screen -spice addr=127.0.0.1,port=5900,disable-ticketing -vga qxl
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff3737700 (LWP 14797)]
[New Thread 0x7ffff2d54700 (LWP 14798)]
[New Thread 0x7ffff0fff700 (LWP 14799)]
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff683ad70 in pixman_image_get_data () from /usr/lib/x86_64-linux-gnu/libpixman-1.so.0
(gdb) bt
#0 0x00007ffff683ad70 in pixman_image_get_data () from /usr/lib/x86_64-linux-gnu/libpixman-1.so.0
#1 0x000055555581060a in surface_data (s=0x5555566183a0) at /zh-download/QEMU/qemu-1.5.3/include/ui/console.h:235
#2 0x0000555555818616 in vga_draw_graphic (s=0x55555662c778, full_update=1) at /zh-download/QEMU/qemu-1.5.3/hw/display/vga.c:1788
#3 0x0000555555818c6a in vga_update_display (opaque=0x55555662c778) at /zh-download/QEMU/qemu-1.5.3/hw/display/vga.c:1917
#4 0x000055555580eb15 in qxl_hw_update (opaque=0x55555662bd70) at /zh-download/QEMU/qemu-1.5.3/hw/display/qxl.c:1766
#5 0x00005555557bd6bc in graphic_hw_update (con=0x555556618d00) at ui/console.c:254
#6 0x00005555557c8426 in qemu_spice_display_refresh (ssd=0x55555662c418) at ui/spice-display.c:417
#7 0x000055555580eff0 in display_refresh (dcl=0x55555662c420) at /zh-download/QEMU/qemu-1.5.3/hw/display/qxl.c:1886
#8 0x00005555557c0cb1 in dpy_refresh (s=0x555556618370) at ui/console.c:1436
#9 0x00005555557bd3af in gui_update (opaque=0x555556618370) at ui/console.c:192
#10 0x0000555555797f20 in qemu_run_timers (clock=0x5555565b5a30) at qemu-timer.c:394
#11 0x0000555555798183 in qemu_run_all_timers () at qemu-timer.c:453
#12 0x0000555555760bb7 in main_loop_wait (nonblocking=0) at main-loop.c:470
#13 0x00005555557cd19c in main_loop () at vl.c:2029
#14 0x00005555557d43f2 in main (argc=13, argv=0x7fffffffe2b8, envp=0x7fffffffe328) at vl.c:4419
(gdb)
======================
http://www.spice-space.org/download/releases/spice-0.12.4.tar.bz2
http://www.spice-space.org/download/releases/spice-protocol-0.12.6.tar.bz2
spice compiling
./configure --enable-smartcard=no && make
qemu-1.5.3
compiling
./configure \
--disable-strip --enable-debug \
--target-list=x86_64-softmmu,x86_64-linux-user \
--disable-sdl --audio-drv-list=alsa --disable-vnc --disable-xen --disable-libiscsi \
--disable-seccomp --disable-glusterfs --disable-libssh2 --disable-smartcard-nss \
--disable-usb-redir --disable-brlapi --disable-curl --disable-bsd-user \
\
--enable-kvm --enable-spice --enable-system --enable-guest-agent --enable-vhost-net
root@kali-john:~# qemu-system-x86_64 -version
QEMU emulator version 1.5.3, Copyright (c) 2003-2008 Fabrice Bellard
/usr/local/bin/qemu-system-x86_64 -enable-kvm -machine accel=kvm:tcg -m 1G -drive file=/dev/sda -vga qxl
will give same error
a funny thing:
if I change the "-drive file=/dev/sda" to "-drive file=/dev/sdb" , it will not run into "segment fault".
The different between sda & sdb is as following:
linux is installed on /dev/sda and /dev/sdb is another physical hard driver.
=================================================================
When change /dev/sda to /dev/sdb , it works well as following:
(gdb) run -enable-kvm -machine accel=kvm:tcg -m 1G -drive file=/dev/sdb --full-screen -spice addr=127.0.0.1,port=5900,disable-ticketing -vga qxl
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /usr/local/bin/qemu-system-x86_64 -enable-kvm -machine accel=kvm:tcg -m 1G -drive file=/dev/sdb --full-screen -spice addr=127.0.0.1,port=5900,disable-ticketing -vga qxl
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff3737700 (LWP 15056)]
[New Thread 0x7ffff2d54700 (LWP 15057)]
[New Thread 0x7ffff0fff700 (LWP 15058)]
[Thread 0x7ffff3737700 (LWP 15056) exited]
--- No segment fault error any more !!
It will run into segment fault with /dev/sda but without -vga qxl
The qemu & the Host linux OS is iinstalled on /dev/sda
sorry to mistake
========
The truth is that
t will NOT run into segment fault with /dev/sda but without -vga qxl
The qemu & the Host linux OS is iinstalled on /dev/sda
Triaging old bug tickets ... QEMU 1.5 is quite old already - can you still reproduce the crash with the latest version of QEMU?
[Expired for QEMU because there has been no activity for 60 days.]
|