procmail
[Top] [All Lists]

Re: How to let procmail use mre memory?

2010-01-31 12:32:33
On Sun, 2010-01-31 at 15:40 +0100, Michelle Konzack wrote:
Hello,
...
procmail: Assigning "LOG=####  6 ####
"
####  6 ####
procmail: Executing " test -z "${TMPVAR5}""
procmail: Failed to execute ""
procmail: Non-zero exitcode (69) from " test -z "${TMPVAR5}""
procmail: No match on " test -z "${TMPVAR5}""
procmail: Executing " test -z "${TMPVAR5}""
procmail: Failed to execute ""
procmail: Non-zero exitcode (69) from " test -z "${TMPVAR5}""
procmail: No match on " test -z "${TMPVAR5}""
procmail: Assigning "LOG=####  9 ####

I still don not see what is causing the 'Failed to execute ""' error.

I was, however, able to reproduce the exitcode 69 with a bit less code:

john(_at_)system76-pc:~/kon$ cat kon.rc
SHELL='/bin/sh'
NL='
'

LINEBUF=654321

# 127 works; 128 fails
SIZE=128

LOG="SIZE=${SIZE} kB${NL}"

BIGVAR=`seq -ws '' 1 100000 | dd count=$SIZE bs=1K`

VERBOSE=yes

      :0
      * ? test -z "${TMPVAR5}"
      {
LOG=matched
      }

VERBOSE=no
:0
|

john(_at_)system76-pc:~/kon$ :|procmail -m kon.rc
SIZE=128 kB
128+0 records in
128+0 records out
131072 bytes (131 kB) copied, 0.022458 s, 5.8 MB/s
procmail: [16547] Sun Jan 31 12:15:32 2010
procmail: Executing " test -z "${TMPVAR5}""
procmail: Failed to execute " test -z "${TMPVAR5}""
procmail: [16547] Sun Jan 31 12:15:32 2010
procmail: Non-zero exitcode (69) from " test -z "${TMPVAR5}""
procmail: No match on " test -z "${TMPVAR5}""
procmail: Assigning "VERBOSE=no"

Regarding exitcode 69, I only found this -> 
http://www.errorpro.com/unix/unixerror.php?ecode=ESRMNT&descr=Stream%20Problems%20Errors

I believe the limit you are hitting might actually be with exporting the 
environment to /bin/sh ?

john(_at_)system76-pc:~/kon$ SIZE=127;export BIGVAR=`seq -ws '' 1 1000000 | dd 
count=$SIZE bs=1K`;test -z "${BIGVAR}"; /bin/sh -c 'test -z "${BIGVAR}"; echo 
$?'
127+0 records in
127+0 records out
130048 bytes (130 kB) copied, 0.02076 s, 6.3 MB/s
1

john(_at_)system76-pc:~/kon$ SIZE=128;export BIGVAR=`seq -ws '' 1 1000000 | dd 
count=$SIZE bs=1K`;test -z "${BIGVAR}"; /bin/sh -c 'test -z "${BIGVAR}"; echo 
$?'
128+0 records in
128+0 records out
131072 bytes (131 kB) copied, 0.0207557 s, 6.3 MB/s
bash: /bin/sh: Argument list too long

john(_at_)system76-pc:~/kon$ man bash
bash: /usr/bin/man: Argument list too long

john(_at_)system76-pc:~/kon$ man bash
bash: /usr/bin/man: Argument list too long

john(_at_)system76-pc:~/kon$ env
bash: /usr/bin/env: Argument list too long

I am not certain, but it seems to me that those limits are possibly controlled 
by "stack" or "msqqueue" in /etc/security/limits.conf -> 
http://linux.die.net/man/5/limits.conf

Perhaps another list member can shed more light on the topic?

I would pursue modifying the code to avoid reaching this limit rather than 
attempting to change the limit.

____________________________________________________________
procmail mailing list   Procmail homepage: http://www.procmail.org/
procmail(_at_)lists(_dot_)RWTH-Aachen(_dot_)de
http://mailman.rwth-aachen.de/mailman/listinfo/procmail