Hi,

here's another one from the crash reports sent for TSVN:

When doing an 'svn st -u' there's a crash happening in svn_relpath_join(). Stacktrace attached.

in status.c:1579, make_file_baton() there's this:
  f->repos_relpath = svn_relpath_join(find_dir_repos_relpath(pb, pool),
                                      f->name, pool);
and in find_dir_repos_relpath:
  /* Note that status->repos_relpath could be NULL in the case of a missing
   * directory, which means we need to recurse up another level to get
   * a useful relpath. */
  if (status && status->repos_relpath)
    return status->repos_relpath;

  repos_relpath = find_dir_repos_relpath(pb, pool);
  return svn_relpath_join(repos_relpath, db->name, pool);


The comment explains that status->repos_relpath can be NULL. In that case, the parent dir is used, but maybe db->edit_baton->anchor_status->repos_relpath can be NULL as well?

full dump available here:
https://www.crash-server.com/DumpGroup.aspx?ClientID=tsvn&DumpGroupID=4517

Stefan

--
       ___
  oo  // \\      "De Chelonian Mobile"
 (_,\/ \_/ \     TortoiseSVN
   \ \_/_\_/>    The coolest Interface to (Sub)Version Control
   /_/   \_\     http://tortoisesvn.net
        libsvn_tsvn32.dll!svn_relpath_join(const char * base=0x00000000, const 
char * component=0x0229b0c0, apr_pool_t * pool=0x0229b010) Line 1158     C
>       libsvn_tsvn32.dll!make_file_baton(dir_baton * 
> parent_dir_baton=0x02297048, const char * path=0x022998c0, apr_pool_t * 
> pool=0x0229b010) Line 1580        C
        libsvn_tsvn32.dll!add_file(const char * path=0x022998c0, void * 
parent_baton=0x02297048, const char * copyfrom_path=0x00000000, long 
copyfrom_revision=-1, apr_pool_t * pool=0x0229b010, void * * 
file_baton=0x0229b054) Line 2037      C
        libsvn_tsvn32.dll!add_file(const char * path=0x022998c0, void * 
parent_baton=0x02297040, const char * copyfrom_path=0x00000000, long 
copyfrom_revision=-1, apr_pool_t * pool=0x0229b010, void * * 
file_baton=0x02289a1c) Line 172       C
        libsvn_tsvn32.dll!start_element(int * elem=0x03faf4d0, void * 
userdata=0x022899f8, int parent=239, const char * nspace=0x02257248, const char 
* elt_name=0x0230a018, const char * * atts=0x0231ea38) Line 1691  C
        libsvn_tsvn32.dll!wrapper_startelm_cb(void * baton=0x022930a8, int 
parent=239, const char * nspace=0x02257248, const char * name=0x0230a018, const 
char * * atts=0x0231ea38) Line 1097  C
        libsvn_tsvn32.dll!start_element(void * userdata=0x0230d3d0, const char 
* name=0x0230dd28, const char * * atts=0x0231ea38) Line 330      C
        libaprutil_tsvn32.dll!doContent(XML_ParserStruct * parser=0x023197c0, 
int startTagLevel=0, const encoding * enc=0x02339238, const char * 
s=0x0233922d, const char * end=0x02339489, const char * * nextPtr=0x023197d8) 
Line 2148        C
        libaprutil_tsvn32.dll!contentProcessor(XML_ParserStruct * 
parser=0x023197c0, const char * start=0x0233915f, const char * end=0x02339489, 
const char * * endPtr=0x023197d8) Line 1816    C
        libaprutil_tsvn32.dll!doProlog(XML_ParserStruct * parser=0x02319701, 
const encoding * enc=0x6503b470, const char * s=0x0233915f, const char * 
end=0x02339489, int tok=2, const char * next=0x0233915f, const char * * 
nextPtr=0x023197d8) Line 3541     C
        libaprutil_tsvn32.dll!prologInitProcessor(XML_ParserStruct * 
parser=0x0233915e, const char * s=0x02339138, const char * end=0x02339489, 
const char * * nextPtr=0x023197d8) Line 3132    C
        libaprutil_tsvn32.dll!XML_ParseBuffer(XML_ParserStruct * 
parser=0x023197c0, int len=849, int isFinal=0) Line 1482       C
        libaprutil_tsvn32.dll!XML_Parse(XML_ParserStruct * parser=0x023197c0, 
const char * s=0x0230e400, int len=849, int isFinal=0) Line 1469  C
        libsvn_tsvn32.dll!ne_xml_parse(ne_xml_parser_s * p=0x0230d3d0, const 
char * block=0x0230e400, unsigned int len=849) Line 588    C
        libsvn_tsvn32.dll!cancellation_callback(void * userdata=0x02299878, 
const char * block=0x0230e400, unsigned int len=849) Line 1241      C
        libsvn_tsvn32.dll!do_inflate(ne_decompress_s * ctx=0x0230e3f8, const 
char * buf=0x00000000, unsigned int len=0) Line 220        C
        libsvn_tsvn32.dll!gz_reader(void * ud=0x0230e3f8, const char * 
buf=0x0230b2d8, unsigned int len=458) Line 336   C
        libsvn_tsvn32.dll!ne_discard_response(ne_request_s * req=0x000001ca) 
Line 1389  C
        libsvn_tsvn32.dll!ne_request_dispatch(ne_request_s * req=0x0230b2b0) 
Line 1401  C
        libsvn_tsvn32.dll!svn_ra_neon__request_dispatch(int * 
code_p=0x00000000, svn_ra_neon__request_t * req=0x649b8780, apr_hash_t * 
extra_headers=0x649b8790, const char * body=0x00000000, int okay_1=200, int 
okay_2=0, apr_pool_t * pool=0x02284fb8) Line 1535    C
        libsvn_tsvn32.dll!parsed_request(svn_ra_neon__request_t * 
req=0x02293030, svn_ra_neon__session_t * ras=0x022870f8, const char * 
method=0x649b8764, const char * url=0x02287680, const char * body=0x00000000, 
apr_file_t * body_file=0x02291078, void (ne_xml_parser_s *, void *) * 
set_parser=0x00000000, svn_error_t * (int *, void *, int, const char *, const 
char *, const char * *) * startelm_cb=0x647de540, svn_error_t * (void *, int, 
const char *, unsigned int) * cdata_cb=0x647df250, svn_error_t * (void *, int, 
const char *, const char *) * endelm_cb=0x647df380, void * baton=0x022899f8, 
apr_hash_t * extra_headers=0x02299700, int * status_code=0x00000000, int 
spool_response=0, apr_pool_t * pool=0x02284fb8) Line 1323  C
        libsvn_tsvn32.dll!svn_ra_neon__parsed_request(svn_ra_neon__session_t * 
sess=0x022870f8, const char * method=0x649b8764, const char * url=0x02287680, 
const char * body=0x00000000, apr_file_t * body_file=0x02291078, void 
(ne_xml_parser_s *, void *) * set_parser=0x00000000, svn_error_t * (int *, void 
*, int, const char *, const char *, const char * *) * startelm_cb=0x647de540, 
svn_error_t * (void *, int, const char *, unsigned int) * cdata_cb=0x647df250, 
svn_error_t * (void *, int, const char *, const char *) * endelm_cb=0x647df380, 
void * baton=0x022899f8, apr_hash_t * extra_headers=0x02299700, int * 
status_code=0x00000000, int spool_response=0, apr_pool_t * pool=0x02284fb8) 
Line 1378     C
        libsvn_tsvn32.dll!reporter_finish_report(void * 
report_baton=0x022899f8, apr_pool_t * pool=0x02284fb8) Line 2424        C
        libsvn_tsvn32.dll!reporter_finish_report(void * 
report_baton=0x03faf924, apr_pool_t * pool=0x02284fb8) Line 217 C
        libsvn_tsvn32.dll!svn_wc_crawl_revisions5(svn_wc_context_t * 
wc_ctx=0x02292490, const char * local_abspath=0x022858f8, const 
svn_ra_reporter3_t * reporter=0x64a43028, void * report_baton=0x03faf924, int 
restore_files=0, svn_depth_t depth=svn_depth_unknown, int 
honor_depth_exclude=0, int depth_compatibility_trick=0, int use_commit_times=0, 
svn_error_t * (void *) * cancel_func=0x00c80984, void * 
cancel_baton=0x0028f534, void (void *, const svn_wc_notify_t *, apr_pool_t *) * 
notify_func=0x00000000, void * notify_baton=0x00000000, apr_pool_t * 
scratch_pool=0x02284fb8) Line 865     C
        libsvn_tsvn32.dll!svn_client_status5(long * result_rev=0x03fafc74, 
svn_client_ctx_t * ctx=0x02284ff8, const char * path=0x02268db0, const 
svn_opt_revision_t * revision=0x03fafa1c, svn_depth_t depth=svn_depth_unknown, 
int get_all=1, int update=1, int no_ignore=0, int ignore_externals=0, int 
depth_as_sticky=1, const apr_array_header_t * changelists=0x00000000, 
svn_error_t * (void *, const char *, const svn_client_status_t *, apr_pool_t *) 
* status_func=0x00c8059e, void * status_baton=0x03faf9fc, apr_pool_t * 
pool=0x02284fb8) Line 456       C

Reply via email to