Re: Deadlock between GEOM and devfs device destroy and process exit.

From: Pawel Jakub Dawidek <pjd_at_FreeBSD.org>
Date: Mon, 1 Feb 2010 10:23:34 +0100
On Sat, Jan 30, 2010 at 12:44:51PM +0100, Pawel Jakub Dawidek wrote:
> Maybe I'll add how I understand what's going on:
> 
> GEOM calls destroy_dev() while holding the topology lock.
> 
> Destroy_dev() wants to destroy device, but can't because there are
> threads that still have it open.
> 
> The threads can't close it, because to close it they need the topology
> lock.
> 
> The deadlock is quite obvious, IMHO.

Guys, changing destroy_dev() to destroy_dev_sched() in geom_dev.c fixes
the problem for me (at least it makes race window so small that I can't
reproduce it). Is there anyone who isn't happy with such a change?

-- 
Pawel Jakub Dawidek                       http://www.wheel.pl
pjd_at_FreeBSD.org                           http://www.FreeBSD.org
FreeBSD committer                         Am I Evil? Yes, I Am!

Received on Mon Feb 01 2010 - 08:23:58 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:00 UTC