On Tue, Oct 26, 1999, David Kerry wrote:

> [...]
> [Tue Oct 26 10:12:00 1999] [notice] child pid 30579 exit signal Segmentation fault 
>(11)
> [...]
> Note also that the backtrace is identical with SDBM vs. vendor DBM libraries
> (dies at 0x21fb in both cases).

This indicates that the problem for you seems to be _NOT_ inside the session cache.

> Since this wasn't getting me anywhere, I managed to get an strace of the
> process, which still doesn't help too much:
> 
> 27453 write(21, "[26/Oct/1999 10:46:54 27453] [in"..., 125) = 125

Ok, that's the "established" message as you already found out.

> 27453 time(NULL)                        = 940949214
> 27453 getpid()                          = 27453

That seems to be inside ssl_engine_rand.c:ssl_rand_seed().
Caused by "SSLRandomSeed connect builtin", right?
Can you show me your SSLRandomSeed config entries?

> 27453 read(4, "\200+\1\3\0\0\22", 7)    = 7
> 27453 read(4, "\0\0\0\20\2\0\200\4\0\200\0\0d\0"..., 38) = 38
> 27453 time(NULL)                        = 940949214
> 27453 getpid()                          = 27453
> 27453 time(NULL)                        = 940949214
> 27453 time(NULL)                        = 940949214
> 27453 write(4, "\26\3\0\0J\2\0\0F\3\0008\25\276\336"..., 1024) = 1024
> 27453 write(4, "\264\246\26w\373F\222\10H!QL\376"..., 26) = 26
> 27453 read(4, "\26\3\0\0D", 5)          = 5
> 27453 read(4, "\20\0\0@\25o\337\357q\f$\271\355"..., 68) = 68

Ok, fd 4 is the accepted socket as the strace entries above showed. This means
this is inside OpenSSL through the call SSL_accept(), i.e. it's the SSL
handshake performed by OpenSSL on the socket.

> 27453 --- SIGSEGV (Segmentation fault) ---

Ok, something directly after the read in OpenSSL causes the segfault.  And
then Apache's SIGSEGV handler catches it and tries to write the core dump to
/var/tmp:

> 27453 chdir("/var/tmp")                 = 0
> 27453 sigaction(SIGSEGV, {SIG_DFL}, {SIG_DFL}) = 0
> 27453 getpid()                          = 27453
> 27453 kill(27453, SIGSEGV)              = 0
> 27453 sigreturn()                       = ? (mask now [])
> 27453 --- SIGSEGV (Segmentation fault) ---

Hmmm... so let us summarize it: The segfault occurs either still inside
OpenSSL's SSL_accept() or directly after this call inside mod_ssl. The problem
is just that SSL_accept() calls internally a lot of code inside OpenSSL, so
this is not easy to debug. You should start by compiling OpenSSL with "-g
-ggdb3" to really get a backtrace this time.

BTW, have you checked that OpenSSL already passes its "make test"?

                                       Ralf S. Engelschall
                                       [EMAIL PROTECTED]
                                       www.engelschall.com
______________________________________________________________________
Apache Interface to OpenSSL (mod_ssl)                   www.modssl.org
User Support Mailing List                      [EMAIL PROTECTED]
Automated List Manager                            [EMAIL PROTECTED]

Reply via email to