[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Reviewing 1.10 APIs & compatibility

From: Julian Foad <julianfoad_at_apache.org>
Date: Tue, 6 Feb 2018 15:39:36 +0000

I have requested a bit of work time to look at these issues.

Here's where I've got to with the first test failure.

Philip Martin wrote:
> 1.9 against a 1.10 server
> =========================
>
> First I ran the 1.9 testsuite against 1.10 servers
> over http:// and svn://. For http:// there were two FAILs:
>
> FAIL: lock_tests.py 34: unlock file locked by other user
> FAIL: lock_tests.py 53: unlock a lock with timeout
>
> In both cases the problem is the testsuite getting different error from
> that expected:
>
> W: Unexpected output
> W: EXPECTED STDERR (regexp):
> W: | svn: warning: W160039: .*[Uu]nlock of .*403 Forbidden.*
> W: ACTUAL STDERR:
> W: | svn: warning: apr_err=SVN_ERR_FS_PATH_ALREADY_LOCKED
> W: | svn: warning: W160035: Path 'pi' already locked (423 Locked)
> W: | ../src-1.9/subversion/svn/unlock-cmd.c:100: (apr_err=SVN_ERR_ILLEGAL_TARGET)
> W: | svn: E200009: One or more locks could not be released
>
> It turns out that both 1.9 and 1.10 servers return the same underlying
> FS error: the W160039 expected by the testsuite. The difference is that
> the 1.9 server wraps it in a 403 while the 1.10 server wraps it in a
> 423. The 1.9 client does not have r1716450 and that causes the 1.9
> client to convert the underlying FS error to W160035.

It looks like the behaviour changes in 1.10 are intentional and Good.

I think the test suite should be updated to accept the old error when
the server is old, like this:

[[[
Index: subversion/tests/cmdline/lock_tests.py
===================================================================
--- subversion/tests/cmdline/lock_tests.py (revision 1823283)
+++ subversion/tests/cmdline/lock_tests.py (working copy)
@@ -1360,8 +1360,11 @@ def unlocked_lock_of_other_user(sbox):
   svntest.actions.run_and_verify_status(wc_dir, expected_status)
 
   # now try to unlock with user jconstant, should fail but exit 0.
- expected_err = "svn: warning: W160039: User '%s' is trying to use a lock owned by "\
- "'%s'.*" % (svntest.main.wc_author2, svntest.main.wc_author)
+ if sbox.repo_url.startswith("http") and svntest.main.options.server_minor_version <= 9:
+ expected_err = "svn: warning: W160039: .*[Uu]nlock of .*403 Forbidden.*"
+ else:
+ expected_err = "svn: warning: W160039: User '%s' is trying to use a lock owned by "\
+ "'%s'.*" % (svntest.main.wc_author2, svntest.main.wc_author)
   svntest.actions.run_and_verify_svn([], expected_err,
                                      'unlock',
                                      '--username', svntest.main.wc_author2,
]]]

This is similar to what was present before r1716450, when the '403'
message was expected for the 'http' URLs, and the better message was
used for the svn:// case, which in 1.10 is now used for all cases.

However, this doesn't match the message Philip showed above, and this
is only for test #34.

I am still working on setting up the cross-version testing to pursue this.

- Julian
Received on 2018-02-06 16:39:42 CET

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.