I have been modifying this protocol and have noticed a rare race
condition which I do not think it handles. In particular it happens like
this:
1) Owner issues PUTX due to a cache replacement
2) Before this arrives at the directory a gets (or getx) is forwarded to
the owner by the directory
3) The directory then responds to the PUTX
4) The response to the PUTX arrives at the owner first, transitioning the
state to Invalid
5) The forwarded GETS arrives.
Is this handled somewhere I am not seeing, or is this a genuine issue with
this protocol?
Sean
|