On Sun, Dec 2, 2012 at 3:05 PM, Lieven Govaerts <svn...@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 <svn...@mobsol.be> wrote: > > Hi, > > > > On Fri, Nov 30, 2012 at 8:19 PM, Philip Martin > > <philip.mar...@wandisco.com> wrote: > >> Stefan Küng <tortoise...@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 *