https://bugs.dragonflybsd.org/https://bugs.dragonflybsd.org/favicon.ico?16293952082013-02-07T05:02:17ZDragonFlyBSD bugtrackerDragonFlyBSD - Bug #2506: panic: unmount: dangling vnode running poudrierehttps://bugs.dragonflybsd.org/issues/2506?journal_id=112502013-02-07T05:02:17Zvsrinivasvsrinivas@ops101.org
<ul></ul><p>At a first look, it seemed like a procfs mount was being unmounted<br />and the test that there were no vnodes linked in to the mount<br />tripped. However in the core, the vnode list on the procfs mount was<br />empty.</p>
<p>I think there is a race between dounmount() and insmntque(, NULL)<br />removing vnodes from a mount. dounmount is synchronizing via the<br />per-mount lockmgr, while insmntque() expects the vnode list to be<br />protected by the mntvnode token. Could you try taking the<br />mntvnode_token throughout the span of the dounmount() function?</p>
<p>Thanks,<br />-- vs;</p> DragonFlyBSD - Bug #2506: panic: unmount: dangling vnode running poudrierehttps://bugs.dragonflybsd.org/issues/2506?journal_id=112512013-02-07T09:47:46Zftigeot
<ul><li><strong>File</strong> <a href="/attachments/990">patch-dounmount.txt</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/990/patch-dounmount.txt">patch-dounmount.txt</a> added</li><li><strong>% Done</strong> changed from <i>0</i> to <i>50</i></li></ul><p>Thanks for having a look!</p>
<p>Would such a patch be acceptable ? I have not removed existing locking directives, which<br />may make things unnecessarily slow.</p> DragonFlyBSD - Bug #2506: panic: unmount: dangling vnode running poudrierehttps://bugs.dragonflybsd.org/issues/2506?journal_id=112522013-02-07T16:07:24Zvsrinivasvsrinivas@ops101.org
<ul></ul><p>On Thu, Feb 07, 2013 at 01:47:46AM -0800, Francois Tigeot via Redmine wrote:</p>
<blockquote>
<p>Issue <a class="issue tracker-1 status-3 priority-4 priority-default closed" title="Bug: panic: unmount: dangling vnode running poudriere (Resolved)" href="https://bugs.dragonflybsd.org/issues/2506">#2506</a> has been updated by ftigeot.</p>
<p>File patch-dounmount.txt added<br />% Done changed from 0 to 50</p>
<p>Thanks for having a look!</p>
<p>Would such a patch be acceptable ? I have not removed existing locking directives, which<br />may make things unnecessarily slow.</p>
</blockquote>
<p>Looks fine; dounmount() isn't called in performance-critical paths<br />and insmntque (which is closer to hot paths) is already using the<br />global mntvnode token.</p>
<p>We may want to eventually move insmntque to per-mount locks and clear<br />up what exactly is covered by what locks in the mount structures.</p>
<p>-- vs;</p> DragonFlyBSD - Bug #2506: panic: unmount: dangling vnode running poudrierehttps://bugs.dragonflybsd.org/issues/2506?journal_id=112542013-02-09T15:30:32Zftigeot
<ul><li><strong>Status</strong> changed from <i>New</i> to <i>Resolved</i></li><li><strong>% Done</strong> changed from <i>50</i> to <i>100</i></li></ul><p>Fixed by commit effb40c8d1ffed9a461d4136a276566af7e29aaa</p>