Subject: BIND and write locks

From: "Nevermann, Dr., Peter" <[email-masked]>
Date: Mon, 1 Sep 2003 12:55:15 +0200

I am trying to figure out, how write locks should behave WRT binding.

Take the following scenario:
- a collection C11
- a collection C1 containing a binding "foo" to C11 and mapped to URI "u1"
- a resource R2
- a collection C2 containing a binding "b" to R2 and mapped to URI "u2"

   u1|
     C1
  foo|    |u2
    C11   C2
          |b
          R2

Now the following requests are issued (' marks locked resources):
- LOCK /u1 (write, exclusive, depth=infinity)
  --> C11 is automatically added to the write-lock
- PUT /u1/foo/a (passing locktoken)
  --> creates R1 which is added to the write-lock (RFC2518, Section 7.5)
- BIND /u1/foo (b->/u2/b, passing locktoken)
  --> R2 is added to the write-lock (RFC2518, Section 7.5)

   u1|
     C1'
  foo|    |u2
    C11'  C2
    a| b\ |b
     R1'  R2'

- REBIND /u2 (a->/u1/foo/a, passing locktoken)
  --> R1 is removed from the write-lock (RFC2518, Section 7.7)

   u1|
     C1'
  foo|    |u2
    C11'  C2
       b\ |b \a
          R2' R1

The described behavior for BIND and REBIND is what I suppose it should be.
Is it correct?

BTW, what happens if, afterwards, the following UNLOCK on R2 is issued:
- UNLOCK /u1/foo/b (passing locktoken)
  --> a) request is rejected, UNLOCK must be issued of C1 (/u1)
  or
  --> b) all associated resources (C1, C11, R2) are unlocked (RFC2518,
Section 8.10.4)

I suppose, that it is not possible to remove single resources from the
write-lock by means of UNLOCK, isn't it?

Thanks,
Peter

P.S.:
At http://www.webdav.org/specs/ I found a link to
http://ftp.ics.uci.edu/pub/ietf/webdav/collection/bind-issues.html, which
contains the following entry:

   "ID: 41
   Source: Reuter/Hunt
   Description: Specify how BIND interacts with a write lock.
   Status: Closed
   Resolution: Declined
   Locking semantics is in too confused a state currently to
   be able to make any reliable statements. Don't want to hold
   up binding spec till lock settles down."

Is that still prevailing?

---

From: Geoffrey M Clemm <[email-masked]>
Date: Mon, 1 Sep 2003 22:28:15 -0400

> The described behavior for BIND and REBIND is what I suppose it 
> should be. Is it correct? 

Yes.

>   --> b) all associated resources (C1, C11, R2) are unlocked 
> (RFC2518, Section 8.10.4) 

Several of us have strongly advocated (a), to avoid a client mistakenly
unlocking a whole tree of resources when they intended to unlock a
single resource.  I don't believe this has been resolved though.

> I suppose, that it is not possible to remove single resources from 
> the write-lock by means of UNLOCK, isn't it? 

That is correct, it is not possible.

> P.S.: 
> At http://www.webdav.org/specs/ I found a link to http://ftp.ics.
> uci.edu/pub/ietf/webdav/collection/bind-issues.html, which contains 
> the following entry:
>    "ID: 41 
>    Source: Reuter/Hunt 

No, that is an obsolete document, and it (and any links to it) should
be removed.  The current bind issues document is:

http://www.webdav.org/bind/bind-issues-list.htm

Cheers,
Geoff