*[Cross-posted to [email protected]]*

An Apache configuration serving Subversion repositories, with mod_wsgi 3.3 
authentication provider, causes per request segfaults in Apache 2.2.22 with 
mod_dav_svn from Subversion 1.7.13.  If mod_wsgi auth directives are 
removed from the Apache configuration, then repositories are served 
properly.

The identical configuration with Subversion 1.7.9 (from 
https://launchpad.net/~svn/+archive/ppa) and the stock Ubuntu 12.04 
Subversion 1.6.17 works as expected with mod_wsgi auth directives in place.

Environment:
Ubuntu 12.04.3 LTS (GNU/Linux 3.2.0-55-virtual x86_64)
Apache/2.2.22 (Ubuntu) DAV/2 SVN/1.7.13 mod_wsgi/3.3 Python/2.7.3
Subversion 1.7.13 (http://subversion.apache.org/packages.html Ubuntu Linux: 
WANdisco)

Loaded Modules:
core_module (static)
log_config_module (static)
logio_module (static)
mpm_worker_module (static)
http_module (static)
so_module (static)
alias_module (shared)
auth_basic_module (shared)
authn_file_module (shared)
authz_default_module (shared)
authz_groupfile_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
cgid_module (shared)
dav_module (shared)
dav_svn_module (shared)
authz_svn_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
mime_module (shared)
negotiation_module (shared)
reqtimeout_module (shared)
setenvif_module (shared)
status_module (shared)
wsgi_module (shared)

httpd.conf:

CoreDumpDirectory /tmp/apache2-gdb-dump
LogLevel debug

listen 8080

<VirtualHost *:8080>
   ServerName svn.mydomain.org
   <Location /projects>
       DAV svn
       SVNParentPath /var/lib/svn
       SVNListParentPath Off
       WSGIAccessScript /var/lib/wsgi/access.wsgi
   </Location>
</VirtualHost>

<VirtualHost *:80>
   ServerName svn.mydomain.org
   <Location /projects>
       DAV svn
       SVNParentPath /var/lib//svn
       SVNListParentPath Off
       AuthType Basic
       AuthName "WSGIAuth"
       AuthBasicProvider wsgi
       WSGIAuthUserScript /var/lib/wsgi/access.wsgi
       Require valid-user
       WSGIAuthGroupScript /var/lib/wsgi/access.wsgi
       Require group authorized
   </Location>
</VirtualHost>

access.wsgi:

import logging
logging.basicConfig(format='%(asctime)s %(levelname)s:%(message)s',
                   level=logging.DEBUG)
LOG = logging.getLogger(__name__)

def allow_access(*args, **kwargs):
 LOG.debug("mod_wsgi allow_access called.")
 return True

def check_password(*args, **kwargs):
 LOG.debug("mod_wsgi check_password called.")
 return True

def groups_for_user(*args, **kwargs):
 LOG.debug("mod_wsgi groups_for_user called.")
 return [“authorized”]

Apache error log:

[Tue Oct 29 11:12:45 2013] [warn] mod_wsgi: Compiled for Python/2.7.2+.
[Tue Oct 29 11:12:45 2013] [warn] mod_wsgi: Runtime using Python/2.7.3.
[Tue Oct 29 11:12:45 2013] [notice] Apache/2.2.22 (Ubuntu) DAV/2 SVN/1.7.13 
mod_wsgi/3.3 Python/2.7.3 configured -- resuming normal operations
[Tue Oct 29 11:12:45 2013] [info] Server built: Jul 12 2013 13:37:15
[Tue Oct 29 11:12:45 2013] [debug] worker.c(1757): AcceptMutex: sysvsem 
(default: sysvsem)
[Tue Oct 29 11:12:45 2013] [info] mod_wsgi (pid=11326): Initializing Python.
[Tue Oct 29 11:12:45 2013] [info] mod_wsgi (pid=11325): Initializing Python.
[Tue Oct 29 11:12:45 2013] [info] mod_wsgi (pid=11326): Attach interpreter 
''.
[Tue Oct 29 11:12:45 2013] [info] mod_wsgi (pid=11325): Attach interpreter 
''.
[Tue Oct 29 11:12:55 2013] [debug] mod_deflate.c(615): [client 
129.59.105.145] Zlib: Compressed 481 to 328 : URL /projects/somerepo
[Tue Oct 29 11:12:59 2013] [info] [client <elided>] mod_wsgi (pid=11326, 
process='', application=''): Loading WSGI script 
'/var/lib/wsgi/access.wsgi'.
[Tue Oct 29 11:12:59 2013] [info] [client <elided>] mod_wsgi (pid=11325, 
process='', application=''): Loading WSGI script 
'/var/lib/wsgi/access.wsgi'.
[Tue Oct 29 11:13:00 2013] [notice] child pid 11325 exit signal 
Segmentation fault (11), possible coredump in /tmp/apache2-gdb-dump
[Tue Oct 29 11:13:00 2013] [notice] child pid 11326 exit signal 
Segmentation fault (11), possible coredump in /tmp/apache2-gdb-dump
[Tue Oct 29 11:13:01 2013] [info] mod_wsgi (pid=11384): Initializing Python.
[Tue Oct 29 11:13:01 2013] [info] mod_wsgi (pid=11384): Attach interpreter 
''.
[Tue Oct 29 11:13:19 2013] [info] mod_wsgi (pid=11412): Initializing Python.
[Tue Oct 29 11:13:19 2013] [info] mod_wsgi (pid=11412): Attach interpreter 
''.
[Tue Oct 29 11:13:21 2013] [info] [client <elided>] mod_wsgi (pid=11384, 
process='', application=''): Loading WSGI script 
'/var/lib/wsgi/access.wsgi'.
[Tue Oct 29 11:13:21 2013] [info] [client <elided>] mod_wsgi (pid=11412, 
process='', application=''): Loading WSGI script 
'/var/lib/wsgi/access.wsgi'.
[Tue Oct 29 11:13:22 2013] [notice] child pid 11384 exit signal 
Segmentation fault (11), possible coredump in /tmp/apache2-gdb-dump
[Tue Oct 29 11:13:22 2013] [notice] child pid 11412 exit signal 
Segmentation fault (11), possible coredump in /tmp/apache2-gdb-dump
[Tue Oct 29 11:13:23 2013] [info] mod_wsgi (pid=11442): Initializing Python.
[Tue Oct 29 11:13:23 2013] [info] mod_wsgi (pid=11442): Attach interpreter 
''.

No core dumps were generated.

Apache access log:

svn.mydomain.org:80 <elided> - - [29/Oct/2013:11:12:55 +0000] "OPTIONS 
/projects/somerepo HTTP/1.1" 401 665 "-" "SVN/1.7.13 neon/0.29.6"
svn.mydomain.org:80 <elided> - - [29/Oct/2013:11:13:18 +0000] "OPTIONS 
/projects/somerepo HTTP/1.1" 401 720 "-" "SVN/1.7.13 serf/1.2.1”

Subversion client commands:
$ svn co --username somebody http://svn.mydomain.org/projects/somerepo
Authentication realm: <http://svn.mydomain.org:80 <http://svn.mydomain.org/>> 
WSGIAuth
Password for 'somebody':
svn: E175002: Unable to connect to a repository at URL 'http:/
svn.mydomain.org/projects/somerepo'
svn: E175002: OPTIONS of 'http://svn.mydomain.org/projects/somerepo': Could 
not read status line: connection was closed by server (
http://svn.mydomain.org)
$ svn co --config-option servers:global:http-library=serf --username 
somebody 
http:///svn.mydomain.org/projects/somerepo<http:/svn.mydomain.org/projects/somerepo>
Authentication realm: <http://svn.mydomain.org:80 <http://svn.mydomain.org/>> 
WSGIAuth
Password for 'somebody':
svn: E120108: Unable to connect to a repository at URL '
http:///svn.mydomain.org/projects/somerepo'<http:/svn.mydomain.org/projects/somerepo'>
svn: E120108: Error running context: APR does not understand this error code

I appreciate your help in identifying the cause of Apache segfaults with 
mod_dav_svn from Subversion 1.7.13.

-- 
You received this message because you are subscribed to the Google Groups 
"modwsgi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/modwsgi.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to