[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Alert Script page.log contains many: Argument list too long
- To: hobbit (at) hswn.dk
- Subject: Alert Script page.log contains many: Argument list too long
- From: "s_aiello (at) comcast.net" <s_aiello (at) comcast.net>
- Date: Wed, 26 Mar 2008 14:46:55 -0400
- User-agent: KMail/1.9.6 (enterprise 0.20070907.709405)
Hello All,
I was implementing a new alert script. After doing so I was checking my logs
to make sure all was well. I noticed the server/logs/page.log had many:
"Could not launch paging script /hobbit/script.sh: Argument list too long". So
I thought there was something wrong with my script. So I changed my script to
something very simple to debug and came up with nothing.
So I started to dig into the code and found in hobbitd/do_alert.c:
/* The child starts the script */
execlp(recip->scriptname, recip->scriptname, NULL);
errprintf("Could not launch paging script %s: %s\n",
recip->scriptname, strerror(errno));
exit(0);
Searched for the execlp function and found it nowhere in the Hobbit code.. so
it must be system level. Once I started to google for execlp + "Argument
list too long", this seem to be quite a common problem. A snippet from one
posting I found was:
and the explanation: in the linux kernel is the function execve(),
which is how all of the other exec() functions (execl, execlp, execle,
etc.) are actually implemented. the way it works is by creating a 128K
buffer at the top end of the memory space and copying the command line
and environment for the new process into this space. it then loads the
new program into memory, sets its argv and envp pointers, and jumps to
its entry point.
there's a lot more to it than that, but the point is that there is a
128K buffer which is the only thing "held" from the parent process to
the child. the "Argument list too long" error message is actually the
kernel's E2BIG error code, returned when the execve() is not able to
fit the supplied argument list and environment into the 128K buffer.
Hobbit server is 4.2.0 + allinone on a RHEL 4 update 4. So this is over my
head, I know it isn't my script. My the status message is too big for the
execlp buffer ? not sure if there is a way for me to increase that buffer,
yet.
Thanks,
~Steve