qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Jeff Cody <jcody@redhat.com>
To: "Christian Rößner" <c@roessner.co>
Cc: qemu-devel@nongnu.org, qemu-discuss@nongnu.org
Subject: Re: [Qemu-devel] KVM guest gets aborted if blockcommit is called
Date: Thu, 27 Aug 2015 08:34:47 -0400	[thread overview]
Message-ID: <20150827123447.GC2669@localhost.localdomain> (raw)
In-Reply-To: <26C051AF-1E94-4038-B313-86BC8826088C@roessner.co>

On Thu, Aug 27, 2015 at 11:26:13AM +0200, Christian Rößner wrote:
> 
> > Am 26.08.2015 um 15:25 schrieb Jeff Cody <jcody@redhat.com>:
> > 
> > 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 <c@roessner.co>:
> >>> 
> >>> 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 <kwolf@redhat.com>
> > 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?
> 
> Until now, everything looks perfectly. No issues. Backup is running smoothly.
> 
> Thanks very much. If nothing changes until tonight, I am going to close the bug report.
> 

Christian,

Great to hear, thanks for the follow-up.

-Jeff

  reply	other threads:[~2015-08-27 12:34 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-25  6:02 [Qemu-devel] KVM guest gets aborted if blockcommit is called Christian Rößner
2015-08-26  8:08 ` Christian Rößner
2015-08-26 13:25   ` Jeff Cody
2015-08-26 14:53     ` Christian Rößner
2015-08-27  9:26     ` Christian Rößner
2015-08-27 12:34       ` Jeff Cody [this message]
2015-08-27 20:01         ` Christian Rößner
2015-08-27 20:15           ` Eric Blake
2015-08-27 20:22             ` Christian Rößner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150827123447.GC2669@localhost.localdomain \
    --to=jcody@redhat.com \
    --cc=c@roessner.co \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-discuss@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).