• Geoff Simmons's avatar
    Bugfixing for large outputs and parallel tests. · 104b0069
    Geoff Simmons authored
    - Close the unused ends of pipes in the parent process.
    
    - Don't stop reading from stdout if waitpid(2) shows that
      the process has exited, as there may still be pending
      output. We now call waitpid(2) only in vdp_fini.
    
    - Close stdin as early as possible on VDP_END.
    
    - Read stdout and stderr until they close.
    
    - Don't use /bin/true and /bin/false in the tests, as
      they actually don't consume stdin, and may close
      stdin before we get to poll(2), resulting in POLLERR.
      This happened with varnishtest -jN, with j > about 5.
    
    - Index VDPs with vdp and vcl pointers in the RB tree.
      This did not turn out to be a bugfix as I thought, but
      it should be more reliable, since VCL and object names
      may be identical in varnishtest -j tests.
    104b0069
vdfp_pipe.c 15.4 KB