#8405: PANIC: rw_lock_read_unlock(): lock 0xcdf21664 not read-locked -----------------------------+---------------------------- Reporter: humdinger | Owner: axeld Type: bug | Status: new Priority: normal | Milestone: R1 Component: System/Kernel | Version: R1/Development Resolution: | Keywords: locking Blocked By: | Blocking: Has a Patch: 0 | Platform: All -----------------------------+---------------------------- Comment (by bonefish): The `do_iterative_fd_io()` code is rather straight forward. Unless it falls back to synchronous IO (which it didn't in this case) it never calls the finished hook directly (only via `IORequest::SetStatusAndNotify()` and only when `do_iterative_fd_io_iterate()` fails). So one would think the only possibility for the BFS finished hook to be called twice is that `IORequest::NotifyFinished()` is called twice. Which is a bit puzzling, since that method sports an `ASSERT(!fIsNotified)` that would be triggered in that case (`fIsNotified` is only set there and isn't reset anywhere). An alternative explanation would be that the BFS finished hook is not called twice, but that something has happened to the `Inode` object in the meantime (deleted, overwritten). In either event more information is needed: The last part of the syslog (just in case BFS logged oddities), an `io_request ...` for the I/O request (the parameter to `iterative_io_finished_hook()`), an `io_request_owner ...` for its owner, and a stack trace for owning thread. -- Ticket URL: <http://dev.haiku-os.org/ticket/8405#comment:3> Haiku <http://dev.haiku-os.org> Haiku - the operating system.