- From: Slein, Judith A <JSlein@crt.xerox.com>
- Date: Wed, 15 Sep 1999 13:52:46 -0400
- To: "'Geoffrey M. Clemm'" <gclemm@tantalum.atria.com>, w3c-dist-auth@w3.org
Actually I was confused by thinking that a write lock would prevent a COPY
with Destination being the locked resource. (So I thought that the COPY
step wouldn't be allowed to happen.) But I see that the definition of write
lock doesn't address this case.
I do have trouble following your description of the fixup stage, though. I
take it you don't think we face the awkward situation Kevin described, where
there end up being 2 resources where there used to be only one. But how do
you avoid this?
Before the MOVE we have:
/a/b.html /x/y.html /c/d.html
\ / |
\ / |
\ / |
R S
and user1 has a lock on R through /a/b.html
Now user2 attempts to MOVE /c/d.html to /x/y.html. First the binding y.html
is removed from collection /x/. Then S is duplicated, say to S' and a new
binding y.html is created in /x/ to S'. That's the COPY step. At this
point we have:
/a/b.html /x/y.html /c/d.html
| | |
| | |
R S' S
The DELETE step is to remove the binding d.html from /c/. It doesn't look
as if there needs to be any fixup, but we do have the awkward result that we
now have 2 resources R and S' where there used to be just R.
--Judy
> -----Original Message-----
> From: Geoffrey M. Clemm [mailto:gclemm@tantalum.atria.com]
> Sent: Wednesday, September 15, 1999 12:56 PM
> To: w3c-dist-auth@w3.org
> Subject: Re: Bindings, Locks, and MOVE
>
>
>
> From: "Slein, Judith A" <JSlein@crt.xerox.com>
>
> I like everything that you say here, but the MOVE / COPY
> TO cases raise a
> red flag for me. We claim in the bindings spec that the
> MOVE semantics we
> present is equivalent to the COPY + fixup + DELETE
> semantics defined in RFC
> 2518. But I doubt it when I look at this case.
>
> <gmc/> The author of the statement that "MOVE is logically equivalent
> to COPY+fixup+DELETE" (who will remain nameless although we all know
> who he is :-) has publicly renounced this statement. The problem of
> course is the wonderfully undefined "fixup" stage. *ANY* semantics is
> acceptable for MOVE, for some definition of "fixup". So let's see if
> all is well for this case with some suitably defined value of "fixup".
>
> Leave aside for a minute intuitions about what should
> really happen, and
> just see what would follow from the underlying semantic model:
>
> Suppose we define MOVE as "remove the binding identified
> by the Request-URI
> and add the binding identified by the Destination header".
>
> Now consider your case: /a/b.html and /x/y.html both point
> to resource R,
> and I have an exclusive write lock on /a/b.html. User2
> tries to MOVE
> /c/d.html (which points to some other resource S) to
> /x/y.html. It seems
> this should be possible, because all that is happening is
> that the binding
> y.html in collection /x/ is being replaced with one that binds to a
> different resource. Nothing happens to resource R.
>
> But if we use the COPY + fixup + DELETE semantics for
> MOVE, resource S would
> have to be duplicated, overwriting R. And this would not
> be allowed,
> because R is locked.
>
> <gmc/> It doesn't overwrite R. A COPY to an existing resource will
> either fail (if Overwrite=FALSE) or issue a DELETE on the destination
> of the COPY. The DELETE of /x/y.html succeeds just fine (since DELETE
> is properly defined to just remove the binding named "y.html" from the
> collection "/x"), the COPY proceeds, and then the "fixup" step
> replaces the binding to the new resource created by the COPY with a
> binding to R, and then a DELETE is issued on the request URL of the
> MOVE, which then deletes the binding named "d.html" from the
> collection "/c".
>
> Of course, we can legislate this problem away by, for
> example, accepting
> your proposal that a MOVE or COPY like this one fail no
> matter which
> semantics you use. But I'm afraid other cases will turn
> up that reveal
> inconsistencies between the 2 models of MOVE.
>
> <gmc/> I believe there are no inconsistencies here ... just
> suitably creative
> definitions of "fixup" (:-).
>
> Cheers,
> Geoff
>
Received on Wednesday, 15 September 1999 13:53:01 UTC