This message includes a little background, so please read on...
I've been beating my head against a wall for the past two days trying to figure out why a perl CGI wasn't running. It turns out that it was being killed automatically by the process creator (Process.create_process) in the CGI module. Despite giving it quite generous (basically unlimited) limits, it was still being stomped on.
I commented out the following code (options is passed to Process.create_process):
if(limits) options->rlimit=limits;
And now everything is working as it should. I don't know what the problem might be, but it was a simple perl script (I pared it down to test), and the line that seemed to make the difference between working and not was:
use Sybase::CTLib;
First, I think something's funny with the limits support if this simple program was getting killed. Second, has anyone else had similar problems?
The rlimit in question looks like this:
"rlimit":([ /* 3 elements */ "core":0, "cpu":60, "nofile":64 ])
This program runs in about 1 second from the command line. Also, FWIW, this problem is present in Caudium 1.2 (pike 7.2) and 1.3 (7.4).
Any thoughts?
Bill
It might be that 64 filedescriptors is a bit low for a database such as sybase. Try trussing the script to see how many filedescriptors it needs?
/ Marcus Comstedt (ACROSS) (Hail Ilpalazzo!)
Previous text:
2003-12-01 18:37: Subject: Process.create_process() and rlimits
This message includes a little background, so please read on...
I've been beating my head against a wall for the past two days trying to figure out why a perl CGI wasn't running. It turns out that it was being killed automatically by the process creator (Process.create_process) in the CGI module. Despite giving it quite generous (basically unlimited) limits, it was still being stomped on.
I commented out the following code (options is passed to Process.create_process):
if(limits) options->rlimit=limits;
And now everything is working as it should. I don't know what the problem might be, but it was a simple perl script (I pared it down to test), and the line that seemed to make the difference between working and not was:
use Sybase::CTLib;
First, I think something's funny with the limits support if this simple program was getting killed. Second, has anyone else had similar problems?
The rlimit in question looks like this:
"rlimit":([ /* 3 elements */ "core":0, "cpu":60, "nofile":64 ])
This program runs in about 1 second from the command line. Also, FWIW, this problem is present in Caudium 1.2 (pike 7.2) and 1.3 (7.4).
Any thoughts?
Bill
/ Brevbäraren
pike-devel@lists.lysator.liu.se