Hi,

Going through some crash reports for TSVN, I found the following segfault:

libsvn_wc\update_editor.c, line 1630, function check_tree_conflict():
 path_in_repos = svn_path_is_child(repos_url, entry->url, pool);

The 'repos_url' is a pointer to NULL.

The conflict reason is svn_wc_conflict_reason_edited.

Could it be that 'repos_url' is NULL because the entry is deleted upon an update?

The callstack looks like this:
     TortoiseProc.exe!is_child(path_type_t type=type_uri)  Line 524    C
TortoiseProc.exe!svn_uri_is_child(const char * uri1=0x00000000, const char * uri2=0x02211c48, apr_pool_t * pool=0x059a50c8) Line 982 + 0x16 bytes C TortoiseProc.exe!check_tree_conflict(svn_wc_conflict_description_t * * pconflict=0x0188f548, edit_baton * eb=0x0253d378, svn_stringbuf_t * log_accum=0x059a54d0, const char * full_path=0x059a5420, const svn_wc_entry_t * entry=0x021d25f8, svn_wc_adm_access_t * parent_adm_access=0x021fbab0, svn_wc_conflict_action_t action=svn_wc_conflict_action_delete, svn_node_kind_t their_node_kind=svn_node_none, const char * their_url=0x059a52b8, apr_pool_t * pool=0x00000000) Line 1630 + 0xe bytes C > TortoiseProc.exe!do_entry_deletion(edit_baton * eb=0x00000000, const char * parent_path=0x037ae628, const char * path=0x059a5180, const char * their_url=0x059a52b8, int * log_number=0x037ae5f0, apr_pool_t * pool=0x00000000) Line 2035 + 0x29 bytes C TortoiseProc.exe!delete_entry(const char * path=0x059a5180, long revision=-1, void * parent_baton=0x059a52b8, apr_pool_t * pool=0x059a50c8) Line 2218 + 0x1b bytes C TortoiseProc.exe!delete_entry(const char * path=0x059a5180, long base_revision=-1, void * parent_baton=0x037ae480, apr_pool_t * pool=0x059a50c8) Line 293 + 0x12 bytes C TortoiseProc.exe!delete_entry(const char * path=0x059a5180, long base_revision=-1, void * parent_baton=0x037ae478, apr_pool_t * pool=0x059a50c8) Line 93 + 0x1a bytes C TortoiseProc.exe!start_element(int * elem=0x0188f704, void * userdata=0x024f5cb0, int parent=239, const char * nspace=0x02694f88, const char * elt_name=0x026941b0, const char * * atts=0x0241f040) Line 1819 + 0x20 bytes C TortoiseProc.exe!wrapper_startelm_cb(void * baton=0x013a2988, int parent=239, const char * nspace=0x02694f88, const char * name=0x026941b0, const char * * atts=0x0241f040) Line 1030 + 0x20 bytes C TortoiseProc.exe!start_element(void * userdata=0x02688fd0, const char * name=0x0268c419, const char * * atts=0x0241f040) Line 330 + 0x1e bytes C TortoiseProc.exe!doContent(void * parser=0x00000000, int startTagLevel=0, const encoding * enc=0x0071b9c8, const char * s=0x0361d0ab, const char * end=0x0361e3f0, const char * * nextPtr=0x02689838) Line 1697 + 0xe bytes C TortoiseProc.exe!contentProcessor(void * parser=0x02689820, const char * start=0x0361c3f0, const char * end=0x0361e3f0, const char * * endPtr=0x02689838) Line 1354 + 0x22 bytes C TortoiseProc.exe!XML_ParseBuffer(void * parser=0x02689820, int len=8192, int isFinal=0) Line 1156 + 0x38 bytes C TortoiseProc.exe!XML_Parse(void * parser=0x02689820, const char * s=0x0268cb60, int len=8192, int isFinal=0) Line 1145 + 0xc bytes C TortoiseProc.exe!ne_xml_parse(ne_xml_parser_s * p=0x02688fd0, const char * block=0x0268cb60, unsigned int len=8192) Line 588 + 0xc bytes C TortoiseProc.exe!cancellation_callback(void * userdata=0x01393a80, const char * block=0x0268cb60, unsigned int len=8192) Line 1149 + 0x12 bytes C TortoiseProc.exe!do_inflate(ne_decompress_s * ctx=0x0268cb58, const char * buf=0x00000000, unsigned int len=0) Line 220 + 0x11 bytes C TortoiseProc.exe!gz_reader(void * ud=0x0268cb58, const char * buf=0x02686c78, unsigned int len=4090) Line 366 + 0x7 bytes C TortoiseProc.exe!ne_read_response_block(ne_request_s * req=0x02686c50, char * buffer=0x02686c78, unsigned int buflen=4090) Line 794 + 0x10 bytes C TortoiseProc.exe!ne_request_dispatch(ne_request_s * req=0x02686c50) Line 1380 + 0x13 bytes C TortoiseProc.exe!svn_ra_neon__request_dispatch(int * code_p=0x00000000, svn_ra_neon__request_t * req=0x0071e934, apr_hash_t * extra_headers=0x0071e944, const char * body=0x00000000, int okay_1=200, int okay_2=0, apr_pool_t * pool=0x01369050) Line 1451 C TortoiseProc.exe!parsed_request(svn_ra_neon__request_t * req=0x00000000, svn_ra_neon__session_t * ras=0x024e9bb0, const char * method=0x0071d80c, const char * url=0x024ea110, const char * body=0x00000000, apr_file_t * body_file=0x00000000, void (ne_xml_parser_s *, void *)* set_parser=0x00000000, svn_error_t * (int *, void *, int, const char *, const char *, const char * *)* startelm_cb=0x005cd810, svn_error_t * (void *, int, const char *, unsigned int)* cdata_cb=0x005ce570, svn_error_t * (void *, int, const char *, const char *)* endelm_cb=0x005ce6c0, void * baton=0x024f5cb0, apr_hash_t * extra_headers=0x01393910, int * status_code=0x00000000, int spool_response=0, apr_pool_t * pool=0x01369050) Line 1234 + 0x58 bytes C TortoiseProc.exe!svn_ra_neon__parsed_request(svn_ra_neon__session_t * sess=0x024e9bb0, const char * method=0x0071d80c, const char * url=0x024ea110, const char * body=0x00000000, apr_file_t * body_file=0x0138f9a0, void (ne_xml_parser_s *, void *)* set_parser=0x00000000, svn_error_t * (int *, void *, int, const char *, const char *, const char * *)* startelm_cb=0x005cd810, svn_error_t * (void *, int, const char *, unsigned int)* cdata_cb=0x005ce570, svn_error_t * (void *, int, const char *, const char *)* endelm_cb=0x005ce6c0, void * baton=0x024f5cb0, apr_hash_t * extra_headers=0x01393910, int * status_code=0x00000000, int spool_response=0, apr_pool_t * pool=0x01369050) Line 1293 C TortoiseProc.exe!reporter_finish_report(void * report_baton=0x024f5cb0, apr_pool_t * pool=0x01369050) Line 2395 + 0x32 bytes C TortoiseProc.exe!svn_wc_crawl_revisions4(const char * path=0x013751d0, svn_wc_adm_access_t * adm_access=0x01369260, const svn_ra_reporter3_t * reporter=0x0071fc18, void * report_baton=0x024f5cb0, int restore_files=1, svn_depth_t depth=-2, int honor_depth_exclude=1, int depth_compatibility_trick=0, int use_commit_times=0, void (void *, const svn_wc_notify_t *, apr_pool_t *)* notify_func=0x0044be42, void * notify_baton=0x0012f070, svn_wc_traversal_info_t * traversal_info=0x01369090, apr_pool_t * pool=0x01369050) Line 748 + 0x7 bytes C TortoiseProc.exe!svn_client__update_internal(long * result_rev=0x0188fad4, const char * path=0x013751d0, const svn_opt_revision_t * revision=0x0012f3a8, svn_depth_t depth=-2, int depth_is_sticky=0, int ignore_externals=0, int allow_unver_obstructions=1, int * timestamp_sleep=0x00000000, int send_copyfrom_args=1, svn_client_ctx_t * ctx=0x01369230, apr_pool_t * pool=0x01369050) Line 268 + 0x44 bytes C TortoiseProc.exe!svn_client_update3(apr_array_header_t * * result_revs=0x00000000, const apr_array_header_t * paths=0x01318cb0, const svn_opt_revision_t * revision=0x0012f3a8, svn_depth_t depth=-2, int depth_is_sticky=1, int ignore_externals=0, int allow_unver_obstructions=1, svn_client_ctx_t * ctx=0x01335d60, apr_pool_t * pool=0x01367048) Line 349 + 0x2d bytes C


Stefan

--
       ___
  oo  // \\      "De Chelonian Mobile"
 (_,\/ \_/ \     TortoiseSVN
   \ \_/_\_/>     The coolest Interface to (Sub)Version Control
   /_/   \_\     http://tortoisesvn.net

Reply via email to