Re: Apache cgid:error for HTML::Template::Pro templates larger than 8k

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jul 10, 2014 at 11:20 AM, Tom Phan <yachtus-apache@xxxxxxxxx.invalid> wrote:
My web server: FreeBSD 10.0, Apache 2.4, Perl 5.16, HTML::Template::Pro 0.9510

When I try to run any perl script calling HTML::Template::Pro templates larger than 8,191 bytes, I get following error in httpd:

[cgid:error] malformed header from script 'test.pl': Bad header: <!doctype html>

Running the script from command line does produce the expected output and no error, so I am assuming the cause of the error is related to Apache.


Here is the simple perl script 'test.pl' that I tested with:

#!/usr/bin/perl
use strict;
use HTML::Template::Pro;
my $tmpl = HTML::Template::Pro -> new(filename => 'test.tmpl');
print "Content-Type: text/html\n\n";
$tmpl -> output();

..and the HTML::Template::Pro template 'test.tmpl':

<!doctype html>
<html>
<body>
<p>blah blah</p>
</body>
</html>

I ran test.pl in the browser and everything was fine at first, no error. Then I started adding a lot of blah blahs to the template file until the size of the template file hit exactly 8,192 bytes, at which time it crashed with a 500 and with the above error logged in the httpd-error.log. If I delete even a single character from the template file so it goes below 8K, the script runs again. I have absolutely no idea why this happens. By the way, large html files do not crash Apache, nor do Perl scripts printing html code directly (without HTML::Template::Pro. I tried both to the extreme, creating MBs of html code and wasn't able to crash anything at all.

If I switch to mod_cgi instead of mod_cgid, the error appears exactly when template file hits 4K in size. So it is 8K for mod_cgid and 4K for mod_cgi.

What is it in Apache that imposes such limits on the size of my templates and how can I lift/increase them?

Can you capture the output of the CGI process run under httpd at least up to the point of the "<!doctype html>" text?

I'd guess you are "suffering from buffering" somehow, and the threshhold is a different value with mod_cgid vs mod_cgi.

--
Born in Roswell... married an alien...
http://emptyhammock.com/

[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux