Philip Martin <philip.mar...@wandisco.com> writes:

> My pool-debug build uses my own httpd build from 2.2.x@1562432 while my
> normal build used the system httpd, Debian's 2.2.22-13+deb7u3.  It looks
> like some change to mod_dav has added an extra walk over the copy source
> in the pool-debug build and the absence of this walk means there is no
> problem in my normal build.  I'm still trying to determine why this
> extra walk is present, perhaps the new version is doing an unnecessary
> walk or perhaps the old version has an unfixed bug.

I think this extra walk is pointless most of the time and is just making
our nominally O(1) copy operation slower.  Locks on the copy source do
not prevent a copy.  This walk appears to be checking that locks
(ETags?)  supplied by the COPY requests match the copy source.  On an
URL-URL copy a Subversion client will not supply any tokens, so the walk
scans the whole tree for no point.  The walk repeatedly calls back into
mod_dav's dav_validate_resource_state() and it always returns NULL as
DAV_VALIDATE_NO_MODIFY is set and if_header is NULL.

-- 
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*

Reply via email to