You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2002/11/07 00:54:58 UTC
DO NOT REPLY [Bug 14321] New: -
memory leak in mod_deflate with dynamic content on Windows
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14321>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14321
memory leak in mod_deflate with dynamic content on Windows
Summary: memory leak in mod_deflate with dynamic content on
Windows
Product: Apache httpd-2.0
Version: 2.0.43
Platform: PC
OS/Version: Windows XP
Status: NEW
Severity: Normal
Priority: Other
Component: mod_deflate
AssignedTo: bugs@httpd.apache.org
ReportedBy: kfranken@decisionmark.com
mod_deflate shows substantial memory leakage when used with dynamic content, at
least on WindowsXP. Below is a test module to generate some dynamic content and
a section of the httpd.conf file I used.
The URL http://localhost/compressed-dynamic leaks about 8k per request over the
course of 20,000 requests using ab.exe; http://localhost/compressed-static and
http://localhost/uncompressed-* did not show any leaks. The leak_test.html file
used for the -static tests is just a saved version of one of the dynamic files.
httpd.conf
### Leak testing
Alias /leak_test "E:/Apache2/leak_test"
Alias /uncompressed-static "E:/Apache2/leak_test/leak_test.html"
Alias /compressed-static "E:/Apache2/leak_test/leak_test.html"
<Directory "E:/Apache2/leak_test">
Order deny,allow
Allow from all
</Directory>
<LocationMatch "^/compressed-">
SetOutputFilter DEFLATE
Order deny,allow
Allow from all
</LocationMatch>
<LocationMatch "^/[a-z]+-dynamic">
SetHandler leak-test
Order deny,allow
Allow from all
</LocationMatch>
mod_leak_test.c
/* mod_leak_test */
/* An example Apache 2.0 module that generates dynamic content that can be used
to */
/* test/demonstrate mod_deflate memory leakage */
/* 11/6/02 Ken Franken */
#include "ap_config.h"
#include "http_protocol.h"
#include "http_config.h"
#include <math.h>
module AP_MODULE_DECLARE_DATA leak_test_module;
static int leak_test_handler(request_rec *r)
{
long i;
/* if we aren't registered as a handler for the document, punt */
if(strcmp(r->handler, "leak-test") != 0)
return DECLINED;
ap_set_content_type(r, "text/html");
r->status = HTTP_OK;
if (r->header_only) {
return OK;
}
/* write some random data to the client */
ap_rputs(DOCTYPE_HTML_4_0S, r);
ap_rputs("<html><body>", r);
for(i=0; i<1000; i++)
ap_rprintf(r, "%d%d%d<br>\n", rand(), rand(), rand());
ap_rputs("</body></html>", r);
return OK;
}
static void register_hooks(apr_pool_t *p)
{
ap_hook_handler(leak_test_handler, NULL, NULL, APR_HOOK_MIDDLE);
}
module AP_MODULE_DECLARE_DATA leak_test_module =
{
STANDARD20_MODULE_STUFF,
NULL, /* dir config creater */
NULL, /* dir merger --- default is to override */
NULL, /* server config */
NULL, /* merge server config */
NULL, /* command apr_table_t */
register_hooks /* register hooks */
};
---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org