File operations in base and fork+exec

Evan Laforge qdunkan at gmail.com
Fri Jun 23 21:53:40 UTC 2017


Same here.  Very confusing bug and hard to track down.

On Fri, Jun 23, 2017 at 5:41 AM, Edward Kmett <ekmett at gmail.com> wrote:
> I'd like to jump on the "this has bitten me before" bandwagon. +1
>
> -Edward
>
> On Fri, Jun 23, 2017 at 1:49 PM, Bardur Arantsson <spam at scientician.net>
> wrote:
>>
>> On 2017-06-23 10:46, Merijn Verstraaten wrote:
>> > Hi!
>> >
>> > So I realise proposing backwards incompatible changes to base is tilting
>> > at windmills, but I just noticed that most (all?) file operations in base
>> > don't open files with O_CLOEXEC, which basically means that every open
>> > Handle/file descriptor gets leaked to every single subprocess you fork+exec
>> > from Haskell. This seems highly undesirable. For POSIX there appears to be
>> > an operation in base that disables this, but it doesn't seem to easily
>> > exported.
>> >
>> > I would like to propose that all operations in base open files with
>> > O_CLOEXEC by default and exposing an easy method to mark specific file
>> > descriptors to be preserved across exec (This can be achieved by using fcntl
>> > to remove the CLOEXEC bit from a specific fd).
>> >
>> > I'm not sure to what extent Windows behaviour is similar to POSIX, but
>> > in principle it should behave the same, I think.
>> >
>>
>> +1. Current behavior is suboptimal for *almost* every use case and also
>> highly surprising.
>>
>> Regards,
>>
>> _______________________________________________
>> Libraries mailing list
>> Libraries at haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>
>
>
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>


More information about the Libraries mailing list