You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Cliff Woolley <jw...@virginia.edu> on 2003/03/04 18:11:31 UTC
shmcb access violation with openssl 0.9.6i (fwd)
---------- Forwarded message ----------
Date: Tue, 04 Mar 2003 09:02:43 -0800
From: Edward Wong <ed...@hotmail.com>
Reply-To: modssl-users@modssl.org
To: modssl-users@modssl.org
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 modssl-users@modssl.org
Automated List Manager majordomo@modssl.org
Re: shmcb access violation with openssl 0.9.6i (fwd)
Posted by "William A. Rowe, Jr." <wr...@rowe-clan.net>.
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 <ed...@hotmail.com>
>Reply-To: modssl-users@modssl.org
>To: modssl-users@modssl.org
>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 modssl-users@modssl.org
>Automated List Manager majordomo@modssl.org