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