Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 12 Nov 2011 22:09:00 +0100
From:      Marius Strobl <marius@alchemy.franken.de>
To:        Alexander Motin <mav@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r227009 - head/sys/geom
Message-ID:  <20111112210900.GJ56603@alchemy.franken.de>
In-Reply-To: <201111012312.pA1NCNuY089112@svn.freebsd.org>
References:  <201111012312.pA1NCNuY089112@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Nov 01, 2011 at 11:12:23PM +0000, Alexander Motin wrote:
> Author: mav
> Date: Tue Nov  1 23:12:22 2011
> New Revision: 227009
> URL: http://svn.freebsd.org/changeset/base/227009
> 
> Log:
>   Make orphan() method in geom_dev asynchronous using destroy_dev_sched_cb()
>   instead of destroy_dev(). It moves device destruction waiting out of the
>   topology lock and so fixes dead lock between orphanization and closing.
>   Real provider and geom destruction called from swi context after device
>   destroyed as callback of the destroy_dev_sched_cb().
> 

This change causes fsck_ffs(8) and mount(8) to hang unkillably on
sparc64 when the kernel is built with either GEOM_PART_GPT or
GEOM_LABEL. When breaking into the kernel the backtrace so far
looked like one of these two ways:
g_wither_washer() at g_wither_washer+0x18
g_run_events() at g_run_events+0x4dc
g_event_procbody() at g_event_procbody+0x8c
fork_exit() at fork_exit+0x9c
fork_trampoline() at fork_trampoline+0x8

find_instance() at find_instance+0x80
_sx_xlock() at _sx_xlock+0xf0
g_run_events() at g_run_events+0xb0
g_event_procbody() at g_event_procbody+0x8c
fork_exit() at fork_exit+0x9c
fork_trampoline() at fork_trampoline+0x8

I've no clue about geom(4) so I also have no idea how to debug this.

Marius




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