Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is Svn trying to access the Format file in my error directory?

Tags:

svn

Currently we have on repository for multiple projects. I am restructuring this so we can have an SVN repository per project.

I've been following http://www.yolinux.com/TUTORIALS/SubversionRepositoryDataTransfer.html with success but have come into a problem.

In the new repository I add my trunk, branches, and tags directory. I them attempt to move the files out of the root directory into the trunk directory. I'm able to successfully add those folders. The problem is when I try to move the files into the trunk directory. Specifically adding a file to the ./trunk level seems to fail the most:

Commit failed (details follow):
Could not open the requested SVN filesystem
Could not open the requested SVN filesystem

Looking at my apache logs I see this in the error file:

[Fri Aug 10 18:30:00 2012] [error] [client 173.0.0.1] (20014)Internal error: Can't open file '/var/www/vhosts/site.com/subdomains/repo/error_docs/format': No such file or directory
[Fri Aug 10 18:30:00 2012] [error] [client 173.0.0.1] Could not fetch resource information.  [500, #0]
[Fri Aug 10 18:30:00 2012] [error] [client 173.0.0.1] Could not open the requested SVN filesystem  [500, #2]
[Fri Aug 10 18:30:00 2012] [error] [client 173.0.0.1] Could not open the requested SVN filesystem  [500, #2]
[Fri Aug 10 18:30:00 2012] [error] [client 173.0.0.1] (20014)Internal error: Can't open file '/var/www/vhosts/site.com/subdomains/repo/error_docs/format': No such file or directory
[Fri Aug 10 18:30:00 2012] [error] [client 173.0.0.1] Could not fetch resource information.  [500, #0]
[Fri Aug 10 18:30:00 2012] [error] [client 173.0.0.1] Could not open the requested SVN filesystem  [500, #2]
[Fri Aug 10 18:30:00 2012] [error] [client 173.0.0.1] Could not open the requested SVN filesystem  [500, #2]

I'm not sure why it's looking for format in my error_docs directory. That directory exists but it doesn't have anything named format.

The permissions of my repo are the same as a working functional repo. So while it looks like a permissions error I dont' see where my setup fails

drwxr-xr-x 7 apache apache       4096 Aug 10 17:41 repo

drwxr-xr-x 2 apache apache 4096 Aug 10 17:41 conf
drwxr-xr-x 3 apache apache 4096 Aug 10 17:41 dav
drwxr-sr-x 6 apache apache 4096 Aug 10 19:05 db
-r--r--r-- 1 apache apache    2 Aug 10 17:41 format
drwxr-xr-x 2 apache apache 4096 Aug 10 17:41 hooks
drwxr-xr-x 2 apache apache 4096 Aug 10 17:41 locks
-rw-r--r-- 1 apache apache  229 Aug 10 17:41 README.txt

edit - 08/17, poking more at this issue. The current set up is:

/pickles.com/
    /trunk
    /branches
    /tags
    pickles.com/
        /app
        /config
        etc...

I'm attempting to place the code in trunk with svn mv pickles.com/pickles.com/* pickles.com/trunk. I receive the same error with the following in my apache logs:

==> access_log <==
120.0.0.1 - travisks [17/Aug/2012:12:40:40 -0400] "PROPFIND /pickles.com/pickles.com HTTP/1.1" 207 919 "-" "SVN/1.6.17 (r1128011) neon/0.28.6"
120.0.0.1 - travisks [17/Aug/2012:12:40:40 -0400] "PROPFIND /pickles.com/!svn/vcc/default HTTP/1.1" 207 606 "-" "SVN/1.6.17 (r1128011) neon/0.28.6"
120.0.0.1 - travisks [17/Aug/2012:12:40:40 -0400] "PROPFIND /pickles.com/!svn/bln/22 HTTP/1.1" 207 659 "-" "SVN/1.6.17 (r1128011) neon/0.28.6"
120.0.0.1 - travisks [17/Aug/2012:12:40:40 -0400] "PROPFIND /pickles.com/pickles.com HTTP/1.1" 207 919 "-" "SVN/1.6.17 (r1128011) neon/0.28.6"
120.0.0.1 - travisks [17/Aug/2012:12:40:41 -0400] "PROPFIND /pickles.com/!svn/vcc/default HTTP/1.1" 207 672 "-" "SVN/1.6.17 (r1128011) neon/0.28.6"
120.0.0.1 - travisks [17/Aug/2012:12:40:41 -0400] "PROPFIND /pickles.com/!svn/bc/22/pickles.com HTTP/1.1" 207 930 "-" "SVN/1.6.17 (r1128011) neon/0.28.6"
120.0.0.1 - travisks [17/Aug/2012:12:40:41 -0400] "PROPFIND /pickles.com/trunk/pickles.com HTTP/1.1" 500 430 "-" "SVN/1.6.17 (r1128011) neon/0.28.6"

==> error_log <==
[Fri Aug 17 12:40:41 2012] [error] [client 120.0.0.1] (20014)Internal error: Can't open file '/var/www/vhosts/publicsite.com/subdomains/svn/error_docs/format': No such file or directory
[Fri Aug 17 12:40:41 2012] [error] [client 120.0.0.1] Could not fetch resource information.  [500, #0]
[Fri Aug 17 12:40:41 2012] [error] [client 120.0.0.1] Could not open the requested SVN filesystem  [500, #2]
[Fri Aug 17 12:40:41 2012] [error] [client 120.0.0.1] Could not open the requested SVN filesystem  [500, #2]

My svn configuration:

<location />
  DAV svn
  SVNParentPath /var/www/vhosts/publicsite.com/subdomains/svn
  SVNListParentPath on

  AuthType Basic
  AuthName "svn.publicsite.com"
  AuthUserFile /var/www/vhosts/publicsite.com/subdomains/svn/conf/passwd

  Require valid-user
</location>

This same configuration works in another virtual host on the same server. So I wouldn't expect to be the problem. The only change is that ParentPath is on, and this is a directory of repositories instead of a single repository with many directories.

Edit - Apache is redirecting SVN to the error_docs directory

I updated the conf to act as a single repository.

The original:

SVNParentPath /var/www/vhosts/publicsite.com/subdomains/svn2
SVNListParentPath on

To single format:

SVNPath /var/www/vhosts/publicsite.com/subdomains/svn2/pickles.com

And everything functioned as expected. Turning it back to SVNParentPath and we're back to the same old problems. Now I know it has something to do with MediaTemple, Plesk, and subdomain setup.

To recap, the error I'm getting is:

Internal error: Can't open file '/var/www/vhosts/publicsite.com/subdomains/svn2/error_docs/format

I created a symlink in error_docs to ./subdomains/svn2/pickes.com/format and then the error became:

Internal error: Error opening db lockfile

This isn't a permissions error (at the level I've shown). This project has the same permission set and user as the one that worked on single-mode. Somewhere Apache is defaulting to the error_docs so SVN is looking for it's directories there instead of the url specified repository.

I've checked every httpd file I've found and can't find a reference to how the domain should handle it's subdomains.

like image 439
Travis Avatar asked Aug 10 '12 23:08

Travis


2 Answers

This is an apache issue confused by the servers configuration (Probably Plesk but no one in their forums have given any info).

The problem is the base subdomain directory is being served by apache so it can't also be configured to serve through DAV SVN, svn faq

I was able to implement a solution by moving my repositories into their own dedicated directory. I then updated the location tag to and svn repositories are successfully served from svn2.publicsite.com/repos.

My next step is to clean the redundancy in the url. I'll need to create a separate vhost outside of Plesk so I can just support svn2.publicsite.com or I'll relocate the directory so it's just publicisite.com/repos.

like image 56
Travis Avatar answered Oct 14 '22 05:10

Travis


Are there any name clashes in the apache Location directives that would conflict with the svn URL?

like image 32
vinnyjames Avatar answered Oct 14 '22 04:10

vinnyjames