Package: libapache2-mod-svn
Version: 1.7.13-1
Severity: important

After updating everything to current testing I stumbled upon SVN not working.

% svn up
svn: OPTIONS of 'http://code/svn/foo': Could not read status line: connection 
was closed by server (http://code)

And Apache error log has
[Thu Oct 31 01:31:17.551893 2013] [core:notice] [pid 14426] AH00052: child pid 
15112 exit signal Segmentation fault (11)


Some GDB debugging shows:

Program received signal SIGSEGV, Segmentation fault.
__strrchr_sse2 () at ../sysdeps/x86_64/multiarch/../strrchr.S:32
32      ../sysdeps/x86_64/multiarch/../strrchr.S: No such file or directory.
(gdb) bt
#0  __strrchr_sse2 () at ../sysdeps/x86_64/multiarch/../strrchr.S:32
#1  0x00007f723c023e39 in ap_make_dirstr_parent (p=0x7f72256b3028, s=0x0) at 
util.c:641
#2  0x00007f7234ce6633 in parse_accept_headers (r=r@entry=0x7f72256b30a0) at 
mod_negotiation.c:578
#3  0x00007f7234cea192 in handle_multi (r=0x7f72256b30a0) at 
mod_negotiation.c:3096
#4  0x00007f723c036fb0 in ap_run_type_checker (r=0x7f72256b30a0) at request.c:84
#5  0x00007f723c039826 in ap_process_request_internal 
(r=r@entry=0x7f72256b30a0) at request.c:305
#6  0x00007f723c0556e8 in ap_process_async_request (r=r@entry=0x7f72256b30a0) 
at http_request.c:315
#7  0x00007f723c0559e4 in ap_process_request (r=r@entry=0x7f72256b30a0) at 
http_request.c:363
#8  0x00007f723c052492 in ap_process_http_sync_connection (c=0x7f723bdf6290) at 
http_core.c:190
#9  ap_process_http_connection (c=0x7f723bdf6290) at http_core.c:231
#10 0x00007f723c049420 in ap_run_process_connection (c=0x7f723bdf6290) at 
connection.c:41
#11 0x00007f723c049808 in ap_process_connection (c=c@entry=0x7f723bdf6290, 
csd=<optimized out>) at connection.c:202
#12 0x00007f7234ef0767 in child_main (child_num_arg=child_num_arg@entry=1) at 
prefork.c:704
#13 0x00007f7234ef09a6 in make_child (s=0x7f723bfaae30, slot=slot@entry=1) at 
prefork.c:800
#14 0x00007f7234ef0a06 in startup_children (number_to_start=4) at prefork.c:818
#15 0x00007f7234ef16f0 in prefork_run (_pconf=<optimized out>, 
plog=0x7f723bfa4028, s=0x7f723bfaae30) at prefork.c:976
#16 0x00007f723c0275ee in ap_run_mpm (pconf=0x7f723bfdf028, 
plog=0x7f723bfa4028, s=0x7f723bfaae30) at mpm_common.c:96
#17 0x00007f723c020df6 in main (argc=3, argv=0x7fff9f4e9bd8) at main.c:777
(gdb) up
#1  0x00007f723c023e39 in ap_make_dirstr_parent (p=0x7f72256b3028, s=0x0) at 
util.c:641
641     util.c: No such file or directory.
(gdb) p p
$1 = (apr_pool_t *) 0x7f72256b3028
(gdb) p *p
$2 = {parent = 0x7f723bdf6028, child = 0x0, sibling = 0x7f72256af028, ref = 
0x7f723bdf6030, cleanups = 0x7f72256b44c0, free_cleanups = 0x0, allocator = 
0x7f723f01e180, 
  subprocesses = 0x0, abort_fn = 0x7f723c021040 <abort_on_oom>, user_data = 
0x0, tag = 0x7f723c061587 "request", active = 0x7f72256b1000, self = 
0x7f72256b3000, 
  self_first_avail = 0x7f72256b30a0 "(0k%r\177", pre_cleanups = 0x0}
(gdb) up
#2  0x00007f7234ce6633 in parse_accept_headers (r=r@entry=0x7f72256b30a0) at 
mod_negotiation.c:578
578     mod_negotiation.c: No such file or directory.
(gdb) p r
$3 = (request_rec *) 0x7f72256b30a0
(gdb) p *r
$4 = {pool = 0x7f72256b3028, connection = 0x7f723bdf6290, server = 
0x7f723bee4400, next = 0x0, prev = 0x0, main = 0x0, 
  the_request = 0x7f72256b44e0 "OPTIONS /svn/foo HTTP/1.1", assbackwards = 0, 
proxyreq = 0, header_only = 0, proto_num = 1001, 
  protocol = 0x7f72256b45b8 "HTTP/1.1", hostname = 0x7f72256b4920 "code", 
request_time = 1383174532747451, status_line = 0x0, status = 200, method_number 
= 5, 
  method = 0x7f72256b4520 "OPTIONS", allowed = 0, allowed_xmethods = 0x0, 
allowed_methods = 0x7f72256b3358, sent_bodyct = 0, bytes_sent = 0, mtime = 0, 
range = 0x0, 
  clength = 0, chunked = 0, read_body = 0, read_chunked = 0, expecting_100 = 0, 
kept_body = 0x0, body_table = 0x0, remaining = 0, read_length = 0, 
  headers_in = 0x7f72256b3398, headers_out = 0x7f72256b3a98, err_headers_out = 
0x7f72256b3ce0, subprocess_env = 0x7f72256b3718, notes = 0x7f72256b3e80, 
content_type = 0x0, 
  handler = 0x0, content_encoding = 0x0, content_languages = 0x0, 
vlist_validator = 0x0, user = 0x7f72256b4fa8 "akolehma", ap_auth_type = 
0x7f723bee1fe0 "Basic", 
  unparsed_uri = 0x7f72256b4558 "/svn/foo", uri = 0x7f72256b4588 "/svn/foo", 
filename = 0x0, 
  canonical_filename = 0x0, path_info = 0x0, args = 0x0, used_path_info = 2, 
eos_sent = 0, per_dir_config = 0x7f72256b4a50, request_config = 0x7f72256b4020, 
  log = 0x7f723bee4420, log_id = 0x0, htaccess = 0x0, output_filters = 
0x7f72256b4400, input_filters = 0x7f72256b4928, proto_output_filters = 
0x7f72256b4400, 
  proto_input_filters = 0x7f72256b4928, no_cache = 0, no_local_copy = 0, 
invoke_mtx = 0x7f72256b4958, parsed_uri = {scheme = 0x0, hostinfo = 0x0, user = 
0x0, 
    password = 0x0, hostname = 0x0, port_str = 0x0, path = 0x7f72256b4588 
"/svn/foo", query = 0x0, fragment = 0x0, hostent = 0x0, 
    port = 0, is_initialized = 1, dns_looked_up = 0, dns_resolved = 0}, finfo = 
{pool = 0x0, valid = 0, protection = 0, filetype = APR_NOFILE, user = 0, group 
= 0, 
    inode = 0, device = 0, nlink = 0, size = 0, csize = 0, atime = 0, mtime = 
0, ctime = 0, fname = 0x0, name = 0x0, filehand = 0x0}, useragent_addr = 
0x7f723bdf61b0, 
  useragent_ip = 0x7f723bdf6670 "10.6.0.198"}


(Real svn path anonymized to foo, points to a directory anyway)

For some reason request_rec.filename == 0x0 which then fails when
ap_make_dirstr_parent is trying to
 char *last_slash = strrchr(s, '/');

Downgraded to 1.7.9-2 and things started working again with no other changes.

In upstream r1514941 (released in 1.7.12) there is 
 +  /* Be paranoid and set it to NULL just in case some other module set it
 +   * before we got called. */ 
 +  r->filename = NULL;

which feels like this should be broken for everybody... or is it just some
weirdness in my configs?


-- System Information:
Debian Release: jessie/sid
  APT prefers testing
  APT policy: (600, 'testing'), (300, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.11-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=fi_FI.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages libapache2-mod-svn depends on:
ii  apache2-bin [apache2-api-20120211]  2.4.6-3
ii  libc6                               2.17-93
ii  libsvn1                             1.7.13-2

libapache2-mod-svn recommends no packages.

Versions of packages libapache2-mod-svn suggests:
pn  db5.1-util  <none>

-- no debconf information


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to