3

I have a confusing problem. I have installed a long time ago Apache 2.4 with mod_dav_svn to be able to access my repos via https urls. It all works fine with Apache only. Now i switched to lighttpd and i've managed the access via https now with a proxy.server in my lighttp config. This work fine in the browser, i can still access my repos via the browser right now. But, now it doesn't work with command line or tortoise svn anymore. It hangs infinitely. There's no error in the log or something, it just hang without errors. When i cancel the request in the command line than it says unable to connect... but when i enter the same url in the browser it works perfectly. I don't have any idea how to fix this.

Edit: If i disable SSL on the lighttpd side and pass it via port 80 than also it does not work. It ask for username and pass, than it hangs.

Here is my lighttpd config

$SERVER["socket"] == ":443" {
    ssl.engine = "enable",
    server.errorlog = "/var/log/lighttpd/ssl-error.log",
    ssl.pemfile = "/etc/ssl/owncerts/defaultcert.pem",

    HTTP["host"] == "myhost.com"{
        server.document-root = "/srv/default/htdocs",
        ssl.pemfile = "/etc/ssl/owncerts/myhost.com.pem",
        proxy.server = (
            "" => (("host" => "127.0.0.1", "port" => 8443))
        )
    }
}

And here is my apache config

<VirtualHost *:8443>
    ServerName https://myhost.com
    <Location />
        DAV svn
        SVNPath /srv/svn/xxx
        AuthType Basic
        AuthName "xxx SVN Repository"
        AuthUserFile /srv/svn/xxx/conf/users
        AuthzSVNAccessFile /srv/svn/xx/conf/authz
        Require valid-user
    </Location>
</VirtualHost>

TEST 1

When i do a OPTIONS request check via curl than i give me a correct output like this - Both in Apache and Lighttp access log there are response codes with "200".

HTTP/1.1 200 OK
Date: Mon, 09 Mar 2015 13:07:27 GMT
Server: Apache/2.4.7 (Ubuntu)
DAV: 1,2
DAV: version-control,checkout,working-resource
DAV: merge,baseline,activity,version-controlled-collection
DAV: http://subversion.tigris.org/xmlns/dav/svn/depth
DAV: http://subversion.tigris.org/xmlns/dav/svn/log-revprops
DAV: http://subversion.tigris.org/xmlns/dav/svn/atomic-revprops
DAV: http://subversion.tigris.org/xmlns/dav/svn/partial-replay
DAV: http://subversion.tigris.org/xmlns/dav/svn/inherited-props
DAV: http://subversion.tigris.org/xmlns/dav/svn/inline-props
DAV: http://subversion.tigris.org/xmlns/dav/svn/reverse-file-revs
DAV: http://subversion.tigris.org/xmlns/dav/svn/mergeinfo
MS-Author-Via: DAV
Allow: OPTIONS,GET,HEAD,POST,DELETE,TRACE,PROPFIND,PROPPATCH,COPY,MOVE,LOCK,UNLOCK,CHECKOUT
Content-Length: 0

TEST 2

If i do a simple "checkout" request via svn command line than the following happens

This requests are on the lighttpd side

xxx.xxx.xx.xxx myhost.com - [09/Mar/2015:14:13:19 +0100] "OPTIONS /testrepos HTTP/1.1" 401 588 "-" "SVN/1.8.11 (x64-microsoft-windows) serf/1.3.8"

This request are on the apache side

myhost.com:443 127.0.0.1 - - [09/Mar/2015:14:13:19 +0100] "OPTIONS /testrepos HTTP/1.0" 401 825 "-" "SVN/1.8.11 (x64-microsoft-windows) serf/1.3.8"
myhost.com:443 127.0.0.1 - brain [09/Mar/2015:14:13:19 +0100] "OPTIONS /testrepos HTTP/1.0" 200 1661 "-" "SVN/1.8.11 (x64-microsoft-windows) serf/1.3.8"

At this point the svn command line client hangs.

TEST 3

If i do a simple OPTIONS request with CURL on a existing repos (testrepos), it works as expected

Here is the lighttpd log

xxx.xxx.xx.xxx myhost.com - [09/Mar/2015:14:30:41 +0100] "OPTIONS /testrepos HTTP/1.1" 200 0 "-" "curl/7.35.0"

Here is the apache log

myhost.com:443 127.0.0.1 - brain [09/Mar/2015:14:30:41 +0100] "OPTIONS /testrepos HTTP/1.0" 200 855 "-" "curl/7.35.0"

TEST 4

Unfortunetely i cannot debug my svn client's network connection, there is no such option anymore in 1.8. Furthermore i've tested it without any Basic Authentication. Also not working, both Apache and Lighttpd return 200 response codes but the SVN CLI client still hangs. When i try checkout the URL directly on the apache side with http://myhost:8443/testrepos it works also with the CLI client. It seems that the proxy pipe between Apache and Lighttp is broken. I probably will decide to skip my error search progress and switching my repos just to the new port instead of the default ssl port. It requires some work for me but it finally will work.

  • @AndréDaniel Added the output log to post – Brain Foo Long Mar 9 '15 at 12:37
  • @AndréDaniel Done, and added also more debug information – Brain Foo Long Mar 9 '15 at 13:16
  • Can you do the OPTIONS /testrepos in curl and see what appears in the Lighttpd log ? It's strange that despite Apache replying 200 on the second (authenticated) request, there is no mention of it in Lighttpd's log. Looks like Lighttpd for some reason fails to return the response of the second request. – user186340 Mar 9 '15 at 13:29
  • @AndréDaniel Added it to the post, it all works perfectly in CURL and Browser, but not via svn CLI. svn cli tested on the server itself and on my local windows machine, both same hang error. – Brain Foo Long Mar 9 '15 at 13:36
  • Enable verbose output for the SVN command and see where it fails, more info : stackoverflow.com/a/13823619/2629998 – user186340 Mar 9 '15 at 13:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.