Closed Bug 517793 Opened 11 years ago Closed 11 years ago

Bugzilla under mod_perl leaks RAM because of the Bugzilla::Template::_init method

Categories

(Bugzilla :: Bugzilla-General, defect)

3.4.2
defect
Not set
major

Tracking

()

RESOLVED FIXED
Bugzilla 3.4

People

(Reporter: mkanat, Assigned: mkanat)

References

Details

Attachments

(1 file)

It looks like the way that we set up our custom parser in Bugzilla::Template::_init must set up a circular reference that we don't deal with properly.

Instead of tracing down the circular reference, I discovered that Template Toolkit has supported an ENCODING parameter (at least since 2.15, that's as far back as I checked) but it's actually just not documented until later versions. (It existed in prior versions, though.) Looking over the code, all we have to do is set ENCODING => 'UTF-8' and we should be good to go.
Attached patch v1Splinter Review
Okay, I tested this and it works.

To test it, add some unicode characters to index.html.tmpl, and then try compiling and loading it with and without the ENCODING argument.
Assignee: general → mkanat
Status: NEW → ASSIGNED
Attachment #401747 - Flags: review?(wurblzap)
Attachment #401747 - Flags: review?(LpSolit)
Oh, actually, on further investigation, this is our entire memory leak. I'm going to leave the patch here, though.

See bug 517650 for information on how I tracked this down.
Summary: The Bugzilla::Template::_init method causes Bugzilla::Template->create() to leak a small amount of RAM → Bugzilla under mod_perl leaks RAM because of the Bugzilla::Template::_init method
Duplicate of this bug: 517650
Flags: blocking3.4.3+
Severity: minor → major
No longer blocks: 517650
Comment on attachment 401747 [details] [diff] [review]
v1

Tested with french and japanese templates on 3.4.2. Works as expected. Great cleanup! r=LpSolit
Attachment #401747 - Flags: review?(wurblzap)
Attachment #401747 - Flags: review?(LpSolit)
Attachment #401747 - Flags: review+
Flags: approval3.4+
Flags: approval+
tip:

Checking in Bugzilla/Template.pm;
/cvsroot/mozilla/webtools/bugzilla/Bugzilla/Template.pm,v  <--  Template.pm
new revision: 1.108; previous revision: 1.107
done
Removing Bugzilla/Template/Parser.pm;
/cvsroot/mozilla/webtools/bugzilla/Bugzilla/Template/Parser.pm,v  <--  Parser.pm
new revision: delete; previous revision: 1.1
done

3.4:

Checking in Bugzilla/Template.pm;
/cvsroot/mozilla/webtools/bugzilla/Bugzilla/Template.pm,v  <--  Template.pm
new revision: 1.99.2.3; previous revision: 1.99.2.2
done
Removing Bugzilla/Template/Parser.pm;
/cvsroot/mozilla/webtools/bugzilla/Bugzilla/Template/Attic/Parser.pm,v  <--  Parser.pm
new revision: delete; previous revision: 1.1
done
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.