Hi,
Using Subversion 1.7.0-beta2, ra_serf.
It seems ra_serf attempts to free XML parser twice in some
circumstances. When performing switch between two branches I'm getting
the crash at:
> libsvn_ra-1.dll!XML_ParserFree(XML_ParserStruct * parser=0x0f2474b0)
> Line 1091 + 0x3f bytes C
libsvn_ra-1.dll!svn_ra_serf__handle_xml_parser(serf_request_t *
request=0x12957b48, serf_bucket_t * response=0x12630868, void *
baton=0x12618dc8, apr_pool_t * pool=0x12702428) Line 1591 + 0x9
bytes C
Full stack trace is attached.
Unfortunately I cannot reproduce this issue, but it happens from time to time.
--
Ivan Zhakov
ntdll.dll!_RtlReportCriticalFailure@8() + 0x57 bytes
ntdll.dll!_RtlpReportHeapFailure@4() + 0x21 bytes
ntdll.dll!_RtlpLogHeapFailure@24() + 0xa1 bytes
ntdll.dll!_RtlFreeHeap@12() + 0x50010 bytes
kernel32.dll!_HeapFree@12() + 0x14 bytes
msvcr90.dll!free(void * pBlock=0x125109b8) Line 110 C
> libsvn_ra-1.dll!XML_ParserFree(XML_ParserStruct * parser=0x0f2474b0)
> Line 1091 + 0x3f bytes C
libsvn_ra-1.dll!svn_ra_serf__handle_xml_parser(serf_request_t *
request=0x12957b48, serf_bucket_t * response=0x12630868, void *
baton=0x12618dc8, apr_pool_t * pool=0x12702428) Line 1591 + 0x9 bytes C
libsvn_ra-1.dll!handle_response(serf_request_t * request=0x12957b48,
serf_bucket_t * response=0x125109b0, svn_ra_serf__handler_t * ctx=0x12618d88,
int * serf_status=0x0e01e860, apr_pool_t * pool=0x12702428) Line 1826 + 0x17
bytes C
libsvn_ra-1.dll!handle_response_cb(serf_request_t * request=0x12957b48,
serf_bucket_t * response=0x12630868, void * baton=0x00000000, apr_pool_t *
pool=0x12702428) Line 1858 + 0x2a bytes C
libsvn_ra-1.dll!handle_response(serf_request_t * request=0x00600000,
apr_pool_t * pool=0x125109b0) Line 849 + 0xf bytes C
libsvn_ra-1.dll!read_from_connection(serf_connection_t *
conn=0x12952ac0) Line 969 + 0xb bytes C
libsvn_ra-1.dll!serf__process_connection(serf_connection_t *
conn=0x12952ac0, short events=5) Line 1071 + 0x7 bytes C
libsvn_ra-1.dll!serf_event_trigger(serf_context_t * s=0x1294d660, void
* serf_baton=0x12952ac8, const apr_pollfd_t * desc=0x12952788) Line 234 + 0xb
bytes C
libsvn_ra-1.dll!serf_context_run(serf_context_t * ctx=0x00000001, int
duration=-694967296, apr_pool_t * pool=0x12614070) Line 296 + 0x8 bytes C
libsvn_ra-1.dll!finish_report(void * report_baton=0x1294b6c0,
apr_pool_t * pool=0x1293f5f8) Line 2370 C
libsvn_wc-1.dll!svn_wc_crawl_revisions5(svn_wc_context_t *
wc_ctx=0x12920630, const char * local_abspath=0x1293ff70, const
svn_ra_reporter3_t * reporter=0x6c3621a8, void * report_baton=0x12940d70, int
restore_files=1, svn_depth_t depth=-2, int honor_depth_exclude=1, int
depth_compatibility_trick=0, int use_commit_times=0, svn_error_t * (void *)*
cancel_func=0x063f4c70, void * cancel_baton=0x0a01c958, void (void *, const
svn_wc_notify_t *, apr_pool_t *)* notify_func=0x063f4f20, void *
notify_baton=0x11ff0188, apr_pool_t * scratch_pool=0x1293f5f8) Line 861 + 0xb
bytes C
libsvn_client-1.dll!switch_internal(long * result_rev=0x0e01eb88, const
char * local_abspath=0x1293ff70, const char * anchor_abspath=0x129400c0, const
char * switch_url=0x1293fee8, const svn_opt_revision_t *
peg_revision=0x0e01eb78, const svn_opt_revision_t * revision=0x0e01eb68,
svn_depth_t depth=-2, int depth_is_sticky=0, int ignore_externals=0, int
allow_unver_obstructions=1, int ignore_ancestry=1, int *
timestamp_sleep=0x1294b6b0, svn_client_ctx_t * ctx=0x000062ba, apr_pool_t *
pool=0x1293f5f8) Line 266 + 0x52 bytes C
libsvn_client-1.dll!svn_client__switch_internal(long *
result_rev=0x0e01eb88, const char * path=0x1293ff70, const char *
switch_url=0x1293fee8, const svn_opt_revision_t * peg_revision=0x0e01eb78,
const svn_opt_revision_t * revision=0x0e01eb68, svn_depth_t depth=-2, int
depth_is_sticky=0, int ignore_externals=0, int allow_unver_obstructions=1, int
ignore_ancestry=1, int * timestamp_sleep=0x00000000, svn_client_ctx_t *
ctx=0x129205d0, apr_pool_t * pool=0x1293f5f8) Line 365 + 0x43 bytes C
libsvn_client-1.dll!svn_client_switch3(long * result_rev=0x0e01eb88,
const char * path=0x1293fa50, const char * switch_url=0x1293fee8, const
svn_opt_revision_t * peg_revision=0x0e01eb78, const svn_opt_revision_t *
revision=0x0e01eb68, svn_depth_t depth=-2, int depth_is_sticky=0, int
ignore_externals=0, int allow_unver_obstructions=1, int ignore_ancestry=1,
svn_client_ctx_t * ctx=0x129205d0, apr_pool_t * pool=0x1293f5f8) Line 397 +
0x3f bytes C
libsvn_client-1.dll!svn_client_switch2(long * result_rev=0x6c506697,
const char * path=0x00000000, const char * switch_url=0x0e01ecf0, const
svn_opt_revision_t * peg_revision=0x0e01ecb4, const svn_opt_revision_t *
revision=0x00000000, svn_depth_t depth=235006884, int depth_is_sticky=1, int
ignore_externals=235006932, int allow_unver_obstructions=0, svn_client_ctx_t *
ctx=0x052d81f0, apr_pool_t * pool=0x0e01ebb8) Line 2052 + 0x3e bytes C
mscorwks.dll!__EH_epilog3_GS() + 0xa bytes
mscorwks.dll!_CallDescrWorker@20() + 0x33 bytes
mscorwks.dll!_CallDescrWorkerWithHandler@24() + 0x9f bytes
mscorwks.dll!CallDescrWithObjectArray() + 0x334 bytes
mscorwks.dll!CStackBuilderSink::PrivateProcessMessage() + 0x2d7 bytes
mscorlib.ni.dll!5cec95c3()
[Frames below may be incorrect and/or missing, no symbols loaded for
mscorlib.ni.dll]
mscorlib.ni.dll!5d4b1bca()
mscorlib.ni.dll!5d4c5986()
mscorlib.ni.dll!5d4c5948()
mscorlib.ni.dll!5cf19fcf()
mscorlib.ni.dll!5cf302ff()
mscorlib.ni.dll!5cf1a533()
mscorlib.ni.dll!5cf1a3c9()
mscorwks.dll!_CallDescrWorker@20() + 0x33 bytes
mscorwks.dll!_CallDescrWorkerWithHandler@24() + 0x9f bytes
mscorwks.dll!DispatchCallBody() + 0x1e bytes
mscorwks.dll!DispatchCallDebuggerWrapper() + 0x3d bytes
mscorwks.dll!DispatchCallNoEH() + 0x35 bytes
mscorwks.dll!QueueUserWorkItemManagedCallback() + 0x40 bytes
mscorwks.dll!Thread::DoADCallBack() - 0x15bf bytes
mscorwks.dll!Thread::ShouldChangeAbortToUnload() - 0x737 bytes
mscorwks.dll!Thread::ShouldChangeAbortToUnload() - 0x811 bytes
mscorwks.dll!Thread::ShouldChangeAbortToUnload() - 0x685 bytes
mscorwks.dll!ManagedThreadBase::ThreadPool() + 0x13 bytes
mscorwks.dll!ManagedPerAppDomainTPCount::DispatchWorkItem() + 0xc2
bytes
mscorwks.dll!ThreadpoolMgr::ExecuteWorkRequest() + 0x7d bytes
mscorwks.dll!ThreadpoolMgr::WorkerThreadStart() + 0x121 bytes
mscorwks.dll!Thread::intermediateThreadProc() + 0x46 bytes
kernel32.dll!@BaseThreadInitThunk@12() + 0x12 bytes
ntdll.dll!___RtlUserThreadStart@8() + 0x27 bytes
ntdll.dll!__RtlUserThreadStart@8() + 0x1b bytes