It appears we wait to unload ssl until after we've destroyed the pool
or apr objects created globally for the ssl libraries' callbacks.

One possible solution is to register the ssl library cleanup in a subpool
of the process->pool, so that it is cleaned up before we go ahead and
wipe out the process->pool.

I'd compare the pool registrations in shmcb to dbm first, however, just
to see if we choose the wrong pool for shmcb.

Obviously ssl 0.9.6i is doing a better job of mopping up than its
predecessors.  If this is a double-free, simply unregistering our 
callbacks when we mop up should be sufficient.

Bill

At 11:11 AM 3/4/2003, Cliff Woolley wrote:


>---------- Forwarded message ----------
>Date: Tue, 04 Mar 2003 09:02:43 -0800
>From: Edward Wong <[EMAIL PROTECTED]>
>Reply-To: [EMAIL PROTECTED]
>To: [EMAIL PROTECTED]
>Subject: shmcb access violation with openssl 0.9.6i
>
>Hello All,
>
>I've been able to consistantly reproduce a GPF on Apache service shutdown
>using Openssl 0.9.6i, and Apache 2.0.44.
>
>Swapping to an older version of Openssl (0.9.6g) resolved the GPF.
>
>To reproduce, simply download and build OpenSSL 0.9.6i and Apache 2.0.44.
>Be sure to configure ssl to use the shmcb ssl session caching.  Launch
>apache as a service and browse to the server using SSL.  Then try to stop
>the apache service.  During shutdown, Apache will GPF.
>
>Oddly, if you don't browse to the webserver using SSL, Apache will not GPF
>on shutdown.
>
>If it helps, the call stack looks as follows:
>
>NTDLL! 77f51baa()
>NTDLL! 77f7561d()
>apr_file_write(apr_file_t * 0x005e91c8, const void * 0x0006dd6c, unsigned
>int * 0x0006dd58) line 316
>apr_file_puts(const char * 0x0006dd6c, apr_file_t * 0x005e91c8) line 441
>log_error_core(const char * 0x6fd1d948, int 117, int 4, int 720006, const
>server_rec * 0x00602700, const request_rec * 0x00000000, apr_pool_t *
>0x00000000, const char * 0x6fd1d924, char * 0x0006fdd0) line 543
>ap_log_error(const char * 0x6fd1d948, int 117, int 4, int 720006, const
>server_rec * 0x00602700, const char * 0x6fd1d924) line 561 + 37 bytes
>ssl_mutex_on(server_rec * 0x00602700) line 118 + 28 bytes
>ssl_scache_shmcb_remove(server_rec * 0x00602700, unsigned char * 0x00689dd8,
>int 32) line 476 + 9 bytes
>ssl_scache_remove(server_rec * 0x00602700, unsigned char * 0x00689dd8, int
>32) line 158 + 17 bytes
>ssl_callback_DelSessionCacheEntry(ssl_ctx_st * 0x00645240, ssl_session_st *
>0x00689d90) line 1722 + 17 bytes
>timeout(ssl_session_st * 0x00689d90, timeout_param_st * 0x0006fe6c) line 602
>+ 18 bytes
>lh_doall_arg(lhash_st * 0x006453d0, void (void)* 0x1001a516
>timeout(ssl_session_st *, timeout_param_st *), void * 0x0006fe6c) line 290 +
>13 bytes
>SSL_CTX_flush_sessions(ssl_ctx_st * 0x00645240, long 0) line 619 + 18 bytes
>SSL_CTX_free(ssl_ctx_st * 0x00645240) line 1259 + 11 bytes
>ssl_init_ctx_cleanup(modssl_ctx_t * 0x0064ef68) line 1197 + 21 bytes
>ssl_init_ctx_cleanup_server(modssl_ctx_t * 0x0064ef68) line 1213 + 9 bytes
>ssl_init_ModuleKill(void * 0x0030c458) line 1249 + 12 bytes
>run_cleanups(cleanup_t * * 0x0030a5d0) line 1976 + 13 bytes
>apr_pool_destroy(apr_pool_t * 0x0030a5c0) line 755 + 12 bytes
>apr_pool_destroy(apr_pool_t * 0x00308588) line 752 + 12 bytes
>destroy_and_exit_process(process_rec * 0x00308618, int 0) line 247
>main(int 3, const char * const * 0x003024a8) line 658 + 11 bytes
>mainCRTStartup() line 338 + 17 bytes
>KERNEL32! 77e814c7()
>
>The error in log_error_core is:
>[Mon Mar 03 12:43:04 2003] [warn] (OS 6)The handle is invalid.  : Failed to
>acquire global mutex lock.
>
>Is this a known issue?  Is there something that I'm missing?  Other than
>changing from DBM to SHMCB, I have stock conf files.
>
>Thanks in Advance,
>
>************************************
>Edward Wong
>Connectivity Software
>
>Hewlett-Packard Company
>************************************
>
>
>
>
>_________________________________________________________________
>STOP MORE SPAM with the new MSN 8 and get 2 months FREE*
>http://join.msn.com/?page=features/junkmail
>
>______________________________________________________________________
>Apache Interface to OpenSSL (mod_ssl)                   www.modssl.org
>User Support Mailing List                      [EMAIL PROTECTED]
>Automated List Manager                            [EMAIL PROTECTED]


Reply via email to