Well! Very, very strange behaviour that I can’t explain : the
/tmp/sendmail-stdin filled by tee is fulfilled all the time, but when I
encounter the bug, nothing appear in the file!
Can you modify the script (and go back to sendmailpipe) with this added
line?
echo "=== START $$" >> /tmp/sendmail-lsof
lsof -d^mem,^cwd,^txt,^rtd -a -p $$ >> /tmp/sendmail-lsof
echo "=== END $$" >> /tmp/sendmail-lsof
and then send us the output when you encounter the problem?
Thank you for your concern Thomas.
Here is the modified script :
#!/bin/bash
TMP_FILE=“/tmp/sendmail-stdin”
TMP_LSOF_FILE=“/tmp/sendmail-lsof”
DATUM=“date +%Y%m%d-%H%M%S
”
echo “=====NEW SENDMAIL CALL=======” >> “${TMP_LSOF_FILE}”
echo “${DATUM}” >> “${TMP_LSOF_FILE}”
echo “=== START $$” >> “${TMP_LSOF_FILE}”
lsof -d^mem,^cwd,^txt,^rtd -a -p $$ >> “${TMP_LSOF_FILE}”
echo “=== END $$” >> “${TMP_LSOF_FILE}”
echo “=====NEW SENDMAIL CALL=======” >> “${TMP_FILE}”
echo “${DATUM}” >> “${TMP_FILE}”
echo “========MESSAGE BEGIN========” >> “${TMP_FILE}”
exec tee -a “${TMP_FILE}” | /usr/sbin/sendmail.real “$@”
echo “========MESSAGE ENDED========” >> “${TMP_FILE}”
echo “${DATUM}” >> “${TMP_FILE}”
echo “======END SENDMAIL CALL======” >> “${TMP_FILE}”
Here are the “sendmail-stdin” log, showing a bad behavior, for 3 mails in a
row :
=====NEW SENDMAIL CALL=======
20120913-110049
========MESSAGE BEGIN========
========MESSAGE ENDED========
20120913-110049
======END SENDMAIL CALL======
=====NEW SENDMAIL CALL=======
20120913-110049
========MESSAGE BEGIN========
========MESSAGE ENDED========
20120913-110049
======END SENDMAIL CALL======
=====NEW SENDMAIL CALL=======
20120913-110049
========MESSAGE BEGIN========
========MESSAGE ENDED========
20120913-110049
======END SENDMAIL CALL======
And here is the “sendmail-lsof” of the corresponding messages :
=====NEW SENDMAIL CALL=======
20120913-110049
=== START 18686
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sendmail 18686 apache 1r FIFO 0,8 0t0 1982013 pipe
sendmail 18686 apache 2w REG 253,0 1940786 144696
/var/log/httpd/error_log
sendmail 18686 apache 255r REG 253,0 687 24192 /usr/sbin/sendmail
=== END 18686
=====NEW SENDMAIL CALL=======
20120913-110049
=== START 18693
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sendmail 18693 apache 1r FIFO 0,8 0t0 1982078 pipe
sendmail 18693 apache 2w REG 253,0 1941340 144696
/var/log/httpd/error_log
sendmail 18693 apache 255r REG 253,0 687 24192 /usr/sbin/sendmail
=== END 18693
=====NEW SENDMAIL CALL=======
20120913-110049
=== START 18700
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sendmail 18700 apache 1r FIFO 0,8 0t0 1982130 pipe
sendmail 18700 apache 2w REG 253,0 1941912 144696
/var/log/httpd/error_log
sendmail 18700 apache 255r REG 253,0 687 24192 /usr/sbin/sendmail
=== END 18700
I returned to SMTP until sendmailpipe work again…
Thanks,
Raphaël Berlamont