On Mon, Jun 21, 2010 at 4:41 AM, Rainer Toebbicke <[email protected]> wrote: > Tom Keiser schrieb: > >> >> I'll note that bitmap-later is also dangerous--it has several known >> race conditions (e.g. VFreeBitmapEntry_r is just plain wrong; >> GetBitmap() relies upon microarchitectural store ordering rules that >> no modern processor guarantees, ...). These can result in various >> classes of corruption from vnodes that fail to be freed until salvage, >> to multiple allocations of the same vnode. >> >> > > Thanks for the hint - could you elaborate on that? >
Sure. In GetBitmap() we need to defer setting the bitmap pointer in the vnodeIndex object until after VOL_LOCK is reacquired--that will close the processor store ordering race. FYI: this fix was already done on 1.5 as part of DAFS [see VGetBitMap_r() on git master for details]. Aside from some latent fears about the concurrency model permitting the vnode package to race against the GetBitmap scan, I think that one change should fix things... -Tom _______________________________________________ OpenAFS-devel mailing list [email protected] https://lists.openafs.org/mailman/listinfo/openafs-devel
