[haiku-bugs] Re: [Haiku] #10522: Assert failed in TrashWatcher

  • From: "bonefish" <trac@xxxxxxxxxxxx>
  • Date: Sun, 09 Feb 2014 22:41:18 -0000

#10522: Assert failed in TrashWatcher
-----------------------------+----------------------------
   Reporter:  kallisti5      |      Owner:  axeld
       Type:  bug            |     Status:  new
   Priority:  normal         |  Milestone:  R1
  Component:  System/Kernel  |    Version:  R1/Development
 Resolution:                 |   Keywords:  vfs
 Blocked By:                 |   Blocking:
Has a Patch:  0              |   Platform:  All
-----------------------------+----------------------------

Comment (by bonefish):

 The vnode in question is the root node of a packagefs:
 {{{
 kdebug> mounts
 address             id root               covers             cookie
 fs_name
 ...
 0xffffffff8aa2cda8   9 0xffffffff92edb380 0xdeadbeefdeadbeef
 0xffffffff8f842178 packagefs
 }}}
 The "covers" field would normally suggest that the mount has already been
 deleted, but the other fields aren't 0xdeadbeef (and look quite plausible
 even), which they would be in that case. Moreover, the mount wouldn't be
 in the mounts hash table anymore and thus wouldn't be listed by `mounts`.
 Given that "covers" (like "root") is an immutable field (initialized when
 mounting and never modified afterward), it's a bit of a mystery how it can
 get that value.

 The root node is not in the mount's vnode list, which is at least
 consistent with it's ref count. Though, obviously, that should never
 happen. The root node is kept until unmounting.

 It would be interesting to know whether another thread is currently
 performing a mount/unmount operation

--
Ticket URL: <https://dev.haiku-os.org/ticket/10522#comment:4>
Haiku <https://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: