From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46064) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c2HyE-0000iT-C7 for qemu-devel@nongnu.org; Thu, 03 Nov 2016 09:22:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c2Hy8-00071T-Ti for qemu-devel@nongnu.org; Thu, 03 Nov 2016 09:22:18 -0400 Date: Thu, 3 Nov 2016 14:21:59 +0100 From: Kevin Wolf Message-ID: <20161103132159.GD5352@noname.redhat.com> References: <1478109056-25198-1-git-send-email-jsnow@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1478109056-25198-1-git-send-email-jsnow@redhat.com> Subject: Re: [Qemu-devel] [PATCH v3 0/6] jobs: fix transactional race condition List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: John Snow Cc: qemu-block@nongnu.org, vsementsov@virtuozzo.com, stefanha@redhat.com, pbonzini@redhat.com, jcody@redhat.com, qemu-devel@nongnu.org Am 02.11.2016 um 18:50 hat John Snow geschrieben: > There are a few problems with transactional job completion right now. > > First, if jobs complete so quickly they complete before remaining jobs > get a chance to join the transaction, the completion mode can leave well > known state and the QLIST can get corrupted and the transactional jobs > can complete in batches or phases instead of all together. > > Second, if two or more jobs defer to the main loop at roughly the same > time, it's possible for one job's cleanup to directly invoke the other > job's cleanup from within the same thread, leading to a situation that > will deadlock the entire transaction. > > Thanks to Vladimir for pointing out these modes of failure. Patch 1-3 and 6: Reviewed-by: Kevin Wolf