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

> Johan Corveleyn wrote:
>
>> On Mon, Aug 30, 2010 at 9:32 PM, Johan Corveleyn <jcor...@gmail.com<mailto:
>> jcor...@gmail.com>> wrote:
>>
>>    On Mon, Aug 30, 2010 at 12:05 PM, Stefan Fuhrmann
>>    <stefanfuhrm...@alice-dsl.de <mailto:stefanfuhrm...@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
Process info:
Cmd line: 
C:\research\svn\client_build\svn_branch_performance\dist\bin\svnserve.exe -d -r 
c:/research/svn/experiment/repos
Working Dir: C:\research\svn\experiment\repos
Version:  1.7.0 (dev build), compiled Aug 19 2010, 00:50:40
Platform: Windows OS version 5.1 build 2600 Service Pack 3

Exception: ACCESS_VIOLATION

Registers:
eax=de12e56f ebx=00d31370 ecx=00dd3573 edx=00dd3573 esi=00f0f7c4 edi=00f0f810
eip=003baffc esp=00f0f784 ebp=00f0f784 efl=00010286
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000

Stacktrace:
#1  0x003baffc in svn_fs_fs__id_deserialize()
        buffer = 0x00dd356f
        id = 
#2  0x003bb598 in svn_fs_fs__noderev_deserialize()
        buffer = 0x00dd3570
        noderev_p = 
        noderev = 
#3  0x003bfa4e in svn_fs_fs__dag_deserialize()
        out = 
        data = 
        data_len = 1e0
        pool = 
        node = 
#4  0x004bc6fa in membuffer_cache_get()
        cache = 
        key = 
        key_len = 31
        item = 
        deserializer = 
        pool = 
        buffer = 0x00dd3570 ""
        group_index = 6587
        to_find = 
        entry = 
        size = 1e0
#5  0x004bc3b4 in svn_membuffer_cache_get()
        svn_err__temp = 
        value_p = 
        found = 0x00f0f8c8
        cache_void = 0x00d6bc40
        key = 
        pool = 
        full_key = 0x00dd3520
        cache = 
        full_key_len = 31
#6  0x004bdf93 in svn_cache__get()
        value_p = 
        found = 0x00f0f8c8
        cache = 
        key = 
        pool = 
#7  0x003b1158 in dag_node_cache_get()
        svn_err__temp = 
        node_p = 
        root = 
        path = 
        pool = 
        node = 
        cache = 
        key = 
        found = 0
#8  0x003b1406 in open_path()
        svn_err__temp = 
        inherit = 
        err = 
        copy_path = 
        cached_node = 
        entry = 0x00dd34c0 "s9server"
        next = 
        child = 
        parent_path_p = 
        root = 
        path = 
        flags = 0
        txn_id = 
        pool = 
        canon_path = 
        fs = 
        parent_path = 
        rest = 
        path_so_far = 
        here = 
#9  0x003b8583 in history_prev()
        svn_err__temp = 
        baton = 0x00f0fa94
        pool = 
        node = 
        path = 
        commit_rev = cccccccc
        retpool = 
        retry = 0
        copyroot_path = 
        fhd = 
        history = 
        revision = a1d1
        fs = 
        src_path = 
        parent_path = 
        copyroot_rev = cccccccc
        commit_path = 
        src_rev = cccccccc
        dst_rev = cccccccc
        root = 
        reported = 1
        prev_history = 
        args = 
#10  0x003b83a0 in fs_history_prev()
        svn_err__temp = 
        args = 
        prev_history_p = 
        history = 
        cross_copies = 1
        pool = 
        fhd = 
        fs = 
        prev_history = 
#11  0x00395c26 in svn_fs_history_prev()
        prev_history_p = 
        history = 
        cross_copies = 1
        pool = 
#12  0x00629d61 in get_history()
        svn_err__temp = 
        info = 
        fs = 
        strict = 0
        authz_read_func = 
        authz_read_baton = 0x00f0fe9c
        start = 0
        pool = 
        subpool = 
        path = 
        history_root = 
        hist = 
#13  0x00629cf9 in check_history()
        changed = 0x00f0fbf4
        info = 
        fs = 
        current = a1d1
        strict = 0
        authz_read_func = 
        authz_read_baton = 0x00f0fe9c
        start = 0
        pool = 
#14  0x00629736 in do_logs()
        svn_err__temp = 
        info = 
        changed = 1
        fs = 
        paths = 
        hist_start = 0
        hist_end = 17831
        limit = 0
        discover_changed_paths = 0
        strict_node_history = 0
        include_merged_revisions = 0
        revprops = 
        descending_order = 1
        receiver = 
        receiver_baton = 0x00f0fd20
        authz_read_func = 
        authz_read_baton = 0x00f0fe9c
        pool = 
        iterpool = 
        any_histories_left = 0
        histories = 
        rev_mergeinfo = 
        revs = 
        i = 0
        current = a1d1
        send_count = 0
#15  0x00628c09 in svn_repos_get_logs4()
        repos = 
        paths = 
        start = 0
        end = 17831
        limit = 0
        discover_changed_paths = 0
        strict_node_history = 0
        include_merged_revisions = 0
        revprops = 
        authz_read_func = 
        authz_read_baton = 0x00f0fe9c
        receiver = 
        receiver_baton = 0x00f0fd20
        pool = 
        head = 17831
        fs = 
        descending_order = 1
#16  0x0040b738 in log_cmd()
        conn = 
        pool = 
        params = 
        baton = 0x00f0fe9c
        full_path = 
        lb = 
        full_paths = 
        err = 
        include_merged_revisions = 0
        limit = 0
        b = 
        write_err = 
        paths = 
        revprop_items = 
        changed_paths = 0
        include_merged_revs_param = 0
        elt = 
        i = 1
        start_rev = 17831
        end_rev = 0
        strict_node = 0
        revprop_word = 0x00dafe98 "revprops"
        revprops = 
#17  0x004157ea in svn_ra_svn_handle_commands2()
        conn = 
        pool = 
        commands = 
        baton = 0x00f0fe9c
        error_on_disconnect = 0
        subpool = 
        iterpool = 
        err = 
        cmdname = 
        write_err = 
        params = 
        cmd_hash = 
        command = 
#18  0x00410e9b in serve()
        conn = 
        params = 
        pool = 
        warn_baton = 
        err = 
        uuid = 
        client_string = 
        cap_log = 
        client_url = 
        ra_client_string = 
        b = 
        ver = 2
        io_err = 
        cap_words = 
        caplist = 
#19  0x004035cb in serve_thread()
        tid = 
        data = 0x00d2e428
        d = 
#20  0x6eedee40 in dummy_worker()
        opaque = 0x00d2e438
        thd = 
#21  0x1023dfd3 in beginthreadex()
#22  0x1023df69 in beginthreadex()
#23  0x7c80b729 in GetModuleFileNameA()


Loaded modules:
0x00400000  
C:\research\svn\client_build\svn_branch_performance\dist\bin\svnserve.exe 
(1.7.0.0, 229376 bytes)
0x7c900000  C:\Windows\system32\ntdll.dll (5.1.2600.5755, 729088 bytes)
0x7c800000  C:\Windows\system32\kernel32.dll (5.1.2600.5781, 1007616 bytes)
0x77dd0000  C:\Windows\system32\advapi32.dll (5.1.2600.5755, 634880 bytes)
0x77e70000  C:\Windows\system32\rpcrt4.dll (5.1.2600.5795, 598016 bytes)
0x77fe0000  C:\Windows\system32\secur32.dll (5.1.2600.5834, 69632 bytes)
0x71ab0000  C:\Windows\system32\ws2_32.dll (5.1.2600.5512, 94208 bytes)
0x77c10000  C:\Windows\system32\msvcrt.dll (7.0.2600.5512, 360448 bytes)
0x71aa0000  C:\Windows\system32\ws2help.dll (5.1.2600.5512, 32768 bytes)
0x6eec0000  
C:\research\svn\client_build\svn_branch_performance\dist\bin\libapr-1.dll 
(1.3.8.0, 208896 bytes)
0x71a50000  C:\Windows\system32\mswsock.dll (5.1.2600.5625, 258048 bytes)
0x10200000  
C:\Windows\Winsxs\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_f863c71f\msvcr90d.dll
 (9.0.30729.1, 1191936 bytes)
0x10000000  
C:\research\svn\client_build\svn_branch_performance\dist\bin\libsvn_delta-1.dll 
(1.7.0.0, 262144 bytes)
0x6ee60000  
C:\research\svn\client_build\svn_branch_performance\dist\bin\libaprutil-1.dll 
(1.3.9.0, 282624 bytes)
0x6ee50000  
C:\research\svn\client_build\svn_branch_performance\dist\bin\libapriconv-1.dll 
(1.2.1.0, 45056 bytes)
0x00440000  
C:\research\svn\client_build\svn_branch_performance\dist\bin\libsvn_subr-1.dll 
(1.7.0.0, 1875968 bytes)
0x7c9c0000  C:\Windows\system32\shell32.dll (6.0.2900.6018, 8482816 bytes)
0x77f10000  C:\Windows\system32\gdi32.dll (5.1.2600.5698, 299008 bytes)
0x7e410000  C:\Windows\system32\user32.dll (5.1.2600.5512, 593920 bytes)
0x77f60000  C:\Windows\system32\shlwapi.dll (6.0.2900.5912, 483328 bytes)
0x774e0000  C:\Windows\system32\ole32.dll (5.1.2600.5512, 1298432 bytes)
0x77a80000  C:\Windows\system32\crypt32.dll (5.131.2600.5512, 610304 bytes)
0x77b20000  C:\Windows\system32\msasn1.dll (5.1.2600.5875, 73728 bytes)
0x00390000  
C:\research\svn\client_build\svn_branch_performance\dist\bin\libsvn_fs-1.dll 
(1.7.0.0, 413696 bytes)
0x00620000  
C:\research\svn\client_build\svn_branch_performance\dist\bin\libsvn_repos-1.dll 
(1.7.0.0, 368640 bytes)
0x76390000  C:\Windows\system32\imm32.dll (5.1.2600.5512, 118784 bytes)
0x773d0000  
C:\Windows\Winsxs\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83\comctl32.dll
 (6.0.2900.5512, 1060864 bytes)
0x5d090000  C:\Windows\system32\comctl32.dll (5.82.2900.5512, 630784 bytes)
0x662b0000  C:\Windows\system32\hnetcfg.dll (5.1.2600.5512, 360448 bytes)
0x71a90000  C:\Windows\system32\wshtcpip.dll (5.1.2600.5512, 32768 bytes)
0x59a60000  C:\Windows\system32\dbghelp.dll (5.1.2600.5512, 659456 bytes)
0x77c00000  C:\Windows\system32\version.dll (5.1.2600.5512, 32768 bytes)
0x76bf0000  C:\Windows\system32\psapi.dll (5.1.2600.5512, 45056 bytes)

Reply via email to