I am trying to run catacomb-0.9.2
on Apache 2.2.2 ( with mod_dav working ) , but I get a segfault whenever the server receives a request on '/repos' ( default catacomb config ) . Following is the gdb backtrace:
(gdb) run -X -d ..
Starting program: /usr/local/apache2/bin/httpd -X -d ..
[Thread debugging using libthread_db enabled]
[New Thread -1210677024 (LWP 24368)]
httpd: Could not reliably determine the server's fully qualified domain name, using
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1210677024 (LWP 24368)]
0xb7d61a6c in dav_repos_no_trail (str=0x0) at util.c:727
727 int len = strlen(str);
#0 0xb7d61a6c in dav_repos_no_trail (str=0x0) at util.c:727
#1 0xb7d58f66 in dav_repos_get_resource (r=0x81a9c30, root_path=0x814ace8 "/repos", label=0x0, use_checked_in=0, result_resource=0x0) at
#2 0x08091caa in dav_get_resource (r=0x81a9c30, label_allowed=<value optimized out>, use_checked_in=0, res_p=0xbfe77430) at mod_dav.c:724
#3 0x08097127 in dav_handler (r=0x81a9c30) at mod_dav.c:1960
#4 0x08074b0f in ap_run_handler (r=0x81a9c30) at config.c:157
#5 0x08074e91 in ap_invoke_handler (r=0x81a9c30) at config.c:371
#6 0x0808c8ee in ap_process_request (r=0x81a9c30) at http_request.c:258
#7 0x08089fbc in ap_process_http_connection (c=0x8190748) at http_core.c:172
#8 0x0807b06f in ap_run_process_connection (c=0x8190748) at connection.c:43
#9 0x080afc64 in child_main (child_num_arg=<value optimized out>) at prefork.c:640
#10 0x080afeae in make_child (s=0x80e1038, slot=0) at
#11 0x080b0ce3 in ap_mpm_run (_pconf=0x80dc0a8, plog=0x81201b8, s=0x80e1038) at prefork.c:956
#12 0x0806303b in main (argc=4, argv=0xbfe77874) at main.c:717
the 'str' pointer is NULL, because 'r->filename' and 'r->path_info' are not set, strangely , both filename and path_info are available in dav_get_resource but are set to NULL when passed to dav_repos_get_resource. Maybe this has something to do with apr memory management ( which might have changed from apache
2.0 to 2.2 ). Does anybody have an idea why this might happen ??