Date: Mon, 15 May 2017 20:44:52 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 219315] gjournal file system suspension deadlocks with UFS snapshot suspension Message-ID: <bug-219315-8-Nm52RTmxi9@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-219315-8@https.bugs.freebsd.org/bugzilla/> References: <bug-219315-8@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D219315 --- Comment #1 from Konstantin Belousov <kib@FreeBSD.org> --- 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.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-219315-8-Nm52RTmxi9>