You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Philip Martin <ph...@wandisco.com> on 2012/04/19 10:59:58 UTC

authz_tests 7 FAIL with new revprop caching

On my Linux machine svnserve with threading and revprop caching causes
authz_tests 7 to FAIL:

$ subversion/svnserve/svnserve --cache-revprops yes -Tdr subversion/tests/cmdline

and

$ ./authz_tests.py --url=svn://localhost 7

gives:

2012-04-19 09:56:31 [WARNING] CWD: /home/pm/sw/subversion/obj/subversion/tests/cmdline
2012-04-19 09:56:31 [WARNING] EXCEPTION: Failure: 
- {'foobar': 'foo bar',
-  'svn:author': 'jrandom',
? ^

+ {'svn:author': u'jrandom',
? ^              +

   'svn:date': '',
-  'svn:log': 'Log message for revision 1.'}
+  'svn:log': u'Log message for revision 1.'}
?             +
Traceback (most recent call last):
  File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/main.py", line 1332, in run
    rc = self.pred.run(sandbox)
  File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/testcase.py", line 254, in run
    return self._delegate.run(sandbox)
  File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/testcase.py", line 176, in run
    return self.func(sandbox)
  File "../../../../src/subversion/tests/cmdline/authz_tests.py", line 602, in authz_log_and_tracing_test
    args=['--with-all-revprops', '-r1', sbox.repo_url])
  File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/actions.py", line 713, in run_and_verify_log_xml
    entry.assert_revprops(expected_revprops[index])
  File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/actions.py", line 588, in assert_revprops
    pprint.pformat(self.revprops).splitlines())))
Failure: 
- {'foobar': 'foo bar',
-  'svn:author': 'jrandom',
? ^

+ {'svn:author': u'jrandom',
? ^              +

   'svn:date': '',
-  'svn:log': 'Log message for revision 1.'}
+  'svn:log': u'Log message for revision 1.'}
?             +

FAIL:  authz_tests.py 7: test authz for log and tracing path changes

-- 
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com

Re: authz_tests 7 FAIL with new revprop caching

Posted by Philip Martin <ph...@wandisco.com>.
Stefan Fuhrmann <eq...@web.de> writes:

>> Hey Philip,
>>
>> Thanks for testing and providing the reproduction recipes!
>> With r1331763, all these issues should be fixed. Only the
>> hotcopy tests still need to be fixed / looked into.
>>
> Forget that comment about hotcopy - that is a issue
> Daniel is looking into. With my latest svnadmin commit
> all tests should now pass.

There is still a question about hotcopy.  How many, if any, of these new
files need to be copied?  I suppose they get created if needed so
hotcopy doesn't need to copy any of them.  If so then svnadmin_tests.py
needs to be updated as it explicitly verifies that all files are copied:

./svnadmin_tests.py 8
2012-04-30 12:40:45 [WARNING] CWD: /home/pm/sw/subversion/obj/subversion/tests/cmdline
2012-04-30 12:40:45 [WARNING] EXCEPTION: Failure: svn-test-work/repositories/svnadmin_tests-8.backup/db/revprop-geneneration does not exist in hotcopy destination
Traceback (most recent call last):
  File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/main.py", line 1350, in run
    rc = self.pred.run(sandbox)
  File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/testcase.py", line 114, in run
    return self._delegate.run(sandbox)
  File "/home/pm/sw/subversion/src/subversion/tests/cmdline/svntest/testcase.py", line 176, in run
    return self.func(sandbox)
  File "../../../../src/subversion/tests/cmdline/svnadmin_tests.py", line 447, in hotcopy_dot
    check_hotcopy_fsfs(sbox.repo_dir, backup_dir)
  File "../../../../src/subversion/tests/cmdline/svnadmin_tests.py", line 85, in check_hotcopy_fsfs
    "destination" % dst_path)
Failure: svn-test-work/repositories/svnadmin_tests-8.backup/db/revprop-geneneration does not exist in hotcopy destination
FAIL: svnadmin_tests.py 8: 'svnadmin hotcopy PATH .'


That's with the following bogus "fix" to hotcopy to avoid the current
hotcopy assert:

Index: subversion/libsvn_fs_fs/fs.c
===================================================================
--- subversion/libsvn_fs_fs/fs.c	(revision 1332010)
+++ subversion/libsvn_fs_fs/fs.c	(working copy)
@@ -294,6 +294,7 @@
            void *cancel_baton,
            apr_pool_t *pool)
 {
+  const char *uuid;
     {
       svn_fs_t *fs = src_fs;
       const char *path = src_path;
@@ -303,6 +304,7 @@
       SVN_ERR(svn_fs_fs__open(fs, path, pool));
       SVN_ERR(svn_fs_fs__initialize_caches(fs, pool));
       SVN_ERR(fs_serialized_init(fs, pool, pool));
+      uuid = fs->uuid;
     }
 
     {
@@ -317,6 +319,8 @@
        */
       SVN_ERR(svn_fs_fs__open(fs, path, pool));
       SVN_ERR(svn_fs_fs__initialize_caches(fs, pool));
+#else
+      fs->uuid = uuid;
 #endif
       SVN_ERR(fs_serialized_init(fs, pool, pool));
     }


-- 
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com

Re: authz_tests 7 FAIL with new revprop caching

Posted by Stefan Fuhrmann <eq...@web.de>.
Am 28.04.2012 14:00, schrieb Stefan Fuhrmann:
> Philip Martin wrote:
>> Philip Martin<ph...@wandisco.com>  writes:
>>
>>> On my Linux machine svnserve with threading and revprop caching causes
>>> authz_tests 7 to FAIL:
>>>
>>> $ subversion/svnserve/svnserve --cache-revprops yes -Tdr 
>>> subversion/tests/cmdline
>>>
>>> and
>>>
>>> $ ./authz_tests.py --url=svn://localhost 7
>> Getting lots of failures now:
>>
>> FAIL:  authz_tests.py 7: test authz for log and tracing path changes
>> FAIL:  diff_tests.py 38: diff with svn:author that has<  in it
>> FAIL:  log_tests.py 11: svn log --xml must not print empty date elements
>> FAIL:  log_tests.py 25: test revprop retrieval
>> FAIL:  prop_tests.py 30: post-revprop-change hook
>> FAIL:  prop_tests.py 34: test revprop atomicity guarantees of libsvn_ra
>> FAIL:  svnadmin_tests.py 10: 'setlog' and 'setrevprop', bypassing hooks'
>> FAIL:  svnrdump_tests.py 42: svnrdump renumbers dropped revs in 
>> mergeinfo
>> FAIL:  svnrdump_tests.py 43: don't drop mergeinfo revs in incremental 
>> svnrdump
>>
>> and more, I stopped the tests at that point.
>>
>> Revprop caching doesn't seem to work at all with threading:
>>
>> subversion/svnserve/svnserve --cache-revprops yes -Tdr .
>> svnadmin create repo
>> ln -s /bin/true repo/hooks/pre-revprop-change
>> printf "[general]\nanon-access = write">  repo/conf/svnserve.conf
>> svn ps -r0 --revprop xxx yyy svn://localhost/repo
>> svn pg -r0 --revprop xxx svn://localhost/repo
>>
>> The propset reports "property 'xxx' set on repository revision 0" but
>> the propget return nothing. Using ra_local works:
>>
>> svn pg -r0 --revprop xxx file://`pwd`/repo
>> yyy
>>
>> So the write is happening but the caching is failing.  Using a
>> non-threaded svnserve appears to work.
>>
> Hey Philip,
>
> Thanks for testing and providing the reproduction recipes!
> With r1331763, all these issues should be fixed. Only the
> hotcopy tests still need to be fixed / looked into.
>
Forget that comment about hotcopy - that is a issue
Daniel is looking into. With my latest svnadmin commit
all tests should now pass.

-- Stefan^2.

Re: authz_tests 7 FAIL with new revprop caching

Posted by Stefan Fuhrmann <eq...@web.de>.
Philip Martin wrote:
> Philip Martin<ph...@wandisco.com>  writes:
>
>> On my Linux machine svnserve with threading and revprop caching causes
>> authz_tests 7 to FAIL:
>>
>> $ subversion/svnserve/svnserve --cache-revprops yes -Tdr subversion/tests/cmdline
>>
>> and
>>
>> $ ./authz_tests.py --url=svn://localhost 7
> Getting lots of failures now:
>
> FAIL:  authz_tests.py 7: test authz for log and tracing path changes
> FAIL:  diff_tests.py 38: diff with svn:author that has<  in it
> FAIL:  log_tests.py 11: svn log --xml must not print empty date elements
> FAIL:  log_tests.py 25: test revprop retrieval
> FAIL:  prop_tests.py 30: post-revprop-change hook
> FAIL:  prop_tests.py 34: test revprop atomicity guarantees of libsvn_ra
> FAIL:  svnadmin_tests.py 10: 'setlog' and 'setrevprop', bypassing hooks'
> FAIL:  svnrdump_tests.py 42: svnrdump renumbers dropped revs in mergeinfo
> FAIL:  svnrdump_tests.py 43: don't drop mergeinfo revs in incremental svnrdump
>
> and more, I stopped the tests at that point.
>
> Revprop caching doesn't seem to work at all with threading:
>
> subversion/svnserve/svnserve --cache-revprops yes -Tdr .
> svnadmin create repo
> ln -s /bin/true repo/hooks/pre-revprop-change
> printf "[general]\nanon-access = write">  repo/conf/svnserve.conf
> svn ps -r0 --revprop xxx yyy svn://localhost/repo
> svn pg -r0 --revprop xxx svn://localhost/repo
>
> The propset reports "property 'xxx' set on repository revision 0" but
> the propget return nothing. Using ra_local works:
>
> svn pg -r0 --revprop xxx file://`pwd`/repo
> yyy
>
> So the write is happening but the caching is failing.  Using a
> non-threaded svnserve appears to work.
>
Hey Philip,

Thanks for testing and providing the reproduction recipes!
With r1331763, all these issues should be fixed. Only the
hotcopy tests still need to be fixed / looked into.

-- Stefan^2.

Re: authz_tests 7 FAIL with new revprop caching

Posted by Philip Martin <ph...@wandisco.com>.
Philip Martin <ph...@wandisco.com> writes:

> On my Linux machine svnserve with threading and revprop caching causes
> authz_tests 7 to FAIL:
>
> $ subversion/svnserve/svnserve --cache-revprops yes -Tdr subversion/tests/cmdline
>
> and
>
> $ ./authz_tests.py --url=svn://localhost 7

Getting lots of failures now:

FAIL:  authz_tests.py 7: test authz for log and tracing path changes
FAIL:  diff_tests.py 38: diff with svn:author that has < in it
FAIL:  log_tests.py 11: svn log --xml must not print empty date elements
FAIL:  log_tests.py 25: test revprop retrieval
FAIL:  prop_tests.py 30: post-revprop-change hook
FAIL:  prop_tests.py 34: test revprop atomicity guarantees of libsvn_ra
FAIL:  svnadmin_tests.py 10: 'setlog' and 'setrevprop', bypassing hooks'
FAIL:  svnrdump_tests.py 42: svnrdump renumbers dropped revs in mergeinfo
FAIL:  svnrdump_tests.py 43: don't drop mergeinfo revs in incremental svnrdump

and more, I stopped the tests at that point.

Revprop caching doesn't seem to work at all with threading:

subversion/svnserve/svnserve --cache-revprops yes -Tdr .
svnadmin create repo
ln -s /bin/true repo/hooks/pre-revprop-change
printf "[general]\nanon-access = write" > repo/conf/svnserve.conf
svn ps -r0 --revprop xxx yyy svn://localhost/repo
svn pg -r0 --revprop xxx svn://localhost/repo

The propset reports "property 'xxx' set on repository revision 0" but
the propget return nothing. Using ra_local works:

svn pg -r0 --revprop xxx file://`pwd`/repo
yyy

So the write is happening but the caching is failing.  Using a
non-threaded svnserve appears to work.

-- 
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com