- From: Slein, Judith A <JSlein@crt.xerox.com>
- Date: Thu, 9 Sep 1999 11:11:26 -0400
- To: "'Yaron Goland (Exchange)'" <yarong@Exchange.Microsoft.com>, "Slein, Judith A" <JSlein@crt.xerox.com>, "'jamsden@us.ibm.com'" <jamsden@us.ibm.com>, w3c-dist-auth@w3.org
Wait, I think we need to go back to the original proposals from the design team. There are a lot of separate points there, and SHOULD only applied to one of them (not the one about whether locks survive a MOVE). Here they are again, just for reference: AGREED: For MOVE, if the source resource is locked (the lock is not inherited from a parent collection), the lock moves with it to the destination. (This is a reversal of the position taken in RFC 2518.) If the destination resource is locked (the lock is not inherited from a parent collection), its lock is lost. For MOVE, if it's the parent collections that are locked, the resource being moved inherits the lock of the destination collection. If a collection is MOVEd, and there are some locked resources in that collection, the locks on those resources get moved. We don't require support for cross-server MOVEs where the source resource is locked, but we will define an optional lock header for use in responses, so that the destination server can change the lock token and return the new token with its response. If the server allows a cross- server MOVE but elects not to return a lock token value, the client can do lock discovery to find it out. If a cross-server MOVE is allowed in a case where there are multiple bindings to the source resource, and the source resource is locked, the result will be that the resource is locked on both servers with the same lock token in both places. (If the same lock token cannot be used, the MOVE must fail.) For COPY, any locks at the destination are deleted, and no new locks are created at the destination. After the COPY, there will be no locks at the destination except what is inherited from above. AGREED: We'll change the language related to protecting the Request-URI to SHOULD. We intend this to protect the entire path, including the final segment. This does impact the definition of write locks in RFC 2518, which will have to change. It's no longer that a write lock MUST prevent MOVE and DELETE, but that it SHOULD prevent them. I agree with Yaron's rant about SHOULD. I think that changing the language to SHOULD on this last point is a bad thing. Back to the issue of having locks move when a resource is MOVEd: The one case that has been cited of a system that cannot move locks with a resource is Windows 95. I assume that it's really all the Microsoft file systems, including future plans, that won't be able to comply if we say that locks MUST move with their resources. So that's a pretty serious pragmatic consideration. It still would be interesting to hear about other systems that do locking, and whether they would be able to comply with the position stated above. Setting aside for a minute the pragmatic considerations and looking for technical ones: The only technical reason we have heard for not having locks move with the resource is the case of cross-server moves. Since we didn't standardize an algorithm for constructing lock tokens, it might not be possible for the destination server to preserve the lock token created by the source server in a cross-server move. We think we can solve this problem by letting the destination server replace the lock token with one of its own, and inform the client of the new lock token. --Judy > -----Original Message----- > From: Yaron Goland (Exchange) [mailto:yarong@Exchange.Microsoft.com] > Sent: Wednesday, September 08, 1999 4:05 PM > To: 'Slein, Judith A'; 'jamsden@us.ibm.com'; w3c-dist-auth@w3.org > Subject: RE: Bindings, Locks, and MOVE > > > The reason that locks are lost on MOVEs is that the > overwhelming majority of > existing systems can not handle moving locks on MOVEs. We > could, of course, > have said locks SHOULD NOT be lost on moves. But this sort of > language is > exactly the type of language the destroys interoperability. > When I write a > client I am going to write it to either demand that locks > move properly on > moves in the average case (with exceptions handled as force > 10 failures) or > I'm going to write it to assume that locks never work on MOVE > and set up my > UI and APIs appropriately. > their UI and internal code in order to compensate. > > We will be consistent. > > We will be uniform. > > We will use "MUST." > > If you want to change the language to say that locks MUST > move then we can > discuss this, although I think preventing the majority of > existing systems > in the world from supporting WebDAV is probably a bad idea. > If you want to > use the Mandatory mechanism, I think that would be a great > idea. But the > requirement absolutely will not be a SHOULD. > > Yaron > > P.S. Phew... I haven't had a good rant in a while. Feels good. =) >
Received on Thursday, 9 September 1999 11:11:54 UTC