[GHC] #3649: inconsistent exception between unix/windows for running non-existant program

GHC ghc-devs at haskell.org
Tue Jul 30 20:05:56 CEST 2013


#3649: inconsistent exception between unix/windows for running non-existant
program
--------------------------------------+------------------------------------
        Reporter:  duncan             |            Owner:
            Type:  bug                |           Status:  new
        Priority:  low                |        Milestone:  7.6.2
       Component:  libraries/process  |          Version:  6.10.4
      Resolution:                     |         Keywords:
Operating System:  Unknown/Multiple   |     Architecture:  Unknown/Multiple
 Type of failure:  None/Unknown       |       Difficulty:  Unknown
       Test Case:                     |       Blocked By:
        Blocking:                     |  Related Tickets:
--------------------------------------+------------------------------------
Changes (by duncan):

 * status:  closed => new
 * resolution:  fixed =>


Comment:

 Note that the C code still says (roughly):
 {{{
         if (close_fds) {
             int i;
             // XXX Not the pipe
             for (i = 3; i < max_fd; i++) {
                 close(i);
             }
         }
 }}}
 Which means that this nice new error handling will (I think) go wrong in
 the `CreateProcess { close_fds = True }` case. Should be easy to fix, just
 something like...

 {{{
             for (i = 3; i < max_fd; i++) {
                 if (i != forkCommunicationFds[1]) { close(i); }
             }
 }}}

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/3649#comment:10>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler




More information about the ghc-tickets mailing list