https://bugs.exim.org/show_bug.cgi?id=2114

            Bug ID: 2114
           Summary: pipe transport timeout has no effect when parent
                    process exits while child continues to run
           Product: Exim
           Version: 4.88
          Hardware: All
                OS: All
            Status: NEW
          Severity: bug
          Priority: medium
         Component: Transports
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]

I have the following router:

virtual_faxtest:
  driver = accept
  domains = faxtest.example.com
  transport = faxtest_delivery
  cannot_route_message = Test router error

and this transport:

faxtest_delivery:
  driver = pipe
  command = /home/pbackes/send_faxtest.php
  timeout = 10s
  return_fail_output
  #log_fail_output
  #log_defer_output
  log_output
  temp_errors = 73 : 75 : 255
  message_prefix =
  message_suffix =

with send_faxtest.php being:
#!/usr/local/bin/php
<?php
$mail_conv = proc_open("/home/pbackes/idle",array(0 => array('pipe','r'),1 =>
array('pipe','w')),$pipes,'/tmp');
    exit(1);

?>

and idle being compiled idle.c:
int main(void)
{
    for (;;)
        continue;
}

Then, when I send email to [email protected], idle keeps running despite
the timeout of 10 seconds, and the exim delivery process (/usr/local/sbin/exim
-Mc $ID) keeps running indefinitely. I have to kill -9 the idle process
manually. The timeout should be honored.

Using "for (;;) continue;" instead of "exit(1);" in send_faxtest.php and
everything (obviously) works as it should.

$ uname -a
FreeBSD localhost 10.3-RELEASE-p11 FreeBSD 10.3-RELEASE-p11 #0: Mon Oct 24
18:49:24 UTC 2016    
[email protected]:/usr/obj/usr/src/sys/GENERIC  amd64

$ exim --version
Exim version 4.88 #0 (FreeBSD 10.1) built 01-Feb-2017 18:17:34
Copyright (c) University of Cambridge, 1995 - 2016
(c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file, 2007 - 2016
Probably Berkeley DB version 1.8x (native mode)
Support for: crypteq iconv() IPv6 use_setclassresources PAM Perl Expand_dlfunc
OpenSSL Content_Scanning DKIM DNSSEC Event OCSP PRDR Experimental_SPF
Experimental_SRS Experimental_DANE Experimental_DMARC
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmjz
dbmnz dnsdb dsearch mysql passwd
Authenticators: cram_md5 dovecot plaintext spa
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0
Configure owner: 0:0
Size of off_t: 8
2017-05-02 14:40:12 Warning: purging the environment.
 Suggested action: use keep_environment.
Configuration file is /usr/local/etc/exim/configure

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-- 
## List details at https://lists.exim.org/mailman/listinfo/exim-dev Exim 
details at http://www.exim.org/ ##

Reply via email to