From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54998) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZUwON-0005Iy-Jc for qemu-devel@nongnu.org; Thu, 27 Aug 2015 08:34:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZUwOJ-0007Kr-0I for qemu-devel@nongnu.org; Thu, 27 Aug 2015 08:34:55 -0400 Date: Thu, 27 Aug 2015 08:34:47 -0400 From: Jeff Cody Message-ID: <20150827123447.GC2669@localhost.localdomain> References: <7B586EF9-D3C3-4624-B20E-495F1089F428@roessner.co> <0A593B1A-2EE7-4972-BBF1-ADA6654FC814@roessner.co> <20150826132530.GE11016@localhost.localdomain> <26C051AF-1E94-4038-B313-86BC8826088C@roessner.co> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <26C051AF-1E94-4038-B313-86BC8826088C@roessner.co> Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] KVM guest gets aborted if blockcommit is called List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Christian =?iso-8859-1?B?UvbfbmVy?= Cc: qemu-devel@nongnu.org, qemu-discuss@nongnu.org On Thu, Aug 27, 2015 at 11:26:13AM +0200, Christian R=C3=B6=C3=9Fner wrot= e: >=20 > > Am 26.08.2015 um 15:25 schrieb Jeff Cody : > >=20 > > On Wed, Aug 26, 2015 at 10:08:26AM +0200, Christian R=C3=B6=C3=9Fner = wrote: > >>=20 > >>> Am 25.08.2015 um 08:02 schrieb Christian R=C3=B6=C3=9Fner : > >>>=20 > >>> Hello, > >>>=20 > >>> 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 :-) > >>>=20 > >>> I have reproducable problems with some code in qemu-coroutine.c: > >>>=20 > >>>=20 > >>> void qemu_coroutine_enter(Coroutine *co, void *opaque) > >>> { > >>> Coroutine *self =3D qemu_coroutine_self(); > >>> CoroutineAction ret; > >>>=20 > >>> trace_qemu_coroutine_enter(self, co, opaque); > >>>=20 > >>> if (co->caller) { > >>> fprintf(stderr, "Co-routine re-entered recursively\n"); > >>> abort(); <=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80= =94=E2=80=94=E2=80=94=E2=80=94 This one triggers 4 or 5 out of ten tests = to use the blockcommit feature > >>> } > >>=20 > >> Caught Co-routine SIGABRT while a blockcommit operation was running. > >>=20 > >> Recompiled with debugging symbols and I connected gdb to the process= : > >>=20 > >> (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=3D0x555a34651a50,= opaque=3D0x0) > >> 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=3Dco@entry=3D= 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=3D0x555a33d271b0,= opaque=3D) > >> 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=3Dbs@entry=3D0x5= 55a336a6be0, > >> sector_num=3Dsector_num@entry=3D113551488, qiov=3Dqiov@entry=3D0x= 555a3367d2c8, > >> nb_sectors=3Dnb_sectors@entry=3D15360, flags=3Dflags@entry=3D(unk= nown: 0), > >> cb=3Dcb@entry=3D0x555a316e1fe0 , opaque=3D0= x555a3367d2c0, is_write=3Dis_write@entry=3Dfalse) > >> at /var/tmp/portage/app-emulation/qemu-2.4.0/work/qemu-2.4.0/bloc= k/io.c:2142 > >> #6 0x0000555a316e4b1e in bdrv_aio_readv (bs=3Dbs@entry=3D0x555a336a= 6be0, > >> sector_num=3Dsector_num@entry=3D113551488, qiov=3Dqiov@entry=3D0x= 555a3367d2c8, > >> nb_sectors=3Dnb_sectors@entry=3D15360, cb=3Dcb@entry=3D0x555a316e= 1fe0 , > >> opaque=3Dopaque@entry=3D0x555a3367d2c0) > >> at /var/tmp/portage/app-emulation/qemu-2.4.0/work/qemu-2.4.0/bloc= k/io.c:1744 > >> #7 0x0000555a316e2ccf in mirror_iteration (s=3D0x555a34a0c250) > >> at /var/tmp/portage/app-emulation/qemu-2.4.0/work/qemu-2.4.0/bloc= k/mirror.c:302 > >> #8 mirror_run (opaque=3D0x555a34a0c250) > >> at /var/tmp/portage/app-emulation/qemu-2.4.0/work/qemu-2.4.0/bloc= k/mirror.c:512 > >> #9 0x0000555a316a9a5a in coroutine_trampoline (i0=3D= , i1=3D) > >> at /var/tmp/portage/app-emulation/qemu-2.4.0/work/qemu-2.4.0/coro= utine-ucontext.c:80 > >> #10 0x00007f4b6e6df4a0 in ?? () from /lib64/libc.so.6 > >> #11 0x00007ffe67b71840 in ?? () > >> #12 0x0000000000000000 in ?? () > >> (gdb) > >>=20 > >> Please, could someone reply to me :-) > >>=20 > >> Thanks > >>=20 > >> Christian > >=20 > > Hi Christian, > >=20 > > I think you may be running into a bug that is fixed by a recent patc= h > > (after v2.4.0):=20 > >=20 > > commit e424aff5f307227b1c2512bbb8ece891bb895cef > > Author: Kevin Wolf > > Date: Thu Aug 13 10:41:50 2015 +0200 > >=20 > > mirror: Fix coroutine reentrance > >=20 > >=20 > > Could you retry with qemu.git/master, and see if that fixes the issue > > you are seeing? >=20 > Until now, everything looks perfectly. No issues. Backup is running smo= othly. >=20 > Thanks very much. If nothing changes until tonight, I am going to close= the bug report. >=20 Christian, Great to hear, thanks for the follow-up. -Jeff