DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=36751>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=36751
simon.xie@peregrine.com changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |REOPENED
Resolution|INVALID |
------- Additional Comments From simon.xie@peregrine.com 2005-09-23 22:52 -------
Here is the backtrace info. (From MS Visual Studio .NET 2003)
everytime when you load a page from browser,
function
static int ssl3_write_pending(SSL *s, int type, const unsigned char *buf,
unsigned int len)
is called.
This is the call stack.
ssleay32.dll!ssl3_write_pending(ssl_st * s=0x06bd0ee8, int type=23,
const unsigned char * buf=0x06bbb26c, unsigned int len=4775) Line 756 C
ssleay32.dll!do_ssl3_write(ssl_st * s=0x06bd0ee8, int type=23, const
unsigned char * buf=0x06bbb26c, unsigned int len=4775, int
create_empty_fragment=0) Line 713 + 0x15 C
ssleay32.dll!ssl3_write_bytes(ssl_st * s=0x06bd0ee8, int type=23, const
void * buf_=0x06bbb26c, int len=4775) Line 542 + 0x1a C
ssleay32.dll!ssl3_write(ssl_st * s=0x06bd0ee8, const void *
buf=0x06bbb26c, int len=4775) Line 1721 + 0x13 C
ssleay32.dll!SSL_write(ssl_st * s=0x06bd0ee8, const void *
buf=0x06bbb26c, int num=4775) Line 878 + 0x15 C
mod_ssl.so!ssl_filter_write(ap_filter_t * f=0x06b80538, const char *
data=0x06bbb26c, unsigned int len=4775) Line 773 + 0x13 C
mod_ssl.so!ssl_io_filter_output(ap_filter_t * f=0x06b80538,
apr_bucket_brigade * bb=0x06bad4c0) Line 1364 + 0x11 C
libhttpd.dll!ap_pass_brigade(ap_filter_t * next=0x06b80538,
apr_bucket_brigade * bb=0x06bad4c0) Line 512 + 0x10 C
libhttpd.dll!chunk_filter(ap_filter_t * f=0x06bad630,
apr_bucket_brigade * b=0x06bad4c0) Line 218 + 0x10 C
libhttpd.dll!ap_pass_brigade(ap_filter_t * next=0x06bad630,
apr_bucket_brigade * bb=0x06bad4c0) Line 512 + 0x10 C
libhttpd.dll!ap_http_header_filter(ap_filter_t * f=0x06b8d558,
apr_bucket_brigade * b=0x06bad4c0) Line 1692 C
libhttpd.dll!ap_pass_brigade(ap_filter_t * next=0x06b8d558,
apr_bucket_brigade * bb=0x06bad4c0) Line 512 + 0x10 C
libhttpd.dll!ap_content_length_filter(ap_filter_t * f=0x06b8d540,
apr_bucket_brigade * b=0x06bad4c0) Line 1233 C
libhttpd.dll!ap_pass_brigade(ap_filter_t * next=0x06b8d540,
apr_bucket_brigade * bb=0x06bad4c0) Line 512 + 0x10 C
libhttpd.dll!ap_byterange_filter(ap_filter_t * f=0x06b8d528,
apr_bucket_brigade * bb=0x06bad4c0) Line 2876 + 0x10 C
libhttpd.dll!ap_pass_brigade(ap_filter_t * next=0x06b8d528,
apr_bucket_brigade * bb=0x06bad4c0) Line 512 + 0x10 C
mod_perl.so!modperl_wbucket_pass() + 0xf4
mod_perl.so!modperl_wbucket_flush() + 0x1b
mod_perl.so!modperl_output_filter_handler() + 0x28
mod_perl.so!modperl_wbucket_pass() + 0xf4
mod_perl.so!modperl_wbucket_flush() + 0x1b
mod_perl.so!modperl_io_perlio_restore_stdout() + 0xd0
When error accurs, the return value of BIO_write is -1, which is different from
s->s3->wbuf.left
i=BIO_write(s->wbio,
(char *)&(s->s3->wbuf.buf[s->s3->wbuf.offset]),
(unsigned int)s->s3->wbuf.left);
Then the function returns with -1.
The attached file is the locals when reach this point.
then, in ssl_filter_write(),
then SSL_get_error is called:
int ssl_err = SSL_get_error(filter_ctx->pssl, res);
This is the call stack,
ssleay32.dll!SSL_get_error(const ssl_st * s=0x06bfdd08, int i=-1) Line
1818 C
mod_ssl.so!ssl_filter_write(ap_filter_t * f=0x06b82620, const char *
data=0x06dd0000, unsigned int len=346) Line 776 + 0xf C
mod_ssl.so!ssl_io_filter_output(ap_filter_t * f=0x06b82620,
apr_bucket_brigade * bb=0x06b918a0) Line 1364 + 0x11 C
libhttpd.dll!ap_pass_brigade(ap_filter_t * next=0x06b82620,
apr_bucket_brigade * bb=0x06b918a0) Line 512 + 0x10 C
libhttpd.dll!ap_http_header_filter(ap_filter_t * f=0x06bb0b20,
apr_bucket_brigade * b=0x06b918a0) Line 1692 C
libhttpd.dll!ap_pass_brigade(ap_filter_t * next=0x06bb0b20,
apr_bucket_brigade * bb=0x06b918a0) Line 512 + 0x10 C
libhttpd.dll!ap_content_length_filter(ap_filter_t * f=0x06bb0b08,
apr_bucket_brigade * b=0x06b918a0) Line 1233 C
libhttpd.dll!ap_pass_brigade(ap_filter_t * next=0x06bb0b08,
apr_bucket_brigade * bb=0x06b918a0) Line 512 + 0x10 C
libhttpd.dll!ap_byterange_filter(ap_filter_t * f=0x06bb0af0,
apr_bucket_brigade * bb=0x06b918a0) Line 2876 + 0x10 C
libhttpd.dll!ap_pass_brigade(ap_filter_t * next=0x06bb0af0,
apr_bucket_brigade * bb=0x06b918a0) Line 512 + 0x10 C
libhttpd.dll!default_handler(request_rec * r=0x06bafcd8) Line 3610 +
0x13 C
libhttpd.dll!ap_run_handler(request_rec * r=0x06bafcd8) Line 153 + 0x4e
C
libhttpd.dll!ap_invoke_handler(request_rec * r=0x06bafcd8) Line 364 +
0x9 C
libhttpd.dll!ap_process_request(request_rec * r=0x06bafcd8) Line 249 +
0x9 C
libhttpd.dll!ap_process_http_connection(conn_rec * c=0x06b82270) Line
251 + 0x9 C
libhttpd.dll!ap_run_process_connection(conn_rec * c=0x06b82270) Line
43 + 0x4e C
libhttpd.dll!ap_process_connection(conn_rec * c=0x06b82270, void *
csd=0x06b821a0) Line 178 C
libhttpd.dll!worker_main(void * thread_num_val=0x000000f8) Line 733
C
msvcr71d.dll!_threadstartex(void * ptd=0x06b82098) Line 241 + 0xd
C
kernel32.dll!GetModuleFileNameA() + 0x1b4
In function SSL_get_error, the flow skips all if statements and hit the last
return statement,
return(SSL_ERROR_SYSCALL);
Then, in function ssl_filter_write, ap_log_error() will be called with a
string "SSL output filter write failed.",
which is the error message you see in apache error log(debug mode).
else if (ssl_err == SSL_ERROR_SYSCALL) {
ap_log_error(APLOG_MARK, APLOG_INFO, outctx->rc, c->base_server,
"SSL output filter write failed.");
The attached file is the locals when reach this point.
By the way, we configured and use the mod_perl filter functions. Once SSL
generate that error message, mod_perl calls
MP_RUN_CROAK(modperl_output_filter_flush(filter),
"Apache2::Filter");
in modperl_run_filter(modperl_filter_t *filter) from modperl_filter.c,
which kills apache child process.
--
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org
|