Sébastien Brisard wrote on Fri, Dec 30, 2011 at 16:24:38 +0100:
> Hi,
> sorry for the delay. I have carried out a few more experiments (see below).
> Sébastien
>
> >> >> Should I move to svn 1.7 ?
> >> >>
> >> >
> >> > You could try moving to 1.7, and/or using the official JavaHL bindings
> >> > instead of the third-party SVNKit implementation. With my svn hat on,
> >> > though, I'd like to figure out how those revisions with bogus 'log -qv'
> >> > output were created, and if you have the time to provide a self-contained
> >> > reproduction recipe (starting with 'svnadmin create', and svn and/or
> >> > eclipse) we'd appreciate it.
> >> >
> >> I'll try my best to do that.
> >>
> >
> > Thanks.
> >
> I'm very willing to try, but I'm not sure I really understand (please
> excuse my very shallow knowledge of SVN...).
>
See https://subversion.apache.org/docs/community-guide/repro-template.sh
> >
> > Can you isolate the following factors:
> >
> > - Size of the patch. Can you commit a smaller patch --- that touches
> > all the same files your patch does? A smaller patch that touches
> > other files?
> >
>
> As I'm not sure this mailing list allow for attachment, I've
> copied/pasted a very small patch which does demonstrate the bug (at
> least, on my computer).
>
>
> *****BEGIN PATCH*****
> --- src/main/java/org/apache/commons/math/distribution/BinomialDistribution.jav(revision
> 1225833)
... snip one-line patch ...
> *****END PATCH*****
>
> I've tried to commit this patch
> 1. with eclipse + JavaHL client, this raises the same error as before
>
> *****BEGIN ERROR-MESSAGE*****
> svn: Commit failed (details follow):
> svn: File or directory 'BinomialDistribution.java' is out of date; try updating
> svn: resource out of date; try updating
> *****END ERROR-MESSAGE*****
>
> 2. with eclipse + SVNKit client: same story
> 3. with command-line svn: same story
>
OK
> >
> > - Client. Can you reproduce the errors using (a) eclipse with SVNKit,
> > (b) eclipse with Subversion's official JavaHL bindings, (c) the
> > cmdline client?
> >
> See above. Just curious: how do you force JavaHL or SVNKit client with
> cmdline? Is this a silly question?
>
It's silly :P. SVNKit is a third-party full Java implementation; the
JavaHL libraries and the cmdline client are both thin wrappers around
the C libraries.
> >
> > - Server. Does the error reproduce if you check out your working copy
> > from svn-master.apache.org? (If you literally check out from
> > https://svn-master.apache.org/repos/asf/... you'll get SSL warnings;
> > you can either bypass them or set
> > # 140.211.11.4 svn.apache.org
> > in your /etc/hosts file)
> >
> Just for the record, the above tests were carried out with the
> repository https://svn.apache.org/repos/asf/commons/proper/math/trunk.
> As I'm in Europe, I suppose the EU mirror was used (is there a way to
> check?).
What IP does svn.apache.org resolve to for you?
% host svn.eu.apache.org
svn.eu.apache.org has address 192.87.106.227
svn.eu.apache.org has IPv6 address 2001:610:1:80bc:192:87:106:227
% host svn.us.apache.org
svn.us.apache.org has address 140.211.11.4
% host svn-master.apache.org
svn-master.apache.org has address 140.211.11.4
> I've tried to commit the same patch to svn-master. For some
> reasons, I get many error messages with subclipse. For lack of time, I
> therefore only tested the command-line client. It WORKED!!! See rev
> 1225839, and 1225841.
>
The diff seems to be identical between the two mirrors:
% for i in eris harmonia; do svn diff http://$i.apache.org/repos/asf/commons -c 1225839 | sha1sum ; done
3730c3ef8fdd6778da568339d90ea7a99b55e886 -
3730c3ef8fdd6778da568339d90ea7a99b55e886 -
> As previously mentioned, Gilles already encountered the same
> difficulty, and the problem was only solved when Phil managed to
> successfully commit a dummy patch to the incriminated file. So now
> that the patch was accepted, I tried to commit to
> https://svn.apache.org/repos/asf/commons/proper/math/trunk the
> following patch
>
> *****BEGIN PATCH*****
> --- src/main/java/org/apache/commons/math/distribution/BinomialDistribution.java (revision
> 1225842)
... snip one-line patch ...
> *****END PATCH*****
>
> It WORKED !!!
>
> - r1225843 used subclipse + JavaHL,
> - r1225844 used subclipse + SVNKit.
>
So, to summarize: you failed to commit a one-line change to
BinomialDistribution via the US master regardless of what client you
used, was able to commit it via the EU mirror with the cmdline client
(but haven't tested with subclipse), and subsequently to the successful
commit you could commit another trivial change to the same file with
both eclipse/JavaHL and eclipse/SVNKit.
I'm a bit confused as to which combinations exactly do/don't work here,
but I would guess that the differing 'Last Changed Revision' values
between the two mirrors cause spurious out-of-date errors. I don't know
if you checked out fresh working copies from each mirror, but if you
didn't then it may have contributed to the confusion/disagreements.
The fix would be, then, firstly to avoid creating a disparity in the
changes ('log -qv' and 'svn info | grep "^Last Changed Revision"')
between the two mirrors --- preferably by preventing null-changes from
being created in revisions on the master[1], alternatively by faithfully
reproducing them --- and secondly, to see what can be done about
"existing in the wild" instances of this bug.
I've filed issue #4090 to track this:
http://subversion.tigris.org/issues/show_bug.cgi?id=4090
[1] which is where the reproduction recipe requested above comes in
> Does all that help?
Yes, it does; thanks a lot. So far I identify at least one concrete
bug; if there are further problems here, we'll open further issues as
needed.
> Can I try and commit the longer patch that
> initially was the cause of this thread, or should I wait for you to
> explore in more detail this issue?
>
No, go ahead and commit it please. You should be able to do so to
one of the two mirrors.
> Best regards, thanks again for your help!
> Sébastien
Cheers, happy new year,
Daniel
Received on 2011-12-30 23:30:53 CET