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*