[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: Stefan Fuhrmann <stefanfuhrmann_at_alice-dsl.de>
Date: Tue, 31 Aug 2010 00:37:16 +0200

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.
> FWIW, I do see a lot of warnings during compilation of
> cache-membuffer.c (this is after applying your patch, so line-numbers
> should be interpreted accordingly):
>
> [[[
> ..\..\..\subversion\libsvn_subr\cache-membuffer.c(353): warning C4245:
> '=' : conversion from 'int' to 'apr_uint64_t', signed/unsigned mismatch
> ..\..\..\subversion\libsvn_subr\cache-membuffer.c(384): warning C4245:
> '=' : conversion from 'int' to 'apr_uint32_t', signed/unsigned mismatch
> ..\..\..\subversion\libsvn_subr\cache-membuffer.c(433): warning C4245:
> 'return' : conversion from 'int' to 'apr_uint32_t', signed/unsigned
> mismatch
> ..\..\..\subversion\libsvn_subr\cache-membuffer.c(546): warning C4244:
> 'initializing' : conversion from 'apr_uint64_t' to 'apr_size_t',
> possible loss of data
> ..\..\..\subversion\libsvn_subr\cache-membuffer.c(656): warning C4244:
> 'initializing' : conversion from 'apr_uint64_t' to 'int', possible
> loss of data
> ..\..\..\subversion\libsvn_subr\cache-membuffer.c(663): warning C4018:
> '>=' : signed/unsigned mismatch
> ..\..\..\subversion\libsvn_subr\cache-membuffer.c(731): warning C4245:
> '=' : conversion from 'int' to 'apr_uint32_t', signed/unsigned mismatch
> ..\..\..\subversion\libsvn_subr\cache-membuffer.c(732): warning C4245:
> '=' : conversion from 'int' to 'apr_uint32_t', signed/unsigned mismatch
> ..\..\..\subversion\libsvn_subr\cache-membuffer.c(733): warning C4245:
> '=' : conversion from 'int' to 'apr_uint32_t', signed/unsigned mismatch
> ..\..\..\subversion\libsvn_subr\cache-membuffer.c(736): warning C4244:
> 'function' : conversion from 'apr_uint64_t' to 'apr_size_t', possible
> loss of data
> ..\..\..\subversion\libsvn_subr\cache-membuffer.c(737): warning C4305:
> 'type cast' : truncation from 'apr_uint64_t' to 'unsigned char *'
None of those should affect the behavior.
> ..\..\..\subversion\libsvn_subr\cache-membuffer.c(771): warning C4018:
> '<' : signed/unsigned mismatch
That one is a theoretical issue on LLP64.
> ..\..\..\subversion\libsvn_subr\cache-membuffer.c(773): warning C4245:
> '=' : conversion from 'int' to 'apr_uint64_t', signed/unsigned mismatch
> ..\..\..\subversion\libsvn_subr\cache-membuffer.c(944): warning C4244:
> '=' : conversion from 'apr_uint64_t' to 'apr_size_t', possible loss of
> data
> ..\..\..\subversion\libsvn_subr\cache-membuffer.c(946): warning C4305:
> 'type cast' : truncation from 'apr_uint64_t' to 'char *'
> ]]]
Uncritical, again. I will fix them all later this week.

Thank you for your time helping me to debug that code!

-- Stefan^2.
Received on 2010-08-31 00:38:29 CEST

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