From: normalperson@... Date: 2018-07-11T10:33:03+00:00 Subject: [ruby-core:87904] [Ruby trunk Misc#14907] [PATCH] io.c: do not close inherited FDs by default Issue #14907 has been reported by normalperson (Eric Wong). ---------------------------------------- Misc #14907: [PATCH] io.c: do not close inherited FDs by default https://bugs.ruby-lang.org/issues/14907 * 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) -- https://bugs.ruby-lang.org/ Unsubscribe: