Project

General

Profile

redmine tries to access subversion through proxy

Added by Lars Scheithauer over 14 years ago

hi everyone,

the repobrowser of my redmine installation is unable to access any files in the subversion repository - however, it is able to access the repository's data structure, so it's able to see the revisions and filesystem tree of the particular project.

Investigating, I believe that redmine tries to access the subversion repository (which are both on the same machine) through our universities proxy, but I am unable to find any settings of apache2 or redmine, where our proxy is defined. The following logfile shows the problem (193.197.74.46 is our projects server, 193.197.74.59 is our networks proxy):

/var/log/apache2/error.log:

[...]
[Tue Nov 24 11:03:58 2009] [error] [client 193.197.74.59] client denied by server configuration: /var/www/redmine/public/svn-private
svn: Server sent unexpected return value (403 Forbidden) in response to OPTIONS request for 'http://projects.fh-heidelberg.de/svn-private
/heybrain'
Error parsing svn output: #<REXML::ParseException: No close tag for /lists/list>
/usr/lib/ruby/1.8/rexml/parsers/treeparser.rb:28:in `parse'
/usr/lib/ruby/1.8/rexml/document.rb:228:in `build'
/usr/lib/ruby/1.8/rexml/document.rb:43:in `initialize'
/var/www/redmine/lib/redmine/scm/adapters/subversion_adapter.rb:85:in `new'
/var/www/redmine/lib/redmine/scm/adapters/subversion_adapter.rb:85:in `entries'
/var/www/redmine/lib/redmine/scm/adapters/abstract_adapter.rb:177:in `call'
/var/www/redmine/lib/redmine/scm/adapters/abstract_adapter.rb:177:in `shellout'
/var/www/redmine/lib/redmine/scm/adapters/abstract_adapter.rb:175:in `popen'
/var/www/redmine/lib/redmine/scm/adapters/abstract_adapter.rb:175:in `shellout'
/var/www/redmine/lib/redmine/scm/adapters/abstract_adapter.rb:165:in `shellout'
/var/www/redmine/lib/redmine/scm/adapters/subversion_adapter.rb:82:in `entries'
/var/www/redmine/lib/redmine/scm/adapters/abstract_adapter.rb:93:in `entry'
/var/www/redmine/app/models/repository.rb:59:in `entry'
/var/www/redmine/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:173:in `send'
/var/www/redmine/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:173:in `method_missing'
/var/www/redmine/app/controllers/repositories_controller.rb:112:in `entry'
/var/www/redmine/vendor/rails/actionpack/lib/action_controller/base.rb:1166:in `send'
/var/www/redmine/vendor/rails/actionpack/lib/action_controller/base.rb:1166:in `perform_action_without_filters'
/var/www/redmine/vendor/rails/actionpack/lib/action_controller/filters.rb:579:in `call_filters'
/var/www/redmine/vendor/rails/actionpack/lib/action_controller/filters.rb:572:in `perform_action_without_benchmark'
/var/www/redmine/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'
/var/www/redmine/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
/var/www/redmine/vendor/rails/actionpack/lib/action_controller/rescue.rb:201:in `perform_action_without_caching'
/var/www/redmine/vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:13:in `passenger_orig_perform_action'
/var/www/redmine/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:33:in `cache'
/var/www/redmine/vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
/var/www/redmine/vendor/rails/actionpack/lib/action_controller/caching/sql_cache.rb:12:in `passenger_orig_perform_action'
/usr/lib/ruby/1.8/phusion_passenger/railz/request_handler.rb:65:in `perform_action'
/var/www/redmine/vendor/rails/actionpack/lib/action_controller/base.rb:529:in `send'
/var/www/redmine/vendor/rails/actionpack/lib/action_controller/base.rb:529:in `process_without_filters'
/var/www/redmine/vendor/rails/actionpack/lib/action_controller/filters.rb:568:in `process_without_session_management_support'
/var/www/redmine/vendor/rails/actionpack/lib/action_controller/session_management.rb:130:in `process'
/var/www/redmine/vendor/rails/actionpack/lib/action_controller/base.rb:389:in `process'
/var/www/redmine/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:149:in `handle_request'
/var/www/redmine/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in `dispatch'
/var/www/redmine/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `synchronize'
/var/www/redmine/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in `dispatch'
/var/www/redmine/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in `dispatch_cgi'
/var/www/redmine/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in `dispatch'
/usr/lib/ruby/1.8/phusion_passenger/railz/request_handler.rb:50:in `process_request'
/usr/lib/ruby/1.8/phusion_passenger/abstract_request_handler.rb:207:in `main_loop'
/usr/lib/ruby/1.8/phusion_passenger/railz/application_spawner.rb:378:in `start_request_handler'
/usr/lib/ruby/1.8/phusion_passenger/railz/application_spawner.rb:336:in `handle_spawn_application'
/usr/lib/ruby/1.8/phusion_passenger/utils.rb:183:in `safe_fork'
/usr/lib/ruby/1.8/phusion_passenger/railz/application_spawner.rb:334:in `handle_spawn_application'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb:352:in `__send__'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb:352:in `main_loop'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb:196:in `start_synchronously'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb:163:in `start'
/usr/lib/ruby/1.8/phusion_passenger/railz/application_spawner.rb:213:in `start'
/usr/lib/ruby/1.8/phusion_passenger/spawn_manager.rb:262:in `spawn_rails_application'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server_collection.rb:126:in `lookup_or_add'
/usr/lib/ruby/1.8/phusion_passenger/spawn_manager.rb:256:in `spawn_rails_application'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server_collection.rb:80:in `synchronize'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
/usr/lib/ruby/1.8/phusion_passenger/spawn_manager.rb:255:in `spawn_rails_application'
/usr/lib/ruby/1.8/phusion_passenger/spawn_manager.rb:154:in `spawn_application'
/usr/lib/ruby/1.8/phusion_passenger/spawn_manager.rb:287:in `handle_spawn_application'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb:352:in `__send__'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb:352:in `main_loop'
/usr/lib/ruby/1.8/phusion_passenger/abstract_server.rb:196:in `start_synchronously'
/usr/lib/phusion_passenger/passenger-spawn-server:61
...
No close tag for /lists/list
Line:
Position:
Last 80 unconsumed characters:
Output was:
 <?xml version="1.0"?>
<lists>
<list
   path="http://projects.fh-heidelberg.de/svn-private/heybrain">

The configuration file for apache2 are pretty default:

PerlLoadModule Apache::Redmine
NameVirtualHost 193.197.74.46:80

<VirtualHost 193.197.74.46:80>
        ServerName   projects.fh-heidelberg.de
        DocumentRoot /var/www/redmine/public

        ## Redmine-Authentication for Subversion
        ## see: http://www.redmine.org/wiki/redmine/Repositories_access_control_with_apache_mod_dav_svn_and_mod_perl
        ## Attention: do NOT activate PassengerHighPerformance, this will crash the subversion dav!
        <Location /svn>
                DAV svn
                SVNParentPath "/var/svn/" 

                AuthType Basic
                AuthName "SRH Hochschule Heidelberg - Projektverwaltung" 
                Require valid-user

                PerlAccessHandler Apache::Authn::Redmine::access_handler
                PerlAuthenHandler Apache::Authn::Redmine::authen_handler

                ## database setup
                RedmineDSN    "DBI:mysql:database=XXXXXXX;host=localhost" 
                RedmineDbUser "XXXXXXXXX" 
                RedmineDbPass "XXXXXXXXX" 
        </Location>

        ## This is needed, so that redmine is allowed to browse all repositories
        <Location /svn-private>
                DAV svn
                SVNParentPath "/var/svn/" 

                Order deny,allow
                #Allow from all
                <Limit GET PROPFIND OPTIONS REPORT>
                        Allow from 127.0.0.1
                        Allow from 193.197.74.46
                </Limit>
                Deny from all
        </Location>

        ## protect the redmine-Webservice
        <Location /sys>
                Order deny,allow
                Deny from all
                Allow from 127.0.0.1
                Allow from 193.197.74.46
        </Location>

</VirtualHost>

Besides of changing the access from http:/// to file:/// for redmines repo browser, any idea why redmine tries to go through the proxy?

Regards,
Lars


Replies (3)

RE: redmine tries to access subversion through proxy - Added by Lars Scheithauer over 14 years ago

Additional information:
I've just changed the subversion repository of one project to use file:///... instead of http:///... and I get the same result: The repository is browsable, but as soon as I try to look at a file, I do get an error saying, that "this entry or revision doesn't exist in the project archive".

If I access the repository via tortoiseSVN, everything works perfectly.

RE: redmine tries to access subversion through proxy - Added by Akiko Takano over 14 years ago

Hello.
I'm not much knowledge about web server/rails application, but I recommend you to see the Web Server's error_log if you can or if you have not do yet. Since I've got the similer situation of yours past, which file:/// access is fine but http:/// access has problem to my repository, and I could find the way to solve the problem.
I suppose this is some of permission issue.

RE: redmine tries to access subversion through proxy - Added by Akiko Takano over 14 years ago

I'm very sorry, you've already checked web server's log. I misread your post...

Since the error log says "[client 193.197.74.59] client denied by server configuration" so that I think you should add "Allow from 193.197.74.59" to apache conf.

    (1-3/3)