You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apache-bugdb@apache.org by Petr Lampa <la...@fee.vutbr.cz> on 1997/02/05 23:00:01 UTC
mod_negotiation/159: Memory hog in handle_multi()
>Number: 159
>Category: mod_negotiation
>Synopsis: Memory hog in handle_multi()
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: gnats-admin (GNATS administrator)
>State: open
>Class: sw-bug
>Submitter-Id: apache
>Arrival-Date: Wed Feb 5 14:00:01 1997
>Originator: lampa@fee.vutbr.cz
>Organization:
apache
>Release: 1.2b2, b3, b4, b6
>Environment:
FreeBSD-2.2BETA
>Description:
Problem reported for 1.2b2, still unresolved.
All generated variants have to be explicitly deleted
using destroy_sub_req() at the end of handle_multi(). Number of variants
could be quite huge (consider situation when documents
are available in 5 languages, each in 10 charsets).
>How-To-Repeat:
>Fix:
Replace every 'return status' with the exception of first one in handle_multi()
with this code:
res = status;
goto return_from_multi;
return_from_multi:
var_rec *avail_recs = (var_rec *)neg->avail_vars->elts;
for (j = 0; j < neg->avail_vars->nelts; ++j) {
var_rec *variant = &avail_recs[j];
if (variant != best && variant->sub_req) destroy_sub_req(variant->sub_req);
}
return res%3
>Audit-Trail:
>Unformatted: