[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: r990537 - /subversion/branches/performance/subversion/libsvn_subr/svn_temp_serializer.c

From: Johan Corveleyn <jcorvel_at_gmail.com>
Date: Tue, 31 Aug 2010 22:07:59 +0200

On Tue, Aug 31, 2010 at 12:37 AM, Stefan Fuhrmann <
stefanfuhrmann_at_alice-dsl.de> wrote:

> Johan Corveleyn wrote:
>
>> On Mon, Aug 30, 2010 at 9:32 PM, Johan Corveleyn <jcorvel_at_gmail.com<mailto:
>> jcorvel_at_gmail.com>> wrote:
>>
>> On Mon, Aug 30, 2010 at 12:05 PM, Stefan Fuhrmann
>> <stefanfuhrmann_at_alice-dsl.de <mailto:stefanfuhrmann_at_alice-dsl.de>>
>>
>> wrote:
>>
>> I thought so ;) To narrow down the nature of the problem,
>> I added some checks that should be able to discern plain
>> data corruption from (de-)serialization issues. Please apply
>> either the patch or replace the original files with the versions
>> in the .zip file.
>>
>> A debug build should then, hopefully, trigger a different
>> and more specific assertion.
>>
>>
>> Ok, will try that now.
>>
>>
>> :-(, I updated to r990759 and applied your attached debug.patch, but I
>> just get the same assertion (offset by 4 lines), with no additional
>> information:
>>
>> [[[
>> $ svnserve -d -r c:/research/svn/experiment/repos
>> Assertion failed: *ptr > buffer, file
>> ..\..\..\subversion\libsvn_subr\svn_temp_serializer.c, line 286
>> ]]]
>>
>> Anything else I can try?
>>
>> The failure was expected. With the patched code, I just
> hope to get more context information.
>
> Could you send me the call stack dump? My suspicion is
> that the DAG node is already (partially) garbage before it
> actually gets added to the cache.

Ok, here it is in attachment (I removed the assert that you added in this
commit, so that the app would really crash; otherwise I couldn't get a crash
dump (or can I?)).

(I hope the attachments (file svn-crash...log.txt and svn-crash...dmp) get
through; if not, let me know and I'll zip them or something)

Some additional info:
- I couldn't reproduce the crash with a narrow range. Not even 90000:0 would
crash it (right after startup).
- BUT: if after 90000:0 I run log without -r arguments, I get an error on
the client side:
[[[
..\..\..\subversion\svn\log-cmd.c:746: (apr_err=160013)
..\..\..\subversion\libsvn_client\log.c:606: (apr_err=160013)
..\..\..\subversion\libsvn_repos\log.c:1474: (apr_err=160013)
svn: File not found: revision 90799, path '?\239'
..\..\..\subversion\libsvn_repos\log.c:372: (apr_err=160013)
svn: File not found: revision 90799, path '?\239'
..\..\..\subversion\libsvn_fs_fs\tree.c:3313: (apr_err=160013)
svn: File not found: revision 90799, path '?\239'
..\..\..\subversion\libsvn_fs_fs\tree.c:3313: (apr_err=160013)
svn: File not found: revision 90799, path '?\239'
..\..\..\subversion\libsvn_fs_fs\tree.c:3159: (apr_err=160013)
svn: File not found: revision 90799, path '?\239'
..\..\..\subversion\libsvn_fs_fs\tree.c:668: (apr_err=160013)
svn: File not found: revision 90799, path '?\239'
]]]
- This also happens when the first run is 60000:0 or even 42000:0. If the
first run is 41000:0, then the second run doesn't get the client-side error,
but the server crashes on the expected spot (after rev 42100).
- The above client-side error also happens if the second run is 96000:90000
instead of a log without -r argument.
- However, if I run "log -r96000:90000" right after startup, no problem.
- Other than that, it crashes reproducibly after 42100 if I run log with no
-r arguments right after startup.

Hmm, I hope you can figure this out ...

-- 
Johan

Received on 2010-08-31 22:09:25 CEST

This is an archived mail posted to the Subversion Dev mailing list.