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

Reply via email to