[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] qemu 2.0, deadlock in block-commit
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] qemu 2.0, deadlock in block-commit |
Date: |
Wed, 28 May 2014 14:20:23 +0200 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Mon, May 26, 2014 at 02:58:35PM +0200, Marcin Gibuła wrote:
> >Two options for making progress on this bug:
> >
> >1. Debug bdrv_drain_all() and find out whether there are any I/O
> > requests remaining.
>
> Yes, there is one request pending on active layer of disk that is being
> commited (on bs->tracked_requests list). IO threads die off because they
> have nothing to do... it seems that requests are somehow not commited into
> threads.
>
> I tried hard (and will continue to try) to debug this, but documentation is
> limited :-) so ANY tips where to look are welcome.
>
> >2. Post steps for reproducing this problem (exact command-lines or virsh
> > commands used).
>
> I'm using application that talks with libvirt via API, so I describe what it
> does.
>
> 1. Create a VM, boot a system. I'm using iso from http://www.sysresccd.org
>
> 2. VM has a mounted QCOW2 disk with following hierarchy:
> [file1] -> [file2 (active)]
>
> Both are qcow2 files.
>
> 3. Open console. Start command:
>
> while true; do dd if=/dev/zero of=/dev/vdX bs=512k oflag=direct; done;
>
> Where vdX is of course qcow2 disk described above.
>
> 4. Create snapshot of file2 (virDomainSnapshotCreateXML). So now we have:
>
> [file1] -> [file2] -> [file3 (active)] -
>
> 5. Wait couple of seconds (so snapshot fills up).
>
> 6. Commit file2 into file1 (virDomainBlockCommit).
>
> 7. During commit, another threads is using virDomainGetBlockJobInfo() to
> query its progress.
>
> Note - it doesn't always happen. I have about 1 per 10 failure rate with
> this procedure.
>
> Do you want me to reproduce it manually with pure virsh?
What happens if you omit #7 virDomainGetBlockJobInfo()? Does it still
hang 1/10 times?
Can you post the QEMU command-line so we know the precise VM
configuration? (ps aux | grep qemu)
Thanks,
Stefan
- Re: [Qemu-devel] qemu 2.0, deadlock in block-commit, (continued)
- Re: [Qemu-devel] qemu 2.0, deadlock in block-commit, Marcin Gibuła, 2014/05/23
- Re: [Qemu-devel] qemu 2.0, deadlock in block-commit, Marcin Gibuła, 2014/05/23
- Re: [Qemu-devel] qemu 2.0, deadlock in block-commit, Marcin Gibuła, 2014/05/23
- Re: [Qemu-devel] qemu 2.0, deadlock in block-commit, Marcin Gibuła, 2014/05/23
Re: [Qemu-devel] qemu 2.0, deadlock in block-commit, Eric Blake, 2014/05/22
Re: [Qemu-devel] qemu 2.0, deadlock in block-commit, Stefan Hajnoczi, 2014/05/23
- Re: [Qemu-devel] qemu 2.0, deadlock in block-commit, Marcin Gibuła, 2014/05/23
- Re: [Qemu-devel] qemu 2.0, deadlock in block-commit, Stefan Hajnoczi, 2014/05/26
- Re: [Qemu-devel] qemu 2.0, deadlock in block-commit, Marcin Gibuła, 2014/05/26
- Re: [Qemu-devel] qemu 2.0, deadlock in block-commit,
Stefan Hajnoczi <=
- Re: [Qemu-devel] qemu 2.0, deadlock in block-commit, Marcin Gibuła, 2014/05/28
- Re: [Qemu-devel] qemu 2.0, deadlock in block-commit, Stefan Hajnoczi, 2014/05/28
- Re: [Qemu-devel] qemu 2.0, deadlock in block-commit, Marcin Gibuła, 2014/05/28
- Re: [Qemu-devel] qemu 2.0, deadlock in block-commit, Marcin Gibuła, 2014/05/29
Re: [Qemu-devel] qemu 2.0, deadlock in block-commit, Marcin Gibuła, 2014/05/30