From owner-freebsd-bugs@freebsd.org Mon May 15 20:44:52 2017 Return-Path: Delivered-To: freebsd-bugs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EB4BFD6E606 for ; Mon, 15 May 2017 20:44:52 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DB15F18C1 for ; Mon, 15 May 2017 20:44:52 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id v4FKiqFx073462 for ; Mon, 15 May 2017 20:44:52 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 219315] gjournal file system suspension deadlocks with UFS snapshot suspension Date: Mon, 15 May 2017 20:44:52 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: kib@FreeBSD.org X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-bugs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 May 2017 20:44:53 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D219315 --- Comment #1 from Konstantin Belousov --- I wrote somewhere else: It is a bug in the g_journal code. Journal thread initiates suspension and waits for it to occur. If meantime other thread creates snapshot, that snapshot thread initiated a suspension itself and needs to read and write some blocks to lift its suspension. Two suspensions cannot be established simultaneously, they synchronize against each, so the journal thread is blocked. But it must run and proceed bio's for the system to execute snapshotting thread' io requests. So the situation is plain architectural deadlock. See the thread pid 26459 tid 100586 (journal) and pid 30498 tid 100208 (snapshot). One possible fix is for journal geom thread to delegate suspension to some other context, without blocking. I do not intend to code this. --=20 You are receiving this mail because: You are the assignee for the bug.=