On Wed, Aug 26, 2015 at 10:08:26AM +0200, Christian Rößner wrote: > > > Am 25.08.2015 um 08:02 schrieb Christian Rößner <[email protected]>: > > > > Hello, > > > > I wrote this mail to the qemu-discuss mailing list, but today I am unsure, > > if I chose the right list. So I copy and paste this mail here in hope > > someone can respond :-) > > > > I have reproducable problems with some code in qemu-coroutine.c: > > > > > > void qemu_coroutine_enter(Coroutine *co, void *opaque) > > { > > Coroutine *self = qemu_coroutine_self(); > > CoroutineAction ret; > > > > trace_qemu_coroutine_enter(self, co, opaque); > > > > if (co->caller) { > > fprintf(stderr, "Co-routine re-entered recursively\n"); > > abort(); <————————— This one triggers 4 or 5 out of ten tests to > > use the blockcommit feature > > } > > Caught Co-routine SIGABRT while a blockcommit operation was running. > > Recompiled with debugging symbols and I connected gdb to the process: > > (gdb) bt > #0 0x00007f4b6e6ccb8e in raise () from /lib64/libc.so.6 > #1 0x00007f4b6e6ce391 in abort () from /lib64/libc.so.6 > #2 0x0000555a316a8c39 in qemu_coroutine_enter (co=0x555a34651a50, opaque=0x0) > at > /var/tmp/portage/app-emulation/qemu-2.4.0/work/qemu-2.4.0/qemu-coroutine.c:111 > #3 0x0000555a316a8eda in qemu_co_queue_run_restart > (co=co@entry=0x555a33d271b0) > at > /var/tmp/portage/app-emulation/qemu-2.4.0/work/qemu-2.4.0/qemu-coroutine-lock.c:59 > #4 0x0000555a316a8b53 in qemu_coroutine_enter (co=0x555a33d271b0, > opaque=<optimized out>) > at > /var/tmp/portage/app-emulation/qemu-2.4.0/work/qemu-2.4.0/qemu-coroutine.c:118 > #5 0x0000555a316e3adf in bdrv_co_aio_rw_vector (bs=bs@entry=0x555a336a6be0, > sector_num=sector_num@entry=113551488, qiov=qiov@entry=0x555a3367d2c8, > nb_sectors=nb_sectors@entry=15360, flags=flags@entry=(unknown: 0), > cb=cb@entry=0x555a316e1fe0 <mirror_read_complete>, opaque=0x555a3367d2c0, > is_write=is_write@entry=false) > at > /var/tmp/portage/app-emulation/qemu-2.4.0/work/qemu-2.4.0/block/io.c:2142 > #6 0x0000555a316e4b1e in bdrv_aio_readv (bs=bs@entry=0x555a336a6be0, > sector_num=sector_num@entry=113551488, qiov=qiov@entry=0x555a3367d2c8, > nb_sectors=nb_sectors@entry=15360, cb=cb@entry=0x555a316e1fe0 > <mirror_read_complete>, > opaque=opaque@entry=0x555a3367d2c0) > at > /var/tmp/portage/app-emulation/qemu-2.4.0/work/qemu-2.4.0/block/io.c:1744 > #7 0x0000555a316e2ccf in mirror_iteration (s=0x555a34a0c250) > at > /var/tmp/portage/app-emulation/qemu-2.4.0/work/qemu-2.4.0/block/mirror.c:302 > #8 mirror_run (opaque=0x555a34a0c250) > at > /var/tmp/portage/app-emulation/qemu-2.4.0/work/qemu-2.4.0/block/mirror.c:512 > #9 0x0000555a316a9a5a in coroutine_trampoline (i0=<optimized out>, > i1=<optimized out>) > at > /var/tmp/portage/app-emulation/qemu-2.4.0/work/qemu-2.4.0/coroutine-ucontext.c:80 > #10 0x00007f4b6e6df4a0 in ?? () from /lib64/libc.so.6 > #11 0x00007ffe67b71840 in ?? () > #12 0x0000000000000000 in ?? () > (gdb) > > Please, could someone reply to me :-) > > Thanks > > Christian
Hi Christian, I think you may be running into a bug that is fixed by a recent patch (after v2.4.0): commit e424aff5f307227b1c2512bbb8ece891bb895cef Author: Kevin Wolf <[email protected]> Date: Thu Aug 13 10:41:50 2015 +0200 mirror: Fix coroutine reentrance Could you retry with qemu.git/master, and see if that fixes the issue you are seeing? Thanks, Jeff
