You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Steve James <s....@bigfoot.com> on 2003/06/22 16:48:31 UTC

Tests fail with DAV (bad PROPFIND) => path_driver.c is broken?

I'm running the test suite on the current version (6316) on Linux Mandrake 
9.1. All the tests pass OK for local repository, but many fail with DAV. 
'basic_tests-3' is the first failure. The httpd log shows that svn is doing a 
PROPFIND for a non-existant directory: on the last line basic_tests-3/A/D/D 
doesn't exist, though basic_tests-3/A/D/G does.

127.0.0.1 - - [22/Jun/2003:16:04:49 +0100] "PROPFIND 
/repositories/basic_tests-3/A HTTP/1.1" 207 405
127.0.0.1 - - [22/Jun/2003:16:04:49 +0100] "PROPFIND 
/repositories/basic_tests-3/A/D HTTP/1.1" 207 409
127.0.0.1 - - [22/Jun/2003:16:04:49 +0100] "PROPFIND 
/repositories/basic_tests-3/A/D/D HTTP/1.1" 404 323

I've tracked this back to libsvn_delta/path_driver.c, where I think the 
problem lies. I'm still looking at this now. This is just a heads-up in case 
someone goes "ah-ha"...

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org


Re: Tests fail with DAV (bad PROPFIND) => path_driver.c is broken?

Posted by Steve James <s....@bigfoot.com>.
On Sunday 22 Jun 2003 8:12 pm, Philip Martin wrote:
>
> I believe this fixes the problem.  I'm running the regression tests
> now
>
> --snip--
Yep, looking much better now. Well done. I'm depressed that you found this so 
quickly, while I was still struggling with it. In my defence, I only got 
started with Subversion yesterday!

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org


Re: Tests fail with DAV (bad PROPFIND) => path_driver.c is broken?

Posted by Philip Martin <ph...@codematters.co.uk>.
Steve James <s....@bigfoot.com> writes:

> On Sunday 22 Jun 2003 7:24 pm, Philip Martin wrote:
>> Steve James <s....@bigfoot.com> writes:
>> > 127.0.0.1 - - [22/Jun/2003:16:04:49 +0100] "PROPFIND
>> > /repositories/basic_tests-3/A/D/D HTTP/1.1" 404 323
>>
>> I see this as well.  Reverting r6313 makes the failures go away,
>> although I can't see what is wrong with the code.
>
> Hello Philip. I'm still peering at this, but it's hard going.

I believe this fixes the problem.  I'm running the regression tests
now

Index: subversion/libsvn_delta/path_driver.c
===================================================================
--- subversion/libsvn_delta/path_driver.c	(revision 6316)
+++ subversion/libsvn_delta/path_driver.c	(working copy)
@@ -217,11 +217,12 @@
       svn_path_split (path, &pdir, &bname, iterpool);
       if (strlen (pdir) > common_len)
         {
-          const char *rel = pdir;
           const char *piece = pdir + common_len + 1;
 
           while (1)
             {
+              const char *rel = pdir;
+
               /* Find the first separator. */
               piece = strchr (piece, '/');
 

-- 
Philip Martin

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Tests fail with DAV (bad PROPFIND) => path_driver.c is broken?

Posted by Steve James <s....@bigfoot.com>.
On Sunday 22 Jun 2003 7:24 pm, Philip Martin wrote:
> Steve James <s....@bigfoot.com> writes:
> > 127.0.0.1 - - [22/Jun/2003:16:04:49 +0100] "PROPFIND
> > /repositories/basic_tests-3/A/D/D HTTP/1.1" 404 323
>
> I see this as well.  Reverting r6313 makes the failures go away,
> although I can't see what is wrong with the code.

Hello Philip. I'm still peering at this, but it's hard going. If you trace 
svn_delta_path_driver() and watch the calls to open_dir(), you'll see that, 
when running basic_tests.py 3, the directory 'D' is opened twice. This 
doesn't make sense to me. It corresponds with the bad "PROPFIND ...A/D/D" 
transaction. I think the immediate while loop around the open is broken. 
What's foxing me is that if I correct the loop and make it behave as I think 
is should (such that directories "D" and "D/G" are opened) the test passes 
for DAV *but* fails for local files! Perhaps svn is relying on the 
'incorrect' behaviour? I'm struggling to see what this module is actually 
supposed do! This bit of code is *not* very nice!


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org


Re: Tests fail with DAV (bad PROPFIND) => path_driver.c is broken?

Posted by Philip Martin <ph...@codematters.co.uk>.
Steve James <s....@bigfoot.com> writes:

> 127.0.0.1 - - [22/Jun/2003:16:04:49 +0100] "PROPFIND 
> /repositories/basic_tests-3/A/D/D HTTP/1.1" 404 323

I see this as well.  Reverting r6313 makes the failures go away,
although I can't see what is wrong with the code.

-- 
Philip Martin

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org