[
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)