|
From: | Marcin Gibuła |
Subject: | Re: [Qemu-devel] qemu 2.0, deadlock in block-commit |
Date: | Sat, 24 May 2014 00:02:53 +0200 |
User-agent: | Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 |
W dniu 2014-05-23 15:14, Marcin Gibuła pisze:
bdrv_requests_pending(), called by bdrv_requests_pending_all(), is the function that determines for each of the disks in your VM if it still has requests in flight that need to be completed. This function must have returned true even though there is nothing to wait for. Can you check which of its conditions led to this behaviour, and for which disk it did? Either by setting a breakpoint there and singlestepping through the function the next time it is called (if the poll even has a timeout), or by inspecting the conditions manually in gdb.The condition that is true is: if (!QLIST_EMPTY(&bs->tracked_requests)) and it's returned for intermediate qcow2 which is being commited.
My mistake, this condition is true not for intermediate file, but for an active one. Sorry for confusion.
-- mg
[Prev in Thread] | Current Thread | [Next in Thread] |