Why does a DELETE transaction check for locks on Parent Collection

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Environment:	
	Version:	    2.2.16
	Platform OS:    AIX 6.1
	Configuration:  WebDav enabled
	Client:	    Windows 7 "Mapped Network Drive"

Here is the interaction:

Client  sends a PUT
Server  responds with a 200
Client  sends a LOCK request
Server  responds with a 200 and this header is in the response:
		Lock-Token: <opaquelocktoken:f86e1996-0726-11e2-b22c-c30f656528a6>
Client  sends a DELETE and includes this header in the request:
		If: (<opaquelocktoken:f86e1996-0726-11e2-b22c-c30f656528a6>)
Server  responds with a 424 Failed Dependency and includes this text in its response body:
       <?xml version="1.0" encoding="utf-8"?>
       <D:multistatus xmlns:D="DAV:">
       <D:response>
       <D:href>/TEST_DIR</D:href>
       <D:status>HTTP/1.1 412 Precondition Failed</D:status>
       <D:responsedescription>A validation error has occurred on the parent resource, 
       preventing the operation on the resource specified by the Request-URI. The error was: 
       The precondition(s) specified by the "If:" header did not match this resource. At 
       least one failure is because: a State-token was supplied, but it was not found in the 
       locks on this resource.</D:responsedescription>
       </D:response>
       </D:multistatus>

Here is a subset of the Apache Error Log:
      Could not DELETE /TEST_DIR/~$EXCEL_File.xlsx due to a failed precondition (e.g. locks).  [424, #0]
     (11)Resource temporarily unavailable: An error occurred on another resource, preventing the requested operation on this resource.  [424, #0]

I tried locking/deleting with cadaver, which worked.... it had a slightly different "If" header:
     If: <http://dmsa.con-way.com/TEST_DIR/~%24EXCEL_File.xlsx> (<opaquelocktoken:fec89268-081a-11e2-a1d7-c30f65659e0a>)

My question is why did Apache check for the "opaquetoken" against the parent collection when the request came from Win7...???

I can't find a requirement to do so in the standard (RFC2518 or RFC4918).

NOTE:  I tried locking/deleting with cadaver, which worked.... it had a slightly different "If" header:
     If: <http://dmsa.con-way.com/TEST_DIR/~%24EXCEL_File.xlsx> (<opaquelocktoken:fec89268-081a-11e2-a1d7-c30f65659e0a>)

Any insight would be helpful.

-tony


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx




[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux