From: akr@... Date: 2018-08-09T06:31:36+00:00 Subject: [ruby-core:88367] [Ruby trunk Misc#14907] [PATCH] io.c: do not close inherited FDs by default Issue #14907 has been updated by akr (Akira Tanaka). We discuss this issue at today's meeting. We agree we can challenge to change the default. Then, we can see actual problem (FD leak) exist or not. ---------------------------------------- Misc #14907: [PATCH] io.c: do not close inherited FDs by default https://bugs.ruby-lang.org/issues/14907#change-73406 * 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: