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: '/!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.)
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.
> 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
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.
> 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?
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?
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.
> 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 ...