Race condition in BFS initialization leads to KDL when volume is not mountable.
|Reported by:||pulkomandy||Owned by:||axeld|
|Has a Patch:||no||Platform:||All|
I had a partition with a corrupt root node, making it unmountable. This lead to a panic in BlockAllocator::_Initialize, as the thread was scheduld after the BlockAllocator object had already been cleared (panic shows the pointer to it to be 0xcccccccc).
There is a lock between the thread and the destructor, but I'm not sure about the semantics of recursive_lock which is used with ownership transfer here. It looks like if the thread is not started yet, the locking isn't effective?