From dev-return-37364-archive-asf-public=cust-asf.ponee.io@subversion.apache.org Tue Jan 16 00:59:09 2018 Return-Path: X-Original-To: archive-asf-public@eu.ponee.io Delivered-To: archive-asf-public@eu.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by mx-eu-01.ponee.io (Postfix) with ESMTP id B872D180657 for ; Tue, 16 Jan 2018 00:59:09 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id A6C43160C45; Mon, 15 Jan 2018 23:59:09 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id C6BD7160C31 for ; Tue, 16 Jan 2018 00:59:08 +0100 (CET) Received: (qmail 23732 invoked by uid 500); 15 Jan 2018 23:59:07 -0000 Mailing-List: contact dev-help@subversion.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list dev@subversion.apache.org Received: (qmail 23722 invoked by uid 99); 15 Jan 2018 23:59:07 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 15 Jan 2018 23:59:07 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 2F4D9C7C59 for ; Mon, 15 Jan 2018 23:59:07 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.001 X-Spam-Level: ** X-Spam-Status: No, score=2.001 tagged_above=-999 required=6.31 tests=[KAM_COUK=0.85, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_NEUTRAL=0.652, URI_NOVOWEL=0.5] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id f3XcgI88ueGF for ; Mon, 15 Jan 2018 23:59:05 +0000 (UTC) Received: from know-smtprelay-omc-8.server.virginmedia.net (know-smtprelay-omc-8.server.virginmedia.net [80.0.253.72]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id B9F9F5F64B for ; Mon, 15 Jan 2018 23:59:04 +0000 (UTC) Received: from localhost ([86.9.48.152]) by cmsmtp with ESMTPA id bEeWesdbkBDKwbEeWe9rnN; Mon, 15 Jan 2018 23:58:57 +0000 X-Originating-IP: [86.9.48.152] X-Authenticated-User: codematters@ntlworld.com X-Spam: 0 X-Authority: v=2.3 cv=dICIZtRb c=1 sm=1 tr=0 a=rSjZpmdkpCpLRM02tfIJ4Q==:117 a=rSjZpmdkpCpLRM02tfIJ4Q==:17 a=mV9VRH-2AAAA:8 a=GEtdHS-GEgKFkZxhUvkA:9 a=kdG4IHwrLo08mzTa:21 a=Mo_VWQzA0jzrg_yt:21 From: Philip Martin To: Julian Foad Cc: Svn dev Subject: Re: Reviewing 1.10 APIs & compatibility References: <02e94769-17a8-fc9c-30ad-3b71f1b2977b@apache.org> Date: Mon, 15 Jan 2018 23:58:56 +0000 In-Reply-To: <02e94769-17a8-fc9c-30ad-3b71f1b2977b@apache.org> (Julian Foad's message of "Mon, 8 Jan 2018 10:36:46 +0000") Message-ID: <87wp0ivflr.fsf@codematters.co.uk> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-CMAE-Envelope: MS4wfL+/4GCyg/C9KdBQ3yXv6VOnWUSCLG53D4lcJYK7vyExCdHtMolqmqnjQ2XFt4/ziOLu99nr3Rbv25EWsNnkXJt9266hH/ZJVcolhINWAu50HH444fAe v3tuWFXtiXwhNBM6N7OUKNrc5xODDl05aicTwiCGRlG86XbkZ1KuOOLZqnCwE8NOkiaR7FGssuuQsIRNzfxv5jJRB6i9MS+7qjY= Julian Foad writes: > Julian Foad wrote: >> Another possible approach is to look for compatibility breakage by >> running the 1.9 client and test suite against the 1.10 libraries, >> and indeed different client/server version combinations. I did this recently. 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. For svn:// there were three FAILs: FAIL: ra-test 1: test svn_ra_get_location_segments FAIL: ra-test 4: lock multiple paths FAIL: ra-test 5: test ra_get_dir2 In all cases these are caused by the server returning SVN_ERR_FS_INCORRECT_EDITOR_COMPLETION due to a commit editor drive failing to close directories, a testsuite bug fixed in 1.10 by r1665532. 1.10 against a 1.9 server ========================= I also ran the 1.10 testsuite against 1.9 servers over http:// and svn://. In order to run the svn:// tests I had to disable part of ra-test 10 as the 1.9 server doesn't have r1723865 and the 1.10 testsuite would block. There were more failures than running 1.9 against 1.10 but a number were functionaltity missing from 1.9 which is to be expected. Both http:// and svn:// failed these tests: FAIL: ra-test 8: delete revision newer than youngest FAIL: ra-test 9: check how ra functions handle bad revisions FAIL: basic_tests.py 67: null 'update' updates last changed rev FAIL: basic_tests.py 68: null 'property update' updates last changed rev FAIL: svnadmin_tests.py 48: upgrade --compatible-version=1.3 FAIL: svnadmin_tests.py 56: svnadmin dump with no-op property change The first ra-test FAIL is a faulty commit that is only detected by 1.10. The second ra-test FAIL is test for r1665308, a revision range check that is not in 1.9. The basic_tests FAILs are issue 4700 which is not fixed in 1.9. The first svnadmin_tests FAIL is due to the test using a 1.10 format repository. The second svnadmin_tests FAIL is due to issue 4623 which is not fixed in 1.9. The http:// tests also failed: FAIL: lock_tests.py 34: unlock file locked by other user FAIL: mod_dav_svn_tests.py 1: verify 'Cache-Control' headers on responses The lock FAIL is the same lock change that affects 1.9 but in reverse, the 1.9 server sends 403 and the 1.10 testsuite expects 423. The mod_dav_svn_tests FAIL is a new 1.10 feature not provided by the 1.9 server. Summary ======= Assuming the 1.10 behaviour of sending the 423 lock error is correct then we cannot avoid the behaviour change for the 1.9 client and the 1.10 release notes should document it. In the longer term I suppose we could backport a client side fix to 1.9. 1.9 with 1.10 libraries ======================= I built 1.9 and 1.10 with --disable-full-version-match and then I copied the 1.10 shared libraries, i.e. libsvn_*-1.so.0.0.0, into the 1.9 build overwriting the 1.9 libraries. Running the 1.9 regression tests allows testing of some of the ompatibility wrappers since the 1.9 binaries will still call the top level 1.9 functions. This does not test all the wrappers, only those invoked directly by the binaries. There are 42 FAILs running the tests over ra_local, and fs-fs-pack-test appears to hang and needs to be killed. I have not yet investigated any of these failures: FAIL: cache-test 4: basic membuffer svn_cache test FAIL: cache-test: Unknown test failure; see tests.log. FAIL: fs-fs-pack-test 18: file with 0 expanded-length, issue #4554 FAIL: fs-fs-pack-test: Unknown test failure; see tests.log. FAIL: fs-fs-private-test 3: load the P2L index FAIL: fs-fs-private-test 1: get statistics on a FSFS filesystem FAIL: fs-test 42: test svn_fs__compatible_version FAIL: fs-test 66: test rep-sharing on content rather than SHA1 FAIL: op-depth-test 69: move/delete file externals (issue 4293) FAIL: parse-diff-test 9: test parsing unidiffs lacking trailing eol FAIL: ra-test: Unknown test failure; see tests.log. FAIL: repos-test 7: test authz access control FAIL: repos-test 10: test authz with global groups FAIL: repos-test: Unknown test failure; see tests.log. FAIL: utf-test 7: test svn_utf__fuzzy_escape FAIL: copy_tests.py 4: svn cp URL URL cannot overwrite destination FAIL: diff_tests.py 51: create a diff in git unidiff format for wc-wc FAIL: diff_tests.py 52: create a diff in git unidiff format for url-wc FAIL: diff_tests.py 53: create a diff in git unidiff format for url-url FAIL: diff_tests.py 56: create a diff in git format for empty files FAIL: diff_tests.py 57: create a diff in git format showing prop changes FAIL: diff_tests.py 68: create a diff in git unidff format for wc dir mv FAIL: externals_tests.py 44: move with file externals FAIL: externals_tests.py 48: file externals unversioned obstruction FAIL: patch_tests.py 13: patch target with no svn:eol-style FAIL: patch_tests.py 15: patch target with uncommitted svn:eol-style FAIL: patch_tests.py 20: apply the same patch twice FAIL: patch_tests.py 21: patch with dir properties FAIL: patch_tests.py 27: revert a patch by reverse patching FAIL: patch_tests.py 32: patch file lacking trailing eol FAIL: patch_tests.py 44: apply a patch to an empty file FAIL: patch_tests.py 45: svn diff created patch should apply without fuz FAIL: patch_tests.py 53: patch delete modified FAIL: patch_tests.py 54: find closest hunk FAIL: stat_tests.py 27: run 'status -u' with locally deleted directories FAIL: svnadmin_tests.py 24: svnadmin verify with non-UTF-8 paths FAIL: svnauthz_tests.py 8: test 'svnauthz accessof --is' on files FAIL: svnauthz_tests.py 9: test 'svnauthz accessof --is' on files and urls FAIL: svnfsfs_tests.py 1: load-index in a packed repo FAIL: svnfsfs_tests.py 2: stats on empty repo shall not crash FAIL: upgrade_tests.py 15: upgrade tree conflict data (f20->f21) FAIL: upgrade_tests.py 21: upgrade from format 28: rename pristines -- Philip