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

Re: 1.6.8 up for signing / testing

From: Philip Martin <philip.martin_at_wandisco.com>
Date: Wed, 13 Jan 2010 21:18:40 +0000

Lieven Govaerts <svnlgo_at_mobsol.be> writes:

> You mean ra_serf, not serf. I've triggered a build on the Mac buildbot
> with ra_serf to see if it has the same problem, cause it's the first
> time I see these errors.
> On what platform are you building?

64-bit Linux (Debian/Lenny).

I can reproduce as follows:

 $ rm -rf repo
 $ svnadmin create repo
 $ svn mkdir -mm http://localhost/repo/A
 $ svn copy -mm http://localhost/repo/A http://localhost/repo/B
 lt-svn: ../src-1.6/subversion/libsvn_subr/path.c:955: svn_path_url_add_component2: Assertion `svn_path_is_canonical(url, pool)' failed.

Here's a bit of a gdb session:

Breakpoint 1, get_version_url (checked_in_url=0x1d48f80, session=0x1cd0a28,
    conn=0x1cd7dc0, relpath=0x7f654a2fa8da "", base_revision=1,
    parent_vsn_url=0x0, pool=0x1d48ee8)
    at ../src-1.6/subversion/libsvn_ra_serf/commit.c:486
486 SVN_ERR(svn_ra_serf__get_baseline_info(&bc_url, &bc_relpath,
(gdb) s
svn_ra_serf__get_baseline_info (bc_url=0x7fffe0877b80,
    bc_relative=0x7fffe0877b78, session=0x1cd0a28, conn=0x1cd7dc0,
    url=0x1cd7c90 "/repo", revision=1, latest_revnum=0x0, pool=0x1d48ee8)
    at ../src-1.6/subversion/libsvn_ra_serf/property.c:938
938 apr_hash_t *props = apr_hash_make(pool);
(gdb) n
941 if (! url)
946 if (! conn)
949 SVN_ERR(svn_ra_serf__discover_root(&vcc_url, &relative_url,
952 if (revision != SVN_INVALID_REVNUM)
(gdb) p vcc_url
$1 = 0x1cc48f0 "/repo/!svn/vcc/default"
(gdb) n
954 SVN_ERR(svn_ra_serf__retrieve_props(props, session, conn,
957 basecoll_url = svn_ra_serf__get_ver_prop(props, vcc_url, revision,
981 if (!basecoll_url)
(gdb) p basecoll_url
$2 = 0x1cd89b0 "/repo/!svn/bc/1/"
(gdb) fin
Run till exit from #0 svn_ra_serf__get_baseline_info (bc_url=0x7fff68746460,
    bc_relative=0x7fff68746458, session=0x1c24a28, conn=0x1c2bdc0,
    url=0x1c2bc90 "/repo", revision=1, latest_revnum=0x0, pool=0x1c9cee8)
    at ../src-1.6/subversion/libsvn_ra_serf/property.c:988
0x00007fefc1379e60 in get_version_url (checked_in_url=0x1c9cf80,
    session=0x1c24a28, conn=0x1c2bdc0, relpath=0x7fefc13938da "",
    base_revision=1, parent_vsn_url=0x0, pool=0x1c9cee8)
    at ../src-1.6/subversion/libsvn_ra_serf/commit.c:486
486 SVN_ERR(svn_ra_serf__get_baseline_info(&bc_url, &bc_relpath,
Value returned is $3 = (svn_error_t *) 0x0
(gdb) n
490 propfind_url = svn_path_url_add_component2(bc_url, bc_relpath, pool);
(gdb) p bc_url
$4 = 0x1c2c9b0 "/repo/!svn/bc/1/"
(gdb) n
lt-svn: ../src-1.6/subversion/libsvn_subr/path.c:955: svn_path_url_add_component2: Assertion `svn_path_is_canonical(url, pool)' failed.

Program received signal SIGABRT, Aborted.
0x0000003e68431ed5 in raise () from /lib/libc.so.6

Using wireshark I see that the basecoll_url value is exactly what the
server sends over the wire:

PROPFIND /repo/!svn/bln/1 HTTP/1.1
Transfer-Encoding: chunked
Depth: 0
DAV: http://subversion.tigris.org/xmlns/dav/svn/depth,http://subversion.tigris.org/xmlns/dav/svn/mergeinfo,http://subversion.tigris.org/xmlns/dav/svn/log-revprops
Content-Type: text/xml
User-Agent: SVN/1.6.8 (dev build) serf/0.3.0
Host: localhost:8888

<?xml version="1.0" encoding="utf-8"?><propfind xmlns="DAV:"><prop><baseline-collection xmlns="DAV:"/><version-name xmlns="DAV:"/></prop></propfind>

HTTP/1.1 207 Multi-Status
Date: Wed, 13 Jan 2010 21:05:55 GMT
Server: Apache/2.2.9 (Debian) mod_ssl/2.2.9 OpenSSL/0.9.8g DAV/2 SVN/1.7.0-dev
Content-Length: 441
Content-Type: text/xml; charset="utf-8"

<?xml version="1.0" encoding="utf-8"?>
<D:multistatus xmlns:D="DAV:" xmlns:ns0="DAV:">
<D:response xmlns:lp1="DAV:" xmlns:lp2="http://subversion.tigris.org/xmlns/dav/">
<D:status>HTTP/1.1 200 OK</D:status>

Received on 2010-01-13 22:19:20 CET

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