qemu 2.7.0 receives SIGABRT in qemu_coroutine_enter()
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
I've been experiencing frequent SIGABRTs (in addition to segfaults in #1671876) lately with qemu 2.7.0 running Ubuntu 16.04 guests. The crash usually happens in qemu_coroutine_
Here is one stack trace I obtained
-------
(gdb) bt
#0 0x00007fd7cc676067 in __GI_raise (sig=sig@entry=6) at ../nptl/
#1 0x00007fd7cc677448 in __GI_abort () at abort.c:89
#2 0x0000556aed247b6c in qemu_coroutine_
#3 0x0000556aed247e55 in qemu_co_
#4 0x0000556aed2479a9 in qemu_coroutine_
#5 0x0000556aed247e74 in qemu_co_
#6 0x0000556aed2479a9 in qemu_coroutine_
#7 0x0000556aed247e74 in qemu_co_
#8 0x0000556aed2479a9 in qemu_coroutine_
#9 0x0000556aed247e74 in qemu_co_
#10 0x0000556aed2479a9 in qemu_coroutine_
#11 0x0000556aed247e74 in qemu_co_
#12 0x0000556aed2479a9 in qemu_coroutine_
#13 0x0000556aed247e74 in qemu_co_
#14 0x0000556aed2479a9 in qemu_coroutine_
#15 0x0000556aed247fa0 in qemu_co_enter_next (queue=
#16 0x0000556aed1e6060 in timer_cb (blk=0x556aef34
#17 0x0000556aed1a3615 in timerlist_
#18 0x0000556aed1a3679 in timerlistgroup_
#19 0x0000556aed1a3f47 in aio_dispatch (ctx=ctx@
#20 0x0000556aed1a40e8 in aio_poll (ctx=0x556af073
#21 0x0000556aed005c79 in iothread_run (opaque=
#22 0x00007fd7cc9f40a4 in start_thread (arg=0x7fd7aaff
#23 0x00007fd7cc72962d in clone () at ../sysdeps/
-------
The code crashes here
-------
void qemu_coroutine_
{
Coroutine *self = qemu_coroutine_
CoroutineAction ret;
trace_
if (co->caller) {
abort(); <--- Code aborts here
}
[...]
}
-------
Debugging further we see:
-------
(gdb) frame 2
#2 0x0000556aed247b6c in qemu_coroutine_
113 /build/
(gdb) print *co
$1 = {entry = 0x7fd793e95a58, entry_arg = 0x1, caller = 0x7fd793e95a38, pool_next = {sle_next = 0x10}, co_queue_wakeup = {sqh_first = 0x7fd6ebbd2000, sqh_last = 0x1000}, co_queue_next = {
sqe_next = 0x7fd6ebbd1000}}
(gdb) print *co->caller
$2 = {entry = 0x400400000001, entry_arg = 0xc546a20, caller = 0x0, pool_next = {sle_next = 0x0}, co_queue_wakeup = {sqh_first = 0x0, sqh_last = 0xffffea00061f7
(gdb) frame 4
#4 0x0000556aed2479a9 in qemu_coroutine_
119 in /build/
(gdb) print *co
$3 = {entry = 0xc00000053, entry_arg = 0x7fd500000001, caller = 0x7fd574300d88, pool_next = {sle_next = 0x7fd574300d90}, co_queue_wakeup = {sqh_first = 0x7fd6ebbd1000, sqh_last = 0x7fd574300e00},
co_queue_next = {sqe_next = 0xc546a20}}
(gdb) print *co->caller
$4 = {entry = 0x230095a58, entry_arg = 0x230095a38, caller = 0x187dd2000, pool_next = {sle_next = 0x187dd1000}, co_queue_wakeup = {sqh_first = 0x187dd0000, sqh_last = 0x187dcf000}, co_queue_next = {
sqe_next = 0x184970000}}
-------
The question is, why did qemu_coroutine_
Another stack trace:
------- ------- ------- ------- ------- ------- ------- ------- ------- ------- ---- sysdeps/ unix/sysv/ linux/raise. c:56 enter (co=0x7f2cd6a00940) at /build/ pb-qemu- pssKUp/ pb-qemu- 2.7.0/util/ qemu-coroutine. c:113 queue_run_ restart (co=0x7f2cd6a00880) at /build/ pb-qemu- pssKUp/ pb-qemu- 2.7.0/util/ qemu-coroutine- lock.c: 60 enter (co=0x7f2cd6a00880) at /build/ pb-qemu- pssKUp/ pb-qemu- 2.7.0/util/ qemu-coroutine. c:119 queue_run_ restart (co=0x7f2cee202b00) at /build/ pb-qemu- pssKUp/ pb-qemu- 2.7.0/util/ qemu-coroutine- lock.c: 60 enter (co=0x7f2cee202b00) at /build/ pb-qemu- pssKUp/ pb-qemu- 2.7.0/util/ qemu-coroutine. c:119 queue_run_ restart (co=0x7f2cee2141d0) at /build/ pb-qemu- pssKUp/ pb-qemu- 2.7.0/util/ qemu-coroutine- lock.c: 60 enter (co=0x7f2cee2141d0) at /build/ pb-qemu- pssKUp/ pb-qemu- 2.7.0/util/ qemu-coroutine. c:119 queue_run_ restart (co=0x7f2cf300b370) at /build/ pb-qemu- pssKUp/ pb-qemu- 2.7.0/util/ qemu-coroutine- lock.c: 60 enter (co=0x7f2cf300b370) at /build/ pb-qemu- pssKUp/ pb-qemu- 2.7.0/util/ qemu-coroutine. c:119 queue_run_ restart (co=0x7f2cf1a03560) at /build/ pb-qemu- pssKUp/ pb-qemu- 2.7.0/util/ qemu-coroutine- lock.c: 60 enter (co=0x7f2cf1a03560) at /build/ pb-qemu- pssKUp/ pb-qemu- 2.7.0/util/ qemu-coroutine. c:119 queue_run_ restart (co=0x7f2cf3e15ba0) at /build/ pb-qemu- pssKUp/ pb-qemu- 2.7.0/util/ qemu-coroutine- lock.c: 60 enter (co=0x7f2cf3e15ba0) at /build/ pb-qemu- pssKUp/ pb-qemu- 2.7.0/util/ qemu-coroutine. c:119 queue_run_ restart (co=0x7f2ce80087f0) at /build/ pb-qemu- pssKUp/ pb-qemu- 2.7.0/util/ qemu-coroutine- lock.c: 60 enter (co=0x7f2ce80087f0) at /build/ pb-qemu- pssKUp/ pb-qemu- 2.7.0/util/ qemu-coroutine. c:119 queue_run_ restart (co=0x7f2cee20d9c0) at /build/ pb-qemu- pssKUp/ pb-qemu- 2.7.0/util/ qemu-coroutine- lock.c: 60 enter (co=0x7f2cee20d9c0) at /build/ pb-qemu- pssKUp/ pb-qemu- 2.7.0/util/ qemu-coroutine. c:119 queue_run_ restart (co=0x7f2ceff04850) at /build/ pb-qemu- pssKUp/ pb-qemu- 2.7.0/util/ qemu-coroutine- lock.c: 60 enter (co=0x7f2ceff04850) at /build/ pb-qemu- pssKUp/ pb-qemu- 2.7.0/util/ qemu-coroutine. c:119 queue_run_ restart (co=0x7f2cf21061c0) at /build/ pb-qemu- pssKUp/ pb-qemu- 2.7.0/util/ qemu-coroutine- lock.c: 60 enter (co=0x7f2cf21061c0) at /build/ pb-qemu- pssKUp/ pb-qemu- 2.7.0/util/ qemu-coroutine. c:119 queue_run_ restart (co=0x7f2cf2105c00) at /b...
(gdb) bt
#0 0x00007f2f34690067 in __GI_raise (sig=sig@entry=6) at ../nptl/
#1 0x00007f2f34691448 in __GI_abort () at abort.c:89
#2 0x00005629b8260b6c in qemu_coroutine_
#3 0x00005629b8260e74 in qemu_co_
#4 0x00005629b82609a9 in qemu_coroutine_
#5 0x00005629b8260e74 in qemu_co_
#6 0x00005629b82609a9 in qemu_coroutine_
#7 0x00005629b8260e74 in qemu_co_
#8 0x00005629b82609a9 in qemu_coroutine_
#9 0x00005629b8260e74 in qemu_co_
#10 0x00005629b82609a9 in qemu_coroutine_
#11 0x00005629b8260e74 in qemu_co_
#12 0x00005629b82609a9 in qemu_coroutine_
#13 0x00005629b8260e74 in qemu_co_
#14 0x00005629b82609a9 in qemu_coroutine_
#15 0x00005629b8260e74 in qemu_co_
#16 0x00005629b82609a9 in qemu_coroutine_
#17 0x00005629b8260e74 in qemu_co_
#18 0x00005629b82609a9 in qemu_coroutine_
#19 0x00005629b8260e74 in qemu_co_
#20 0x00005629b82609a9 in qemu_coroutine_
#21 0x00005629b8260e74 in qemu_co_
#22 0x00005629b82609a9 in qemu_coroutine_
#23 0x00005629b8260e74 in qemu_co_