On Fri, Jun 21, 2013 at 2:25 PM, Stefan Küng <tortoise...@gmail.com> wrote: > Hi, > > Another one from the crash reports: > > in libsvn_client\log.c, line 715, function run_ra_get_log(): > > matching_segment = bsearch(&younger_rev, log_segments->elts, > log_segments->nelts, log_segments->elt_size, > compare_rev_to_segment); > SVN_ERR_ASSERT(*matching_segment);
I tried to create a test for this, but I can't. So while I'm still stumped how the only caller of run_ra_get_log could ever provide LOG_SEGMENTS which doesn't represent the history of PATHS from the oldest to youngest revs in REVISION_RANGES (including empty gaps!), clearly this is happening. Fixed in r1496110. I'll nominate for backport to 1.8.1. -- Paul T. Burba CollabNet, Inc. -- www.collab.net -- Enterprise Cloud Development Skype: ptburba P.S. Stefan - per my earlier private request, I'd still like full access to the crash reports server. I'd still like to be able to reproduce this. > The crash report indicates that 'matching_segment' is NULL, as 'bsearch' can > return according to the docs. > > First problem: the SVN_ERR_ASSERT() is wrong since it tries to access the > returned pointer instead of checking the pointer itself: > > SVN_ERR_ASSERT(matching_segment); > > would be the correct way to do this. > > The other problem is that the pointer actually is NULL and therefore the > assertion (if it was coded properly) would have triggered. Instead I now get > crash reports for this. > https://www.crash-server.com/Problem.aspx?ClientID=tsvn&ProblemID=26730 > > > Stefan > > -- > ___ > oo // \\ "De Chelonian Mobile" > (_,\/ \_/ \ TortoiseSVN > \ \_/_\_/> The coolest interface to (Sub)version control > /_/ \_\ http://tortoisesvn.net