From nobody@hyperreal.com Wed Feb 5 13:53:22 1997 Received: by taz.hyperreal.com (8.8.4/V2.0) id NAA05310; Wed, 5 Feb 1997 13:53:22 -0800 (PST) Message-Id: <199702052153.NAA05310@taz.hyperreal.com> Date: Wed, 5 Feb 1997 13:53:22 -0800 (PST) From: Petr Lampa Reply-To: lampa@fee.vutbr.cz To: apbugs@hyperreal.com Subject: Memory hog in handle_multi() X-Send-Pr-Version: 3.2 >Number: 159 >Category: mod_negotiation >Synopsis: Memory hog in handle_multi() >Confidential: no >Severity: non-critical >Priority: medium >Responsible: apache >State: closed >Class: sw-bug >Submitter-Id: apache >Arrival-Date: Wed Feb 5 14:00:01 1997 >Last-Modified: Tue Feb 25 17:15:19 PST 1997 >Originator: lampa@fee.vutbr.cz >Organization: >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: State-Changed-From-To: open-closed State-Changed-By: marc State-Changed-When: Tue Feb 25 17:15:19 PST 1997 State-Changed-Why: Fixed in revision 1.33 of mod_negotiation.c >Unformatted: