Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Jun 2004 14:13:11 +0200 (CEST)
From:      Lukas Ertl <le@FreeBSD.org>
To:        Poul-Henning Kamp <phk@phk.freebsd.dk>
Cc:        geom@FreeBSD.org
Subject:   Re: GEOM: orphaning open devices 
Message-ID:  <20040617140822.M58154@pcle2.cc.univie.ac.at>
In-Reply-To: <18115.1087473128@critter.freebsd.dk>
References:  <18115.1087473128@critter.freebsd.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 17 Jun 2004, Poul-Henning Kamp wrote:

> In message <20040617132625.A58154@pcle2.cc.univie.ac.at>, Lukas Ertl writes:
>> However, if the fs is mounted and I yank the disk, I don't see an
>> orphaning event until the fs is unmounted again, so it seems disk_destroy
>> is blocked or rather g_wither_geom waits until the device is closed, which
>> makes it rather useless in a production area.
>
> That is a lot of ground and very little information.

Ok, here's a trace of that stuff:

Filesystem is mounted, and I yank the disk:

ciss1: *** Hot-plug drive removed: SCSI port 1 ID 0
ciss1: *** Physical drive failure: SCSI port 1 ID 0
ciss1: *** State change, logical drive 1
ciss1: logical drive 1 (pass1) changed status OK->failed, spare status 0x0
(da1:ciss1:0:1:0): lost device

Then I unmount the filesystem:

(da1:ciss1:0:1:0): removing device entry
g_post_event_x(0xc04b03c0, 0xc2a2d180, 2, -1068613832)
g_post_event_x(0xc04b331c, 0xc2a2db00, 2, -1068613832)
   ref 0xc2a2db00
g_post_event_x(0xc04b331c, 0xc2774600, 2, -1068613832)
   ref 0xc2774600
g_post_event_x(0xc04b331c, 0xc2a91100, 2, -1068613832)
   ref 0xc2a91100
g_post_event_x(0xc04b331c, 0xc2935800, 2, -1068613832)
   ref 0xc2935800
g_post_event_x(0xc04b331c, 0xc2935d00, 2, -1068613832)
   ref 0xc2935d00
g_post_event_x(0xc04b331c, 0xc23ec200, 2, -1068613832)
   ref 0xc23ec200
g_post_event_x(0xc04b331c, 0xc2684100, 2, -1068613832)
   ref 0xc2684100
g_post_event_x(0xc04b331c, 0xc2684f00, 2, -1068613832)
   ref 0xc2684f00
g_post_event_x(0xc04b331c, 0xc29f7b80, 2, -1068613832)
   ref 0xc29f7b80
g_post_event_x(0xc04b331c, 0xc2933780, 2, -1068613832)
   ref 0xc2933780
g_post_event_x(0xc04b331c, 0xc2a91a80, 2, -1068613832)
   ref 0xc2a91a80
g_wither_geom(0xc2936b00(da1))
g_orphan_provider(0xc2a2db00(da1), 6)
g_orphan_register(da1)
g_slice_orphan(0xc28381c0/da1)
g_wither_geom(0xc2787a80(da1))
g_orphan_provider(0xc2774600(da1s1), 6)
g_detach(0xc28381c0)
g_destroy_consumer(0xc28381c0)
g_dev_orphan(0xc2a08b40(da1))
g_detach(0xc2a08b40)
g_wither_geom(0xc2936b00(da1))
g_destroy_geom(0xc2936b00(da1))
g_destroy_consumer(0xc2a08b40)
g_destroy_geom(0xc2a90580(da1))
[...]

Hm, on closer look it seems the disk controller/driver doesn't let the 
drive go.

cheers,
le

-- 
Lukas Ertl                         http://homepage.univie.ac.at/l.ertl/
le@FreeBSD.org                     http://people.freebsd.org/~le/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040617140822.M58154>