[ 
https://issues.apache.org/jira/browse/SVN-3609?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniel Sahlberg closed SVN-3609.
--------------------------------
    Fix Version/s:     (was: unscheduled)
       Resolution: Fixed

Closing based on Julian Foad's comment about improvements in the 
canonicalization code. Verified by myself that it doesn't assert anymore.

Discussed in dev@: 
http://mail-archives.apache.org/mod_mbox/subversion-dev/202112.mbox/%3CCAJT2EHoyzr%2B5J0mD2Zj_ULRS6Ux1bNc8Jy5UGWj%2BefynN0rR7w%40mail.gmail.com%3E

> Assertion in svn_path_is_canonical, svn_path_join with 'file:' URL
> ------------------------------------------------------------------
>
>                 Key: SVN-3609
>                 URL: https://issues.apache.org/jira/browse/SVN-3609
>             Project: Subversion
>          Issue Type: Bug
>          Components: libsvn_subr
>    Affects Versions: 1.6.x
>            Reporter: Subversion Importer
>            Priority: Blocker
>
> While trying to discover why some URLs work from the command line, but fail 
> when used in calls to libsvn_client I came across this:
> {quote}
> Assertion failed: (svn_path_is_canonical(base, pool)), function 
> svn_path_join, file subversion/libsvn_subr/path.c, line 114.
> {quote}
> This didn't happen with http: URLs, only with file: URLs. That inconsistency 
> looks like a bug.
> The following script replicates it:
> {noformat}
> #! /bin/sh
> svn --version
> echo '\nUSING http:'
> P='http://svn.apache.org/repos/asf'
> svn info ${P}/.
> svn info ${P}/%2E
> svn info ${P}%2F
> cd "/tmp"
> R="/tmp/repo-$$"
> svnadmin create $R
> echo '\nUSING file:'
> P="file://$R"
> svn info ${P}/.
> svn info ${P}/%2E             # ABORTS
> svn info ${P}%2F              # ABORTS
> #end
> ---------------------------------
> Output:
> svn, version 1.6.6 (r40053)
>    compiled Oct 22 2009, 14:13:09
> Copyright (C) 2000-2009 CollabNet.
> Subversion is open source software, see http://subversion.tigris.org/
> This product includes software developed by CollabNet 
> (http://www.Collab.Net/).
> The following repository access (RA) modules are available:
> * ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
>   - handles 'http' scheme
>   - handles 'https' scheme
> * ra_svn : Module for accessing a repository using the svn network protocol.
>   - with Cyrus SASL authentication
>   - handles 'svn' scheme
> * ra_local : Module for accessing a repository on local disk.
>   - handles 'file' scheme
> * ra_serf : Module for accessing a repository via WebDAV protocol using serf.
>   - handles 'http' scheme
>   - handles 'https' scheme
> USING http:
> Path: asf
> URL: http://svn.apache.org/repos/asf
> Repository Root: http://svn.apache.org/repos/asf
> Repository UUID: 13f79535-47bb-0310-9956-ffa450edef68
> Revision: 927351
> Node Kind: directory
> Last Changed Author: kkolinko
> Last Changed Rev: 927351
> Last Changed Date: 2010-03-25 11:34:10 +0000 (Thu, 25 Mar 2010)
> Path: .
> URL: http://svn.apache.org/repos/asf/%2E
> Repository Root: http://svn.apache.org/repos/asf/%2E
> Repository UUID: 13f79535-47bb-0310-9956-ffa450edef68
> Revision: 927351
> Node Kind: directory
> Last Changed Author: kkolinko
> Last Changed Rev: 927351
> Last Changed Date: 2010-03-25 11:34:10 +0000 (Thu, 25 Mar 2010)
> svn: 'http://svn.apache.org/repos/asf%2F' path not found
> USING file:
> Path: repo-484
> URL: file:///tmp/repo-484
> Repository Root: file:///tmp/repo-484
> Repository UUID: 8eca9714-5942-4196-9ab1-e102eadc450c
> Revision: 0
> Node Kind: directory
> Last Changed Rev: 0
> Last Changed Date: 2010-03-25 11:34:55 +0000 (Thu, 25 Mar 2010)
> Assertion failed: (svn_path_is_canonical(base, pool)), function 
> svn_path_join, file subversion/libsvn_subr/path.c, line 114.
> ./svn_bug: line 17:   491 Abort trap              svn info ${P}/%2E
> Assertion failed: (svn_path_is_canonical(base, pool)), function 
> svn_path_join, file subversion/libsvn_subr/path.c, line 114.
> ./svn_bug: line 18:   493 Abort trap              svn info ${P}%2F
> ---------------------------------
> Both aborts produce the same stack trace:
> Thread 0 Crashed:
> 0   libSystem.B.dylib                 0x00007fff825efcb4 __kill + 12
> 1   libSystem.B.dylib                 0x00007fff8267ab1c abort + 88
> 2   libSystem.B.dylib                 0x00007fff8266e644 __assert_rtn + 108
> 3   libsvn_subr-1.0.dylib             0x00000001002d26c4 svn_path_join + 144
> 4   libsvn_repos-1.0.dylib            0x0000000100139b38 check_repos_path + 56
> 5   libsvn_repos-1.0.dylib            0x0000000100139f1c 
> svn_repos_find_root_path + 84
> 6   libsvn_ra_local-1.0.dylib         0x0000000100115e0c 
> svn_ra_local__split_URL + 508
> 7   libsvn_ra_local-1.0.dylib         0x0000000100111e64 svn_ra_local__open + 
> 172
> 8   libsvn_ra-1.0.dylib               0x00000001000fa354 svn_ra_open3 + 2124
> 9   libsvn_client-1.0.dylib           0x00000001000793e8 
> svn_client__open_ra_session_internal + 712
> 10  libsvn_client-1.0.dylib           0x000000010007997c 
> svn_client__ra_session_from_path + 420
> 11  libsvn_client-1.0.dylib           0x000000010005d060 svn_client_info2 + 
> 336
> 12  svn                               0x0000000100009df8 svn_cl__info + 688
> 13  svn                               0x000000010000f560 main + 10968
> 14  svn                               0x0000000100002350 start + 64
> {noformat}
> Original issue reported by *chris0*



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to