On 11/12/11 23:09, Marius Strobl wrote: > 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.
I think `show alllocks` in debugger and backtraces of related threads could be useful. -- Alexander Motin _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"