On 2/01/2013 3:47 a.m., JokeTube.TV wrote:
Hello,
I am using helpers to customize Squid's functionality. I noticed that
helpers die after some time (all at the same time). Is that normal? Is
there any limit how much requests one helper could serve and after
must be killed?
For PHP helpers yes unfortunately it is. The PHP documented time limits
(plural) do not al work correctly in all version of PHP.
I tried resolving this with many PHP4 and 5 versions, but in the end the
only thing that worked was modifying Squid to the below behaviour of
ignoring the helper deaths and auto-restarting them all every single
hour. It looks like you are running a version of Squid where that change
is already present.
2013/01/01 16:19:22| WARNING: basicauthenticator #1 (FD 12) exited
2013/01/01 16:19:22| WARNING: basicauthenticator #3 (FD 32) exited
2013/01/01 16:19:23| WARNING: basicauthenticator #2 (FD 16) exited
2013/01/01 16:19:23| Too few basicauthenticator processes are running
2013/01/01 16:19:23| Starting new helpers
This kind of logs seems suspicious to me. The helper program is a
simple PHP script which has set_time_limit(0) at the beginning and
while loop to process requests:
while ($line = fgets(STDIN)) {
// connect to DB if connection does not exist or were closed
list($userName, $password) = explode(' ', trim($line), 2);
// check user & pass and reply OK, ERR or BH
}
Can anyone suggest what debug_options's section I should use to log
helper killing reason? Any suggestion or tip will be appreciated.
There is the above PHP script run-time limit, a PHP stdin/out use
timeouts, and PHP engine run-time limits to fight here. All of these
exit/abort the helper without any reason being logged anywhere on the
system (thank you Zend). The first two of them are configurable from
within the script with sometimes-working function calls, the engine
limit is a php.ini setting only that cannot be unlimited.
Amos