-KeepAlive is now Off
-In the vhost, Processor is now ServerEnvironment (this caused the senv segfault)
-Typoed the IPs while editing it (though it was right in my actual config)
It doesn't segfault at the senv enymore.. instead it does this--
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 182919131456 (LWP 22254)]
apr_os_sock_put (sock=0x7fbfffe038, thesock=0x7fbfffe044, cont=0x5bd138)
at sockets.c:383
383 (*sock)->local_port_unknown = (*sock)->local_interface_unknown = 1;
(gdb) bt full
#0 apr_os_sock_put (sock=0x7fbfffe038, thesock=0x7fbfffe044, cont=0x5bd138)
at sockets.c:383
No locals.
#1 0x000000000045d41d in child_main (child_num_arg=Variable "child_num_arg" is not available.
) at peruser.c:1566
ptrans = (apr_pool_t *) 0x6913f8
allocator = (apr_allocator_t *) 0x685230
status = Variable "status" is not available.
(gdb) list
1566 apr_os_sock_put((void*)&pod_sock, &fd, pconf);
1567 listen_add(pconf, pod_sock, check_pipe_of_death);
1568
1569 (peruser_setup_child(my_child_num) && clean_child_exit(APEXIT_CHILDFATAL));
1570 ap_run_child_init(pchild, ap_server_conf);
1571
1572 ap_create_sb_handle(&sbh, pchild, my_child_num, 0);
1573 (void) ap_update_child_status(sbh, SERVER_READY, (request_rec *) NULL);
1574
1575 /* Set up the pollfd array */
(gdb) print pod_sock
No symbol "pod_sock" in current context.
(gdb) list apr_os_sock_put
368 return APR_SUCCESS;
369 }
370
371 apr_status_t apr_os_sock_put(apr_socket_t **sock, apr_os_sock_t *thesock,
372 apr_pool_t *cont)
373 {
374 /* XXX Bogus assumption that *sock points at anything legit */
375 if ((*sock) == NULL) {
376 alloc_socket(sock, cont);
377 /* XXX IPv6 figure out the family here! */
(gdb) print sock
$1 = (apr_socket_t **) 0x7fbfffe038
(gdb) print *sock
$2 = (apr_socket_t *) 0x14
(gdb) print **sock
Cannot access memory at address 0x14
--
If I enable MPM_PERUSER_DEBUG however, *sock is 0x0 and everything seems to work fine... (how the heck does turning on debug affect pointers?)
-Severn
On 4/2/06, Stefan Seufert <[EMAIL PROTECTED]> wrote:
I've been able to attach a debugger and thus have been able to locate
the cause of the crash:
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread -1208174912 (LWP 11331)]
> 0x0809cffa in peruser_post_read (r=0x8bc9c30) at peruser.c:2566
> 2566 processor = &CHILD_INFO_TABLE[sconf->senv->processor_id];
> (gdb) bt full
> #0 0x0809cffa in peruser_post_read (r=0x8bc9c30) at peruser.c:2566
> sconf = (peruser_server_conf *) 0x8bb9628
> processor = Variable "processor" is not available.
> (gdb) list
> 2566 processor = &CHILD_INFO_TABLE[sconf->senv->processor_id];
> 2567 else
> 2568 processor = &CHILD_INFO_TABLE[r->connection->id];
> 2569
> 2570
> 2571 if (!strlen(r->the_request))
> 2572 {
> 2573 _DBG("corrupt request. aborting",0);
> 2574 return DECLINED;
> 2575 }
> (gdb) print sconf
> $1 = (peruser_server_conf *) 0x8bb9628
> (gdb) print sconf->senv
> $2 = (server_env_t *) 0x0
> (gdb)
It looks like sconf->senv isn't set. The ->processor_id access then
causes the segfault. So the next question is: Why is it empty? Maybe
just a configuration problem we haven't covered? Sean, any ideas?
Stefan
_______________________________________________
Peruser mailing list
[email protected]
http://www.telana.com/mailman/listinfo/peruser
_______________________________________________ Peruser mailing list [email protected] http://www.telana.com/mailman/listinfo/peruser
