[ruby-core:88313] [Ruby trunk Misc#14907] [PATCH] io.c: do not close inherited FDs by default

From: normalperson@...
Date: 2018-08-06 19:13:55 UTC
List: ruby-core #88313
Issue #14907 has been updated by normalperson (Eric Wong).

File 0001-process.c-close_others-defaults-to-false.patch added

Updated patch to default close_others to false


----------------------------------------
Misc #14907: [PATCH] io.c: do not close inherited FDs by default
https://bugs.ruby-lang.org/issues/14907#change-73343

* Author: normalperson (Eric Wong)
* Status: Open
* Priority: Normal
* Assignee: akr (Akira Tanaka)
----------------------------------------
io.c: do not close inherited FDs by default

While I fully agree Ruby should create FDs with close-on-exec by
default (as it has since 2.0.0); I don't believe Ruby should be
arbitrarily closing file descriptors it does not know about.

The following is an example (using mwrap[1]) where closing
inherited FDs is harmful.

    MWRAP=dump_fd:99 mwrap make -j4 exam 99>>mwrap.out

I only found one minor regression from this change in
test/lib/test/unit.rb as IO.new does not set close-on-exec
when using jobserver FDs from make.  A possible change
is to make IO.new set FD_CLOEXEC by default.

[1] https://80x24.org/mwrap/README.html


---Files--------------------------------
0001-io.c-do-not-close-inherited-FDs-by-default.patch (4.45 KB)
0001-process.c-close_others-defaults-to-false.patch (4.84 KB)


-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next