On Wed, Sep 8, 2010 at 12:00 PM, Stefan Fuhrmann
<stefanfuhrmann_at_alice-dsl.de> wrote:
> Johan Corveleyn wrote:
>>
>> On Mon, Sep 6, 2010 at 2:10 AM, Stefan Fuhrmann
>> <stefanfuhrmann_at_alice-dsl.de> wrote:
>>
>>>
>>> The only way to get closer to understanding the nature of the
>>> problem, I've added extensive logging code to the cache.
>>> Please run "svnserve -M1000 -d --forground -r ... > svnserve.log",
>>> zip the log file after the programm crashed & got terminated and
>>> send it to me directly.
>>>
>>
>> Ok, here it is in attachment, zipped together with the .log and .dmp
>> files from the crash.
>>
>> The exact log command I executed was:
>> $ svn log
>> svn://localhost/trunk/sourcesEJB/uz/s9server/services/toegang/driver/settings.xml
>>
>> Cheers,
>>
>
> Thanks Johan!
>
> I finally found the problem and it actually was more likely
> to hit 32 bit systems then 64 bit ones. The relevant part
> from the log is this:
>
> create cache 1 prefix =
> fsfs:8d52877e-3a3d-4b59-a976-c8364f526eee/C:/research/svn/experiment/repos/db:RRI
> create cache 2 prefix =
> fsfs:8d52877e-3a3d-4b59-a976-c8364f526eee/C:/research/svn/experiment/repos/db:DAG
> create cache 3 prefix =
> fsfs:8d52877e-3a3d-4b59-a976-c8364f526eee/C:/research/svn/experiment/repos/db:DIR
> create cache 4 prefix =
> fsfs:8d52877e-3a3d-4b59-a976-c8364f526eee/C:/research/svn/experiment/repos/db:PACK-MANIFEST
> create cache 5 prefix =
> fsfs:8d52877e-3a3d-4b59-a976-c8364f526eee/C:/research/svn/experiment/repos/db:TEXT
> create cache 6 prefix =
> fsfs:8d52877e-3a3d-4b59-a976-c8364f526eee/C:/research/svn/experiment/repos/db:NODEREVS
> get 6: key=P+, Y3 MD5=52408b02cc58866e204010717f31c0ef hash=42680402
> (0,257607) not found
> set 6: key=P+, Y3 MD5=52408b02cc58866e204010717f31c0ef hash=42680402
> (0,257607) 480_at_2113312
> get 6: key=P+, Y3 MD5=52408b02cc58866e204010717f31c0ef hash=42680402
> (0,257607) 480_at_2113312
> get 2: key=2(& /trunk/sourcesEJB/uz/s9server
> MD5=52408b029f15368c2de222f27705f679 hash=42680402 (0,257607) 480_at_2113312
> <crash>
>
> As you can see, bucket (0,257607) contains a NODEREV
> the last get will read it as a DAG node. It only tested the first
> 4 bytes of the MD5 key hash because the to_find variable
> in find_entry has been a local array once and has become a
> pointer later on. sizeof(to_find) was now 4 .. 8 instead of 16.
>
> r994956 should fix the problem.
That's great news! I'll give it a spin tonight.
Now I just hope as much of possible of this makes it into 1.7 :-).
Cheers,
--
Johan
Received on 2010-09-08 12:42:12 CEST