qemu-arm segfaults executing msgmerge (gettext)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Linaro QEMU |
Fix Released
|
Undecided
|
Unassigned | ||
QEMU |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
upstream qemu.git revision b45e9c05dbacba8
Starting program: /usr/bin/qemu-arm msgmerge-static ar.po anjuta.pot
[Thread debugging using libthread_db enabled]
[New Thread 0x7ffff4bc3ff0 (LWP 26108)]
[New Thread 0x7ffff4b8aff0 (LWP 26109)]
[New Thread 0x7ffff4b51ff0 (LWP 26110)]
[New Thread 0x7ffff4b18ff0 (LWP 26111)]
[New Thread 0x7ffff4adfff0 (LWP 26112)]
[New Thread 0x7ffff4aa6ff0 (LWP 26113)]
[New Thread 0x7ffff4a6dff0 (LWP 26114)]
[New Thread 0x7ffff4a34ff0 (LWP 26115)]
[New Thread 0x7ffff49fbff0 (LWP 26116)]
[New Thread 0x7ffff49c2ff0 (LWP 26117)]
[New Thread 0x7ffff4989ff0 (LWP 26118)]
[New Thread 0x7ffff4950ff0 (LWP 26119)]
[New Thread 0x7ffff4917ff0 (LWP 26120)]
[New Thread 0x7ffff48deff0 (LWP 26121)]
[New Thread 0x7ffff48a5ff0 (LWP 26122)]
[New Thread 0x7ffff486cff0 (LWP 26123)]
[New Thread 0x7ffff4833ff0 (LWP 26124)]
[New Thread 0x7ffff47faff0 (LWP 26125)]
[New Thread 0x7ffff47c1ff0 (LWP 26126)]
[New Thread 0x7ffff4788ff0 (LWP 26127)]
[New Thread 0x7ffff474fff0 (LWP 26128)]
[New Thread 0x7ffff4716ff0 (LWP 26129)]
[New Thread 0x7ffff46ddff0 (LWP 26130)]
.......
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff4aa6ff0 (LWP 26113)]
0x00000000600480d4 in tb_reset_
at /home/user/
1333 tb1 = tb1->jmp_next[n1];
(gdb) bt
#0 0x00000000600480d4 in tb_reset_
at /home/user/
#1 0x00000000600481c0 in tb_reset_
at /home/user/
#2 0x0000000060048160 in tb_reset_
at /home/user/
#3 0x00000000600481c0 in tb_reset_
at /home/user/
#4 0x0000000060048160 in tb_reset_
at /home/user/
#5 0x00000000600481c0 in tb_reset_
at /home/user/
#6 0x0000000060048160 in tb_reset_
at /home/user/
#7 0x00000000600481d1 in tb_reset_
at /home/user/
#8 0x0000000060048160 in tb_reset_
at /home/user/
#9 0x00000000600481c0 in tb_reset_
at /home/user/
#10 0x0000000060048160 in tb_reset_
at /home/user/
#11 0x00000000600481c0 in tb_reset_
at /home/user/
#12 0x0000000060048160 in tb_reset_
at /home/user/
---Type <return> to continue, or q <return> to quit---
#13 0x00000000600481c0 in tb_reset_
at /home/user/
#14 0x0000000060048160 in tb_reset_
at /home/user/
#15 0x00000000600481d1 in tb_reset_
at /home/user/
#16 0x0000000060048160 in tb_reset_
at /home/user/
#17 0x00000000600481c0 in tb_reset_
at /home/user/
#18 0x00000000600487c5 in cpu_unlink_tb (env=0x62385400) at /home/user/
#19 0x00000000600488e8 in cpu_exit (env=0x62385400) at /home/user/
#20 0x0000000060000798 in start_exclusive () at /home/user/
#21 0x0000000060000a4b in do_kernel_trap (env=0x62359940)
at /home/user/
#22 0x00000000600023f3 in cpu_loop (env=0x62359940) at /home/user/
#23 0x00000000600123df in clone_func (arg=0x7ffffffd
at /home/user/
#24 0x00000000600b382d in start_thread (arg=<value optimized out>) at pthread_
#25 0x00000000600f1809 in clone () at ../sysdeps/
#26 0x0000000000000000 in ?? ()
(gdb)
Its interesting to see this :
#0 0x00000000600480d4 in tb_reset_
at /home/user/
tb1 = 0x0 <<<<<<<<<<
tb_next = 0xf4c63610 <<<<<<<<<<
ptb = 0x60341c91 <<<<<<<<<<
n1 = 0
#1 0x00000000600481c0 in tb_reset_
at /home/user/
No locals.
#2 0x0000000060048160 in tb_reset_
at /home/user/
tb1 = 0x7ffff4c634d8 <<<<<<<<<<<
tb_next = 0x7ffff4c63540 <<<<<<<<<<<
ptb = 0x7ffff4c63860 <<<<<<<<<<<
n1 = 0
#3 0x00000000600481c0 in tb_reset_
at /home/user/
No locals.
#4 0x0000000060048160 in tb_reset_
at /home/user/
tb1 = 0x7ffff4c63470
tb_next = 0x7ffff4c634d8
ptb = 0x7ffff4c63530
n1 = 0
#5 0x00000000600481c0 in tb_reset_
at /home/user/
Changed in qemu-linaro: | |
status: | New → In Progress |
Changed in qemu-linaro: | |
status: | In Progress → Fix Committed |
Changed in qemu-linaro: | |
status: | Fix Committed → Fix Released |
Changed in qemu: | |
status: | Fix Committed → Fix Released |
Changed in qemu-linaro: | |
milestone: | none → 2013.06 |
We always see this in :
exec.c1662:
void cpu_exit(CPUState *env) unlink_ tb(env) ; >exit_request = 1;
{
cpu_
env-
}
A quick test with the statement cpu_unlink_tb(env) removed passed the test.