[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

segfault in 1.6.9 when updating

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: Tue, 02 Feb 2010 19:36:15 +0100

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
Received on 2010-02-02 19:37:02 CET

This is an archived mail posted to the Subversion Dev mailing list.