svn diff 'path not found' and 'Error reading spooled REPORT request response'

329 views
Skip to first unread message

Dan Poirier

unread,
Jan 21, 2010, 8:44:50 AM1/21/10
to us...@subversion.apache.org
We've been seeing errors like this when trying to compare a tagged tree
to our trunk. I've tried to recreate with a small repository, but
haven't been able to.

I'd appreciate suggestions on where I should look next to figure this out.


svn diff \
https://domain.example.com/dir1/PROJECT/tags/PROJECT_3_1_154 \
https://domain.example.com/dir1/PROJECT/trunk

svn:
'/!svn/bc/23689/dir1/PROJECT/tags/PROJECT_3_1_154/src/utils/Filename.java'
path not found
svn: Error reading spooled REPORT request response

Version: subversion 1.6.6
Server: Apache httpd 2.2.14 with mod_dav_svn, mod_authz_svn
Repository format: fsfs
Platform: linux

The repository was created from a large CVS repository using cvs2svn,
where the tag already existed. (The commit message confirms that
cvs2svn did the svn commit creating it.)

Thanks,
Dan

Dan Poirier

unread,
Jan 22, 2010, 6:58:48 AM1/22/10
to us...@subversion.apache.org
We've found an (apparently) simpler case of what looks like the same
error:

$ svn ls https://domain.example/dir1/PROJECT/trunk/README
README
$ svn cat https://domain.example/dir1/PROJECT/trunk/README
svn: '/!svn/bc/23694/dir1/PROJECT/trunk/README' path not found

I don't see any command line options, or options for mod_dav_svn, to log
more information as it runs. Would rebuilding subversion with
--enable-debug and --enable-maintainer-mode provide more information to
see what's going on here?

Or is this a simple case of a corrupted repository? In which case, any
suggestions on how to proceed? It's not too late to re-run cvs2svn and
recreate the changes we made since last time, if cvs2svn was what
corrupted it and we can fix that before running it again.

Thanks for any help on how to proceed,
Dan

Bert Huijben

unread,
Jan 22, 2010, 7:23:46 AM1/22/10
to Dan Poirier, us...@subversion.apache.org


At which level in this url is your repository located?

Can you quote the relevant porting from your apache config? (Most likely the
<Location> block).

My guess is that your repository is located on the root of the webserver and
this can give some issues if not configured correctly. (Sometimes request
are handled via mod_dav and sometimes via the other handlers). As /!svn is
mapped on that root url, it has to get back in mod_dav or you get all kinds
of strange errors.

If you are just setting up your server I would recommend setting it up with
a 'svn/' or 'repos/' prefix via a location tag as shown in most examples, as
that makes the installation easier and better maintainable if some unrelated
apache settings change.

Bert


Stefan Sperling

unread,
Jan 22, 2010, 7:51:48 AM1/22/10
to Dan Poirier, us...@subversion.apache.org
On Fri, Jan 22, 2010 at 06:58:48AM -0500, Dan Poirier wrote:
> We've found an (apparently) simpler case of what looks like the same
> error:
>
> $ svn ls https://domain.example/dir1/PROJECT/trunk/README
> README
> $ svn cat https://domain.example/dir1/PROJECT/trunk/README
> svn: '/!svn/bc/23694/dir1/PROJECT/trunk/README' path not found
>
> I don't see any command line options, or options for mod_dav_svn, to log
> more information as it runs. Would rebuilding subversion with
> --enable-debug and --enable-maintainer-mode provide more information to
> see what's going on here?

Yes. Rebuilding with --enable-maintainer-mode (which implies
--enable-debug) will give us an error backtrace. Can you
trigger this via file:// access to the repository?

> Or is this a simple case of a corrupted repository?

No idea I'm afraid :-/

Stefan

Dan Poirier

unread,
Jan 22, 2010, 8:07:42 AM1/22/10
to us...@subversion.apache.org
>>>>> "Bert" == Bert Huijben <be...@qqmail.nl> writes:
Bert> At which level in this url is your repository located?

/, as you guessed.

Bert> Can you quote the relevant porting from your apache config?
Bert> (Most likely the <Location> block).

Here you go. Maybe I'm getting too clever with mod_rewrite to try to
get both subversion and viewvc served at the root url?

####### Begin extract from httpd.conf ##########

<VirtualHost x.x.x.x:443>
# omitted logging, ssl config
RewriteEngine on

# VIEWVC
# Viewvc uses GET, while SVN uses other things
RewriteCond %{REQUEST_METHOD} ^GET$
# Okay, handle this with viewvc
RewriteRule ^/(.*) /home/userid/viewvc/bin/cgi/viewvc.cgi/$1 [H=cgi-script,L]

<Directory /home/userid/viewvc/bin/cgi>
Options +ExecCGI +Includes
</Directory>
AddOutputFilterByType INCLUDES text/html

<Location />
# for viewvc:
Options +Includes

# SVN - assume anything that gets past the Rewrite stuff is svn
DAV svn
SVNPath /home/userid/svnrepository
AuthzSVNAccessFile /home/userid/svnrepository/conf/authz

# AUTH applies to it all the same
Order Deny,Allow
Allow from all
Satisfy All
AuthName w3
AuthType basic
AuthBasicProvider ldap file
AuthUserFile /home/userid/svnrepository/conf/svnpasswd
AuthLDAPUrl ldaps://ldapserver.com/ou=org,o=example.com?mail?sub? SSL
# Any valid LDAP id/password, or user in the svnpasswd, file gets past this part
# Then subversion will validate access to the repository itself
require valid-user
</Location>
</Virtualhost>
####### End extract from httpd.conf ##########

Bert> My guess is that your repository is located on the root of the
Bert> webserver and this can give some issues if not configured
Bert> correctly. (Sometimes request are handled via mod_dav and
Bert> sometimes via the other handlers). As /!svn is mapped on that
Bert> root url, it has to get back in mod_dav or you get all kinds
Bert> of strange errors.

Bert> If you are just setting up your server I would recommend
Bert> setting it up with a 'svn/' or 'repos/' prefix via a location
Bert> tag as shown in most examples, as that makes the installation
Bert> easier and better maintainable if some unrelated apache
Bert> settings change.

Maybe this is one for the doc? Or did I just miss it in there?

Dan Poirier

unread,
Jan 22, 2010, 8:39:14 AM1/22/10
to us...@subversion.apache.org
You were right - my attempt to put subversion at / is the root of my
problem. I was rewriting GET requests to go to viewvc, but looking at
access logs, subversion is doing a GET as part of this command.

I'm not sure why so much other stuff worked, leading me to mistakenly
think subversion was never using GET and it was safe to rewrite it for
viewvc.

Now to go reconfigure everything ...

Dan

Andrey Repin

unread,
Jan 22, 2010, 10:39:36 AM1/22/10
to Dan Poirier, us...@subversion.apache.org
Greetings, Dan Poirier!

Install ViewVC on a separate domain, that's the best way of dealing with it.
I.e.
https://svn.yourdomain.local/ - repository root
https://www.yourdomain.local/svn/ - ViewVC root


--
WBR,
Andrey Repin (anrd...@freemail.ru) 22.01.2010, <18:38>

Sorry for my terrible english...

Reply all
Reply to author
Forward
0 new messages