Mailing List Archive

30 second timeout
Hi Folks,

I've got an .epl script that is failing to run past 30 seconds. Here's a very simple example:

[$ var $foo $]

[- $foo = "Hello" -]

[+ $foo +]

[$ while (1==1) $]

[- $foo = time -]
[+ $foo . "<br>" +]

[$ endwhile $]

The actual script is doing some db queries, but the affect (> 30 seconds to run) is the same.

When I hit that it times out at 30 seconds. I've tried with the browser and wget (which has a 900 second default timeout according to the man page). I think this is happening because Embperl doesn't send a response until after the full output is completed, but it looks to be the server that's enforcing the cutoff. I'm running 2.2.0 under mod_perl 2.0.2 and httpd 2.2.4.

Is there some way to adjust the server timeout to exceed 30 seconds? Meanwhile, I'm trying to speed up the execution of my script as a stop gap. :)

Thanks much,
Matt Bockol


---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-help@perl.apache.org
RE: 30 second timeout [ In reply to ]
Hi Matthew,

> I've got an .epl script that is failing to run past 30
> seconds. Here's a very simple example:

[snip]

> When I hit that it times out at 30 seconds. I've tried with
> the browser and wget (which has a 900 second default timeout
> according to the man page). I think this is happening
> because Embperl doesn't send a response until after the full
> output is completed, but it looks to be the server that's
> enforcing the cutoff. I'm running 2.2.0 under mod_perl 2.0.2
> and httpd 2.2.4.
>
> Is there some way to adjust the server timeout to exceed 30
> seconds? Meanwhile, I'm trying to speed up the execution of
> my script as a stop gap. :)

The timeout on the apache side is controlled by the "Timeout" variable
in your config file. Under debian at least this is set to 300 (5 min) by
default. Have a look at /etc/apache2 or wherever your apache config
files live and check the value.

If you're talking directly to the server (no proxies etc) then this
should be the culprit.

As an aside, how long are you expecting the page code to take?


In HTML::Embperl there was an optEarlyHttpHeader setting for
EMBPERL_OPTIONS. I can't see that available for Embperl and I'm not sure
its even possible with the structural changes made along the way. I'm
sure someone else with more experience in 2.2 can enlighten us though.

Cheers,

Andrew


---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-help@perl.apache.org
Re: 30 second timeout [ In reply to ]
Hi Andrew,

This doesn't seem to be related to the httpd Timeout config -- it's failing well before the five minute cut off. That it happens after almost exactly 30 seconds (30 seconds and a few microseconds each time) I think there must be an arbitrary setting somewhere. I've tried the connecting with wget (which is supposed to wait 900s before failing) and it still dies after 30. A simple CGI doesn't have this problem, so I think it's probably being set somewhere in mod_perl or embperl.

The page could run for as much as a minute before output is completely assembled. I've optimized the code a bit and it now executes in under 30 seconds, but the duration of the run is dependent on user supplied data (how many entries they make in the DB being queried), so that's no guarantee.

I've looked into the docs for the optEarlyHttpHeader setting you mentioned, but it seems to be removed in v2.0+.

Thanks much,
Matt



----- Original Message -----
From: "Andrew O'Brien" <andrewo@oriel.com.au>
To: embperl@perl.apache.org
Sent: Monday, November 26, 2007 5:33:56 PM (GMT-0600) America/Chicago
Subject: RE: 30 second timeout


Hi Matthew,

> I've got an .epl script that is failing to run past 30
> seconds. Here's a very simple example:

[snip]

> When I hit that it times out at 30 seconds. I've tried with
> the browser and wget (which has a 900 second default timeout
> according to the man page). I think this is happening
> because Embperl doesn't send a response until after the full
> output is completed, but it looks to be the server that's
> enforcing the cutoff. I'm running 2.2.0 under mod_perl 2.0.2
> and httpd 2.2.4.
>
> Is there some way to adjust the server timeout to exceed 30
> seconds? Meanwhile, I'm trying to speed up the execution of
> my script as a stop gap. :)

The timeout on the apache side is controlled by the "Timeout" variable
in your config file. Under debian at least this is set to 300 (5 min) by
default. Have a look at /etc/apache2 or wherever your apache config
files live and check the value.

If you're talking directly to the server (no proxies etc) then this
should be the culprit.

As an aside, how long are you expecting the page code to take?


In HTML::Embperl there was an optEarlyHttpHeader setting for
EMBPERL_OPTIONS. I can't see that available for Embperl and I'm not sure
its even possible with the structural changes made along the way. I'm
sure someone else with more experience in 2.2 can enlighten us though.

Cheers,

Andrew


---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-help@perl.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-help@perl.apache.org