From: Neil Brown (neilb@cse.unsw.edu.au)
Date: 11/17/99-06:42:21 PM Z
From: Neil Brown <neilb@cse.unsw.edu.au>
Date: Thu, 18 Nov 1999 11:42:21 +1100 (EST)
Message-ID: <14387.19309.687297.999073@notabene.cse.unsw.EDU.AU>
Subject: Byzantine Routers - create/remove
While thinking about the Byzantine Router problem, I wondered about
REMOVE calls, and the possible problem that a
REMOVE
OPEN/CREATE
sequence could see the REMOVE being redelivered after the create with
undesirable consequences.
Forutately, the protocol as it stands can allow the client to avoid
that.
If the client does a LOOKUP first to get the filehandle (which it
possibly has anyway), and then does:
COMPOUND { PUTFH dir; LOOKUP name; VERIFY(filehandle==fh); PUTFH dir; DELETE name }
Then a replay of that compound wont delete the newly created file.
This doesn't protect against
link a b
unlink b
link a b
but maybe adding the "change" attribute to the VERIFY would help.
I have suggested before that the example for VERIFY in the draft isn't
the best as it doesn't guarantee much due to the lack of atomicity.
Would this be a suitable alternate example?
NeilBrown
This archive was generated by hypermail 2.1.2 : 03/04/05-01:47:56 AM Z CST