W3C home > Mailing lists > Public > w3c-dist-auth@w3.org > October to December 2004

Re: Comments on bind-08

From: Geoffrey M Clemm <geoffrey.clemm@us.ibm.com>
Date: Thu, 2 Dec 2004 22:33:40 -0500
To: Julian Reschke <julian.reschke@gmx.de>
Cc: ejw@cs.ucsc.edu, "'WebDAV (WebDAV WG)'" <w3c-dist-auth@w3.org>, w3c-dist-auth-request@w3.org
Message-ID: <OFF0BB27E1.5FF320EF-ON85256F5F.00131FB9-85256F5F.00138FCE@us.ibm.com>
I'm not following this.  What is lock L3 and what is lock L2?
(the locks in the picture are not named).  In any case,
I suggest that the example be modified to have exclusive locks
(as Julian indicates, this example must have shared locks which
is not as commonly implemented).

Cheers,
Geoff

Julian wrote on 12/02/2004 05:27:14 PM:

> 
> Jim Whitehead wrote:
> > 
> > 
> >>REBIND /CollW HTTP/1.1
> >>If: <http://example.com/CollW/CollY/CollZ> (<L3>) 
> >><http://example.com/CollW/CollX> (<L2>)
> >>Overwrite: T
> >>
> >><rebind xmlns="DAV:">
> >>   <segment>CollX</segment>
> >>   <href>/CollW/CollY/CollZ</href>
> >></rebind>
> >>
> >>Reason: we need to supply both lock tokens as we're removing 
> >>a binding 
> >>to C3 that is protected by the lock L3, and we're removing the target 
> >>binding /CollW/CollY which is protected by the lock L2.
> > 
> > 
> > This doesn't sound right to me. I'd say that we're removing the 
binding
> > C3:(CollZ->C1), and hence we need the lock token L3. We're then 
creating the
> > binding C3:(CollZ->C2), which requires the lock tokens L3 and L2, 
since C3's
> > state is being modified (hence L3), and C2 is the destination (hence 
L2).
> > I'm pretty confident of all except the final statement.
> 
> I missed the bind loop... This causes L2 and L3 to protect overlapping 
> sets of URIs, so they must be shared locks, correct?
> 
> 
> >>we're removing the target 
> >>binding /CollW/CollY which is protected by the lock L2.
> > 
> > 
> > Isn't binding /CollW/CollY/ -- that is, C1:(CollY->C3) -- covered by 
lock
> > L3?
> 
> I guess we should stick with diagrams until we agree on the operation 
> we're performing...:
> 
> Before:
> 
> +------------------+
> | Root Collection  |
> |  bindings:       |
> |  CollW           |
> +------------------+
>      |
>      |
>      |
> +-------------------------------+
> | Collection C1                 |<--------+
> | bindings:                     |         |
> | CollX               CollY     |         |
> +-------------------------------+         |
>      |                  |                  |
>      |                  |   (creates loop) |
>      |                  |                  |
> +-----------------+  +------------------+ |
> | Collection C2   |  | Collection C3    | |
> | LOCKED infinity |  | LOCKED infinity  | |
> | bindings:       |  | bindings:        | |
> |  {none}         |  | y.gif     CollZ  | |
> +-----------------+  +------------------+ |
>                        |            |      |
>                        |            +------+
>                        |
>                    +---------------------------+
>                    | Resource R2               |
>                    | (lock inhereited from C3) |
>                    +---------------------------+
> 
> After:
> 
> +------------------+
> | Root Collection  |
> |  bindings:       |
> |  CollW           |
> +------------------+
>      |
>      |
>      |
> +-------------------------------+
> | Collection C1                 |
> | bindings:                     |
> | CollX               CollY     |
> +-------------------------------+
>      | ^                |
>      +-+                |
>                         |
> +-----------------+  +------------------+
> | Collection C2   |  | Collection C3    |
> |                 | LOCKED infinity  |
> | bindings:       |  | bindings:        |
> |  {none}         |  | y.gif            |
> +-----------------+  +------------------+
>                        |
>                        |
>                        |
>                    +---------------------------+
>                    | Resource R2               |
>                    | (lock inhereited from C3) |
>                    +---------------------------+
> 
> 
> So C2 doesn't have any bindings in scope anymore (and thus no lock), and 

> C1's new binding CollX identifies C1 itself, creating a new bind loop.
> 
> I have the nagging feeling that this wasn't what you intended to do :-)
> 
> Best regards, Julian
> 
> 
> -- 
> <green/>bytes GmbH -- http://www.greenbytes.de -- tel:+492512807760
> 
Received on Friday, 3 December 2004 03:34:14 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 5 February 2014 07:17:51 UTC