@Peter, that patch, against 0.13 results in some odd deadlocks; specifically a racey deadlock during signal handling best I can tell.
Attached is an strac'ing of the make process- nothing special, just forking off some children, wait'ing on the results- if you look earlier in the log you'll see the fork/wait working fine (look for SIGCHLD delivery), then see the final one go out to lunch waiting on a futex. At this point it takes me about 4-5 runs to trigger it, but it's proving fairly reproducible on the builds I've been attempting- cmake in particular seems to trigger it rather quickly. ** Attachment added: "strac'ing of a random deadlocked make" https://bugs.launchpad.net/qemu/+bug/668799/+attachment/1747565/+files/make-strace.log -- qemu-arm segfaults executing msgmerge (gettext) https://bugs.launchpad.net/bugs/668799 You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. Status in QEMU: New Bug description: upstream qemu.git revision b45e9c05dbacba8e992f0bffeca04c6379c3ad45 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_jump_recursive2 (tb=0x7ffff4c63540, n=0) at /home/user/git/qemu/exec.c:1333 1333 tb1 = tb1->jmp_next[n1]; (gdb) bt #0 0x00000000600480d4 in tb_reset_jump_recursive2 (tb=0x7ffff4c63540, n=0) at /home/user/git/qemu/exec.c:1333 #1 0x00000000600481c0 in tb_reset_jump_recursive (tb=0x7ffff4c63540) at /home/user/git/qemu/exec.c:1361 #2 0x0000000060048160 in tb_reset_jump_recursive2 (tb=0x7ffff4c634d8, n=0) at /home/user/git/qemu/exec.c:1355 #3 0x00000000600481c0 in tb_reset_jump_recursive (tb=0x7ffff4c634d8) at /home/user/git/qemu/exec.c:1361 #4 0x0000000060048160 in tb_reset_jump_recursive2 (tb=0x7ffff4c63470, n=0) at /home/user/git/qemu/exec.c:1355 #5 0x00000000600481c0 in tb_reset_jump_recursive (tb=0x7ffff4c63470) at /home/user/git/qemu/exec.c:1361 #6 0x0000000060048160 in tb_reset_jump_recursive2 (tb=0x7ffff4c63408, n=1) at /home/user/git/qemu/exec.c:1355 #7 0x00000000600481d1 in tb_reset_jump_recursive (tb=0x7ffff4c63408) at /home/user/git/qemu/exec.c:1362 #8 0x0000000060048160 in tb_reset_jump_recursive2 (tb=0x7ffff4c633a0, n=0) at /home/user/git/qemu/exec.c:1355 #9 0x00000000600481c0 in tb_reset_jump_recursive (tb=0x7ffff4c633a0) at /home/user/git/qemu/exec.c:1361 #10 0x0000000060048160 in tb_reset_jump_recursive2 (tb=0x7ffff4c63338, n=0) at /home/user/git/qemu/exec.c:1355 #11 0x00000000600481c0 in tb_reset_jump_recursive (tb=0x7ffff4c63338) at /home/user/git/qemu/exec.c:1361 #12 0x0000000060048160 in tb_reset_jump_recursive2 (tb=0x7ffff4c632d0, n=0) at /home/user/git/qemu/exec.c:1355 ---Type <return> to continue, or q <return> to quit--- #13 0x00000000600481c0 in tb_reset_jump_recursive (tb=0x7ffff4c632d0) at /home/user/git/qemu/exec.c:1361 #14 0x0000000060048160 in tb_reset_jump_recursive2 (tb=0x7ffff4c63268, n=1) at /home/user/git/qemu/exec.c:1355 #15 0x00000000600481d1 in tb_reset_jump_recursive (tb=0x7ffff4c63268) at /home/user/git/qemu/exec.c:1362 #16 0x0000000060048160 in tb_reset_jump_recursive2 (tb=0x7ffff4c63200, n=0) at /home/user/git/qemu/exec.c:1355 #17 0x00000000600481c0 in tb_reset_jump_recursive (tb=0x7ffff4c63200) at /home/user/git/qemu/exec.c:1361 #18 0x00000000600487c5 in cpu_unlink_tb (env=0x62385400) at /home/user/git/qemu/exec.c:1617 #19 0x00000000600488e8 in cpu_exit (env=0x62385400) at /home/user/git/qemu/exec.c:1662 #20 0x0000000060000798 in start_exclusive () at /home/user/git/qemu/linux-user/main.c:152 #21 0x0000000060000a4b in do_kernel_trap (env=0x62359940) at /home/user/git/qemu/linux-user/main.c:493 #22 0x00000000600023f3 in cpu_loop (env=0x62359940) at /home/user/git/qemu/linux-user/main.c:797 #23 0x00000000600123df in clone_func (arg=0x7ffffffd76e0) at /home/user/git/qemu/linux-user/syscall.c:3561 #24 0x00000000600b382d in start_thread (arg=<value optimized out>) at pthread_create.c:297 #25 0x00000000600f1809 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #26 0x0000000000000000 in ?? () (gdb) Its interesting to see this : #0 0x00000000600480d4 in tb_reset_jump_recursive2 (tb=0x7ffff4c63540, n=0) at /home/user/git/qemu/exec.c:1333 tb1 = 0x0 <<<<<<<<<< tb_next = 0xf4c63610 <<<<<<<<<< ptb = 0x60341c91 <<<<<<<<<< n1 = 0 #1 0x00000000600481c0 in tb_reset_jump_recursive (tb=0x7ffff4c63540) at /home/user/git/qemu/exec.c:1361 No locals. #2 0x0000000060048160 in tb_reset_jump_recursive2 (tb=0x7ffff4c634d8, n=0) at /home/user/git/qemu/exec.c:1355 tb1 = 0x7ffff4c634d8 <<<<<<<<<<< tb_next = 0x7ffff4c63540 <<<<<<<<<<< ptb = 0x7ffff4c63860 <<<<<<<<<<< n1 = 0 #3 0x00000000600481c0 in tb_reset_jump_recursive (tb=0x7ffff4c634d8) at /home/user/git/qemu/exec.c:1361 No locals. #4 0x0000000060048160 in tb_reset_jump_recursive2 (tb=0x7ffff4c63470, n=0) at /home/user/git/qemu/exec.c:1355 tb1 = 0x7ffff4c63470 tb_next = 0x7ffff4c634d8 ptb = 0x7ffff4c63530 n1 = 0 #5 0x00000000600481c0 in tb_reset_jump_recursive (tb=0x7ffff4c63470) at /home/user/git/qemu/exec.c:1361