Return-Path: X-Original-To: apmail-subversion-dev-archive@minotaur.apache.org Delivered-To: apmail-subversion-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C11F418071 for ; Fri, 27 Nov 2015 09:28:06 +0000 (UTC) Received: (qmail 92423 invoked by uid 500); 27 Nov 2015 09:28:06 -0000 Delivered-To: apmail-subversion-dev-archive@subversion.apache.org Received: (qmail 92373 invoked by uid 500); 27 Nov 2015 09:28:06 -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 92363 invoked by uid 99); 27 Nov 2015 09:28:06 -0000 Received: from Unknown (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 27 Nov 2015 09:28:06 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id D44501A254A for ; Fri, 27 Nov 2015 09:28:05 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.099 X-Spam-Level: X-Spam-Status: No, score=-0.099 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, URIBL_BLOCKED=0.001] autolearn=disabled Authentication-Results: spamd2-us-west.apache.org (amavisd-new); dkim=pass (1024-bit key) header.d=qqmail.nl Received: from mx1-us-west.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id DWoqmIzhsBbb for ; Fri, 27 Nov 2015 09:27:52 +0000 (UTC) Received: from mail-wm0-f53.google.com (mail-wm0-f53.google.com [74.125.82.53]) by mx1-us-west.apache.org (ASF Mail Server at mx1-us-west.apache.org) with ESMTPS id 44CE8210B7 for ; Fri, 27 Nov 2015 09:27:52 +0000 (UTC) Received: by wmvv187 with SMTP id v187so62146078wmv.1 for ; Fri, 27 Nov 2015 01:27:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qqmail.nl; s=google; h=from:to:cc:references:in-reply-to:subject:date:message-id :mime-version:content-type:content-transfer-encoding:thread-index :content-language; bh=LhExY4LRxaXnK+MwqnWmw/Nqe3q+PrfSkfsWX55i5VE=; b=PMCbl48eC4I2sPGeD2byCpxJBVEmna4iJT+W89qhdGav+SMqW/8NhvMaY7eLtF2Wc8 xZ69BliWv5Nu43w3nf7TxqmfSX2/cpYET5Xcqx+D4rhMoL7xZq0EPIWNNP7HoXDkGNcN oIs0yKeU4BBiR8Uf8H8XNO15gYdet9m4o2W6w= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:references:in-reply-to:subject:date :message-id:mime-version:content-type:content-transfer-encoding :thread-index:content-language; bh=LhExY4LRxaXnK+MwqnWmw/Nqe3q+PrfSkfsWX55i5VE=; b=G9HU4GKddtscSEW3u7J6xqiAxJ9COFpzdtGBp7SM4Fh3HmpJARipt5yQqOfsm5BIhY xQaBM7hGlWeF2TEC/p+vtsQaECXW2eHVel9oN6PNSfduH5CjzqQaFycURlKLzf+JYWgd 036W8HsRZ88H1STN0H0UEOhVTRuxmBUwtg7CtCntF9UYhinloZzlGSs0PYBWWhOdUVMb 56BSifibg2l/nGmN3xWD6WoX+EQ+OEod5hqleAOCYRAkaa5hwjgzek0rLkZLL2/JSA7X 7zUvaTXwBhvQH8Mnns3DJGGw533M1AYYYRyt+ehGw7PWFieDAIzgRynZP2BFFFAMdV06 e43w== X-Gm-Message-State: ALoCoQm5PJOC+vSwt1BCpkpt4X6Mjglgnkk6pVuiahsfiegtAf3lEkpiriUrnX05o2EZCOyJYPZG X-Received: by 10.194.105.38 with SMTP id gj6mr63535506wjb.130.1448616470748; Fri, 27 Nov 2015 01:27:50 -0800 (PST) Received: from i72600 ([2001:610:66e:0:52e5:49ff:fee1:96b7]) by smtp.gmail.com with ESMTPSA id pn6sm31897625wjb.15.2015.11.27.01.27.50 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 27 Nov 2015 01:27:50 -0800 (PST) From: "Bert Huijben" To: "'Daniel Shahaf'" , "'Philip Martin'" Cc: =?utf-8?Q?'Branko_=C4=8Cibej'?= , References: <20151125213120.9C7FE3A02EE@svn01-us-west.apache.org> <010901d127d0$81dadc60$85909520$@qqmail.nl> <5656395A.60807@apache.org> <011601d127d7$8def30d0$a9cd9270$@qqmail.nl> <87610olvpc.fsf@wandisco.com> <20151127075012.GK1899@tarsus.local2> In-Reply-To: <20151127075012.GK1899@tarsus.local2> Subject: RE: svn commit: r1716548 - /subversion/trunk/subversion/tests/libsvn_fs/fs-test.c Date: Fri, 27 Nov 2015 10:27:39 +0100 Message-ID: <02bd01d128f5$dcfe58d0$96fb0a70$@qqmail.nl> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQKdgnenhKXBgV+Z7gXJrJQ9xKlC7QGXwi9DA05vYpcBq+ngrALRo9OcARpg9HGcwudv8A== Content-Language: nl > -----Original Message----- > From: Daniel Shahaf [mailto:d.s@daniel.shahaf.name] > Sent: vrijdag 27 november 2015 08:50 > To: Philip Martin > Cc: Bert Huijben ; 'Branko =C4=8Cibej' = ; > dev@subversion.apache.org > Subject: Re: svn commit: r1716548 - > /subversion/trunk/subversion/tests/libsvn_fs/fs-test.c >=20 > Philip Martin wrote on Thu, Nov 26, 2015 at 13:46:39 +0000: > > I suppose one way to fix this would be to ensure that every BDB = revision > > generates a new node-revision-id. >=20 > I wouldn't call this a fix; I think it is a workaround. A "fix" would > be to figure out why bdb reports the wrong revision number, not to = make > the place it wrongly looks the value up in contain the right value. >=20 > To be clear, I'm not opposed to applying your patches =E2=80=94 I do = think they > are an improvement. I just want it to be clear: re-using the noderev > wasn't wrong; some other code is wrong, and we don't know which code > exactly that is. >=20 > Can the problem happen on nodes other than the root? I haven't tried > it, but I wonder if a = open_root/open_directory/close_directory/close_edit > editor drive might lead to an instance of this problem on the = directory > that was opened and closed without modification. I'm not sure what the real bug is here: * For 1.10 I added some verifications on incoming revision numbers in = mod_dav_svn. These expect that the base revision numbers passed to = editor functions are always lower than the revision against we commit. I = still think this is a good check. (But I'm not 100% sure if we correctly find the revision we commit = against) Before our svn-HTTPv2 we had a similar base revision check in a = different code path... But we skip this code path for our streamlined v2 = protocol. * To handle this we open a transaction and reload it a few times via its = name. Once created it returns one revision. Once reloaded it returns a = different -older- revision. I think *this behavior* is broken. We should = either directly return the older revision... or always return the newer = revision. -> This could be as simple as storing it in the transaction name, by = appending something like "/r123" to the name if we detect this case. =3D=3D=3D=3D=3D=3D=3D And when researching this issue I found that the root of the repository = still has the same 'last-changed-*' values in this case of a no-op = revision. With 1.9 we optimized some code in the repos layer under the assumption = that the repos-root 'always changes' in each and every revision. I think = this still works ok, but I'm not 100% sure. =3D=3D=3D=3D=3D=3D=3D And all of this brings more interesting cases to the discussion on what = changes are... So some of this should probably be added to Julian's = document on what path changes are. I'm pretty sure this 'problem' adds other nice features where dump+load = may slightly alter behavior... even though the repository is still 100% = the same in textual+property changes. Bert