subversion-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan K√ľng <tortoise...@gmail.com>
Subject segfault in 1.6.9 when updating
Date Tue, 02 Feb 2010 18:36:15 GMT
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


Mime
View raw message