Thanks for confirming the problem I expected to see when I wrote r1443705. Now we just have to find a proper fix. (I think r1443705 can be reverted as this trick clearly doesn’t work)
Bert Sent from Windows Mail *From:* Philip Martin <codematt...@ntlworld.com> *Sent:* February 8, 2013 1:06 AM *To:* Philip Martin <codematt...@ntlworld.com> *CC:* Bert Huijben <b...@qqmail.nl>,dev@subversion.apache.org *Subject:* Re: svn commit: r1443705 - /subversion/trunk/subversion/libsvn_ra_serf/commit.c Philip Martin <codematt...@ntlworld.com> writes: >> $ gdb -arg ../../svn/.libs/lt-svn info http://localhost:1531/svn-test-work/repositories/REDIRECT-TEMP-redirect_tests-1--config-dir /home/bt/packages/subversion-trunk/subversion/tests/cmdline/svn-test-work/local_tmp/config --password rayjandom --no-auth-cache --username jrandom >> (gdb) b response_get_location >> (gdb) r >> Breakpoint 1, response_get_location (response=0xeb580f8, repos_root_url=0x0, >> pool=0xeb3bfa8) at subversion/libsvn_ra_serf/util.c:1000 >> 1000 headers = serf_bucket_response_get_headers(response); >> (gdb) n >> 1001 location = serf_bucket_headers_get(headers, "Location"); >> (gdb) >> 1002 if (location == NULL) >> (gdb) >> 1007 if (*location == '/') >> (gdb) >> 1009 const char *root_url = repos_root_url; >> (gdb) p *location >> $2 = 47 '/' >> (gdb) n >> 1011 while (! svn_uri_is_root(root_url, strlen(root_url))) >> (gdb) n >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x00002b82e9c48951 in response_get_location (response=0xeb580f8, >> repos_root_url=0x0, pool=0xeb3bfa8) >> at subversion/libsvn_ra_serf/util.c:1011 >> 1011 while (! svn_uri_is_root(root_url, strlen(root_url))) > > What I should have printed: > > (gdb) p location > $3 = 0x16d36de8 "/svn-test-work/repositories/redirect_tests-1" > (gdb) p root_url > $4 = 0x0 > (gdb) p repos_root_url > $5 = 0x0 Comparing to my own machine with serf 1.2 and apr 1.4.6 I get (gdb) p location $1 = 0x6642a8 " http://localhost:8888/svn-test-work/repositories/redirect_tests-1" (gdb) p repos_root_url $2 = 0x0 So the different location avoids the code that uses the NULL repos_root_url. -- Philip