Hi,
During the last few days, I've changed TSVN to link against the svn
trunk. The speed is much better now, so thanks for that. It's not as
fast as the 1.6.x branch yet but it's usable.
About my problem:
serf is now the default DAV lib svn uses. But with serf I get tons of
app crashes (serf calls abort() - something I won't discuss here anymore
since you all should know my opinion about that).
For example: a simple checkout of the svn trunk crashed after about 5
seconds. Subsequent updates did too - I had to run cleanup and restart
the update 27 (!!) times until I had the svn trunk on my harddrive.
I'm using serf 0.6.1, but the same problem existed with 0.3.1. I updated
to 0.6.1 yesterday hoping it would solve the problem, but apparently didn't.
Using neon instead of serf causes no problems at all. At least I haven't
found any yet.
The abort() call is triggered because of a double free as far as I can see.
I've attached two stacktraces, one for a checkout and one for an update.
Maybe switching back to neon as the default would be a good idea? Serf
clearly isn't usable in this state right now.
All this tested on Win7 x64, using an x64 build of svn/tsvn.
Since this problem is easily reproducable on my machine I'm wondering
what might be so different that you guys never had this problem?
Stefan
--
___
oo // \\ "De Chelonian Mobile"
(_,\/ \_/ \ TortoiseSVN
\ \_/_\_/> The coolest Interface to (Sub)Version Control
/_/ \_\ http://tortoisesvn.net
msvcr100d.dll!abort() Line 71 C
TortoiseProc.exe!serf_bucket_mem_free(serf_bucket_alloc_t *
allocator=0x0000000006be5318, void * block=0x0000000006b45c28) Line 246 C
TortoiseProc.exe!serf_default_destroy_and_data(serf_bucket_t *
bucket=0x0000000006b454a8) Line 116 C
TortoiseProc.exe!serf_aggregate_destroy_and_data(serf_bucket_t *
bucket=0x0000000006b454a8) Line 109 C
TortoiseProc.exe!serf_aggregate_destroy_and_data(serf_bucket_t *
bucket=0x0000000005076e38) Line 102 C
TortoiseProc.exe!serf_ssl_encrypt_destroy_and_data(serf_bucket_t *
bucket=0x0000000004801868) Line 1306 C
TortoiseProc.exe!serf_aggregate_destroy_and_data(serf_bucket_t *
bucket=0x0000000005076d38) Line 102 C
TortoiseProc.exe!destroy_ostream(serf_connection_t *
conn=0x00000000046708e8) Line 360 C
TortoiseProc.exe!reset_connection(serf_connection_t *
conn=0x00000000046708e8, int requeue_requests=0x00000001) Line 438 C
TortoiseProc.exe!read_from_connection(serf_connection_t *
conn=0x00000000046708e8) Line 948 C
TortoiseProc.exe!serf__process_connection(serf_connection_t *
conn=0x00000000046708e8, short events=0x0001) Line 991 + 0xa bytes C
TortoiseProc.exe!serf_event_trigger(serf_context_t *
s=0x000000000466f3e0, void * serf_baton=0x00000000046708f8, const apr_pollfd_t
* desc=0x000000000213b958) Line 200 + 0x16 bytes C
> TortoiseProc.exe!serf_context_run(serf_context_t *
> ctx=0x000000000466f3e0, int duration=0xd693a400, apr_pool_t *
> pool=0x000000000210be88) Line 260 + 0x14 bytes C
TortoiseProc.exe!finish_report(void * report_baton=0x0000000004675838,
apr_pool_t * pool=0x000000000210be88) Line 2234 + 0x21 bytes C
TortoiseProc.exe!svn_wc_crawl_revisions5(svn_wc_context_t *
wc_ctx=0x00000000020fdd80, const char * local_abspath=0x000000000210d810, const
svn_ra_reporter3_t * reporter=0x0000000140db1080, void *
report_baton=0x0000000004675838, int restore_files=0x00000001, svn_depth_t
depth=svn_depth_infinity, int honor_depth_exclude=0x00000000, int
depth_compatibility_trick=0x00000000, int use_commit_times=0x00000000,
svn_error_t * (void *, const char *, const svn_string_t *, const svn_string_t
*, svn_depth_t, apr_pool_t *)* external_func=0x00000001406b5e10, void *
external_baton=0x00000000029bf068, void (void *, const svn_wc_notify_t *,
apr_pool_t *)* notify_func=0x00000001400052ae, void *
notify_baton=0x000000000012d518, apr_pool_t * scratch_pool=0x000000000210be88)
Line 1010 + 0x1b bytes C
TortoiseProc.exe!update_internal(long * result_rev=0x0000000000000000,
const char * path=0x0000000004665748, const char *
local_abspath=0x000000000210d810, const char *
anchor_abspath=0x000000000210dab0, const svn_opt_revision_t *
revision=0x000000000012db68, svn_depth_t depth=svn_depth_infinity, int
depth_is_sticky=0x00000001, int ignore_externals=0x00000000, int
allow_unver_obstructions=0x00000001, int * timestamp_sleep=0x00000000029bf310,
int send_copyfrom_args=0x00000000, int innerupdate=0x00000000, svn_client_ctx_t
* ctx=0x00000000020fdcd8, apr_pool_t * pool=0x000000000210be88) Line 265 +
0xec bytes C
TortoiseProc.exe!svn_client__update_internal(long *
result_rev=0x0000000000000000, const char * path=0x0000000004665748, const
svn_opt_revision_t * revision=0x000000000012db68, svn_depth_t
depth=svn_depth_infinity, int depth_is_sticky=0x00000001, int
ignore_externals=0x00000000, int allow_unver_obstructions=0x00000001, int *
timestamp_sleep=0x00000000029bf310, int send_copyfrom_args=0x00000000, int
innerupdate=0x00000000, svn_client_ctx_t * ctx=0x00000000020fdcd8, apr_pool_t *
pool=0x000000000210be88) Line 356 + 0x98 bytes C
TortoiseProc.exe!svn_client__checkout_internal(long *
result_rev=0x0000000000000000, const char * url=0x000000000210bfe8, const char
* path=0x0000000004665748, const svn_opt_revision_t *
peg_revision=0x000000000012db68, const svn_opt_revision_t *
revision=0x000000000012db68, const svn_client__ra_session_from_path_results *
ra_cache=0x0000000000000000, svn_depth_t depth=svn_depth_infinity, int
ignore_externals=0x00000000, int allow_unver_obstructions=0x00000001, int
innercheckout=0x00000000, int * timestamp_sleep=0x0000000000000000,
svn_client_ctx_t * ctx=0x00000000020fdcd8, apr_pool_t *
pool=0x000000000210be88) Line 185 + 0x7d bytes C
TortoiseProc.exe!svn_client_checkout3(long *
result_rev=0x0000000000000000, const char * URL=0x0000000004665688, const char
* path=0x0000000004665748, const svn_opt_revision_t *
peg_revision=0x000000000012db68, const svn_opt_revision_t *
revision=0x000000000012db68, svn_depth_t depth=svn_depth_infinity, int
ignore_externals=0x00000000, int allow_unver_obstructions=0x00000001,
svn_client_ctx_t * ctx=0x00000000020fdcd8, apr_pool_t *
pool=0x000000000210be88) Line 250 C
msvcr100d.dll!abort() Line 71 C
> TortoiseProc.exe!serf_bucket_mem_free(serf_bucket_alloc_t *
> allocator=0x000000000548e0a8, void * block=0x0000000004624298) Line 246 C
TortoiseProc.exe!serf_default_destroy_and_data(serf_bucket_t *
bucket=0x0000000004623b18) Line 116 C
TortoiseProc.exe!serf_aggregate_destroy_and_data(serf_bucket_t *
bucket=0x0000000004623b18) Line 109 C
TortoiseProc.exe!serf_aggregate_destroy_and_data(serf_bucket_t *
bucket=0x0000000004723668) Line 102 C
TortoiseProc.exe!serf_ssl_encrypt_destroy_and_data(serf_bucket_t *
bucket=0x0000000004700c78) Line 1306 C
TortoiseProc.exe!serf_aggregate_destroy_and_data(serf_bucket_t *
bucket=0x0000000004723568) Line 102 C
TortoiseProc.exe!destroy_ostream(serf_connection_t *
conn=0x0000000001d6ba38) Line 360 C
TortoiseProc.exe!reset_connection(serf_connection_t *
conn=0x0000000001d6ba38, int requeue_requests=0x00000001) Line 438 C
TortoiseProc.exe!read_from_connection(serf_connection_t *
conn=0x0000000001d6ba38) Line 948 C
TortoiseProc.exe!serf__process_connection(serf_connection_t *
conn=0x0000000001d6ba38, short events=0x0001) Line 991 + 0xa bytes C
TortoiseProc.exe!serf_event_trigger(serf_context_t *
s=0x0000000001d6a530, void * serf_baton=0x0000000001d6ba48, const apr_pollfd_t
* desc=0x0000000001d8e018) Line 200 + 0x16 bytes C
TortoiseProc.exe!serf_context_run(serf_context_t *
ctx=0x0000000001d6a530, int duration=0xd693a400, apr_pool_t *
pool=0x0000000001de13f8) Line 260 + 0x14 bytes C
TortoiseProc.exe!finish_report(void * report_baton=0x0000000004509c80,
apr_pool_t * pool=0x0000000001de13f8) Line 2234 + 0x21 bytes C
TortoiseProc.exe!svn_wc_crawl_revisions5(svn_wc_context_t *
wc_ctx=0x0000000001d44d90, const char * local_abspath=0x0000000001de14e0, const
svn_ra_reporter3_t * reporter=0x0000000140db1080, void *
report_baton=0x0000000004509c80, int restore_files=0x00000001, svn_depth_t
depth=0xfffffffe, int honor_depth_exclude=0x00000001, int
depth_compatibility_trick=0x00000000, int use_commit_times=0x00000000,
svn_error_t * (void *, const char *, const svn_string_t *, const svn_string_t
*, svn_depth_t, apr_pool_t *)* external_func=0x00000001406b5e10, void *
external_baton=0x00000000037debd8, void (void *, const svn_wc_notify_t *,
apr_pool_t *)* notify_func=0x00000001400052ae, void *
notify_baton=0x000000000012d428, apr_pool_t * scratch_pool=0x0000000001de13f8)
Line 1010 + 0x1b bytes C
TortoiseProc.exe!update_internal(long * result_rev=0x00000000037dee90,
const char * path=0x0000000001db73e8, const char *
local_abspath=0x0000000001de14e0, const char *
anchor_abspath=0x0000000001de1860, const svn_opt_revision_t *
revision=0x000000000012da78, svn_depth_t depth=0xfffffffe, int
depth_is_sticky=0x00000000, int ignore_externals=0x00000000, int
allow_unver_obstructions=0x00000001, int * timestamp_sleep=0x00000000037dee94,
int send_copyfrom_args=0x00000001, int innerupdate=0x00000000, svn_client_ctx_t
* ctx=0x0000000001d44ce8, apr_pool_t * pool=0x0000000001de13f8) Line 265 +
0xec bytes C
TortoiseProc.exe!svn_client__update_internal(long *
result_rev=0x00000000037dee90, const char * path=0x0000000001db73e8, const
svn_opt_revision_t * revision=0x000000000012da78, svn_depth_t depth=0xfffffffe,
int depth_is_sticky=0x00000001, int ignore_externals=0x00000000, int
allow_unver_obstructions=0x00000001, int * timestamp_sleep=0x00000000037dee94,
int send_copyfrom_args=0x00000001, int innerupdate=0x00000000, svn_client_ctx_t
* ctx=0x0000000001d44ce8, apr_pool_t * pool=0x0000000001de13f8) Line 356 +
0x98 bytes C
TortoiseProc.exe!svn_client_update3(apr_array_header_t * *
result_revs=0x0000000000000000, const apr_array_header_t *
paths=0x0000000001d25968, const svn_opt_revision_t *
revision=0x000000000012da78, svn_depth_t depth=0xfffffffe, int
depth_is_sticky=0x00000001, int ignore_externals=0x00000000, int
allow_unver_obstructions=0x00000001, svn_client_ctx_t * ctx=0x0000000001d44ce8,
apr_pool_t * pool=0x0000000001d95f28) Line 397 + 0x77 bytes C