Testing ezmlm stuff on a 486/32MB I ran into some resource exhaustion,
and noticed that qmail-remote crashing is a permanent error, while an
inability to fork qmail-remote is a permanent error. This seems
incorrect and caused loss of a message.

Log (the second entry is a crash leading to the expected deferral):
Jan 26 11:56:10 id qmail: 917351770.477256 status: local 0/10 remote
40/40
Jan 26 11:56:10 id qmail: 917351770.832994 delivery 7497: failure:
Unable_to_run_qmail-remote./
Jan 26 11:56:11 id qmail: 917351771.243102 status: local 0/10 remote
39/40
[...]
Jan 26 11:56:11 id qmail: 917351771.689201 status: local 0/10 remote
38/40
Jan 26 11:56:11 id qmail: 917351771.689736 delivery 7498: deferral:
qmail-remote_crashed./
Jan 26 11:56:11 id qmail: 917351771.690242 status: local 0/10 remote
37/40

qmail-rspawn.c (qmail-1.03):

if (wait_crashed(wstat))
  { substdio_puts(ss,"Zqmail-remote crashed.\n"); return; }
 switch(wait_exitcode(wstat))
  {
   case 0: break;
   case 111: substdio_puts(ss,"ZUnable to run qmail-remote.\n");
return;
   default: substdio_puts(ss,"DUnable to run qmail-remote.\n"); return;
  }
 
IMHO, the default should be a Z... temporary error as well and specific
errors captured to give a permanent error (i.e. 100). I assume that the
error code here was something from the OS (Redhat Linux 5.1 x86).


-Sincerely, Fred

(Frederik Lindberg, Infectious Diseases, WashU, St. Louis, MO, USA)

Reply via email to