On Sun, Dec 2, 2012 at 3:05 PM, Lieven Govaerts <svnlgo_at_mobsol.be> wrote:
> Attached the patch. ( I get paid per mail I send to this list in case
> no one noticed. ;) )
>
> On Sun, Dec 2, 2012 at 2:57 PM, Lieven Govaerts <svnlgo_at_mobsol.be> wrote:
> > Hi,
> >
> > On Fri, Nov 30, 2012 at 8:19 PM, Philip Martin
> > <philip.martin_at_wandisco.com> wrote:
> >> Stefan Küng <tortoisesvn_at_gmail.com> writes:
> >>
> >>> Here's how to reproduce:
> >>>
> >>> $ svn co
> https://tortoisesvn.googlecode.com/svn/trunk/src/Resources/tools tools
> >>>
> >>> get the file here:
> >>> https://skydrive.live.com/redir?resid=D000F60A347E5B37!11352
> >>> and replace the one in 'tools' with this one.
> >>
> >> I can reproduce locally by importing tools into a local repository,
> >> checking out, replacing the file and attempting the commit. That is
> >> using serf 1.1.x. Using serf trunk the commit goes into a loop.
> >>
> >
> > I see the same problem in a local repository. With some extra logging
> > I see that one of the delta windows isn't handled correctly by the
> > server:
> >
> > This is svn trunk with serf:
> > write_handler window: {sview_offset = 102400, sview_len = 102400,
> > tview_len = 102400, num_ops = 55, src_ops = 27, ops->action =
> > svn_txdelta_new, new_data = 0x15cbc28}
> > write_handler window: {sview_offset = 204800, sview_len = 102400,
> > tview_len = 102400, num_ops = 143, src_ops = 71, ops->action =
> > svn_txdelta_new, new_data = 0x15c0028}
> > write_handler window: {sview_offset = 307200, sview_len = 102400,
> > tview_len = 102400, num_ops = 23, src_ops = 11, ops->action =
> > svn_txdelta_new, new_data = 0x15be428}
> > write_handler window: {sview_offset = 0, sview_len = 0, tview_len =
> > 102400, num_ops = 1, src_ops = 0, ops->action = svn_txdelta_new,
> > new_data = 0x17e8028}
> >
> > This is svn 1.7.7 with neon:
> > write_handler window: {sview_offset = 102400, sview_len = 102400,
> > tview_len = 102400, num_ops = 55, src_ops = 27, ops->action =
> > svn_txdelta_new, new_data = 0x15cbc28}
> > write_handler window: {sview_offset = 204800, sview_len = 102400,
> > tview_len = 102400, num_ops = 143, src_ops = 71, ops->action =
> > svn_txdelta_new, new_data = 0x15c0028}
> > write_handler window: {sview_offset = 307200, sview_len = 102400,
> > tview_len = 102400, num_ops = 23, src_ops = 11, ops->action =
> > svn_txdelta_new, new_data = 0x15be428}
> > write_handler window: {sview_offset = 0, sview_len = 0, tview_len =
> > 102400, num_ops = 1, src_ops = 0, ops->action = svn_txdelta_new,
> > new_data = 0x17e8028}
> > ...
> >
> > The core issue seems to be introduced in r1390435 as part of the
> > svndiff optimizations.
>
Thanks everyone for digging! The problem did not
show up in my tests as it only manifests when files
>100kB get updated and one of their 100k windows
does not match any source data.
> > Attached patch fixes the issue for me. I don't know how it impacts
> > other parts of the code, so review is appreciated. The patch still
> > contains logging so not meant to be applied directly!
>
Applied the relevant part as 1416194.
-- Stefan^2.
--
Certified & Supported Apache Subversion Downloads:
*
http://www.wandisco.com/subversion/download
*
Received on 2012-12-02 17:03:02 CET