On 19 Feb 2016, at 15:19, Reid Sutherland wrote:
[...]

Here is the correct snippet from postfix-2.11.7/src/global/pipe_command.c:657:

            /*
* No "D.S.N text" or <sysexits.h> compatible status. Fake it.
             */
            else {
                sp = sys_exits_detail(WEXITSTATUS(wait_status));
                dsb_unix(why, sp->dsn,
                         log_len ? log_buf : sp->text,
                         "Command died with status %d: \"%s\"%s%s",
                         WEXITSTATUS(wait_status), args.command,
log_len ? ". Command output: " : "", log_buf);
                return (PIPE_STAT_BOUNCE);
            }



I think a bounce should only occur if the command explicitly returns it. If the command cannot respond properly for whatever reason, it should be assumed something is wrong and defer.

I won't try to persuade you that mystery failures should should be presumed "hard," but rather offer a possible more orderly solution. Have you considered upgrading to 3.x and using a pipe_delivery_status_filter? I don't use that feature myself, but it does exist and seems likely to work as a tool to identify Perl compilation failures and make them "soft".

Reply via email to