From: eregontp@... Date: 2018-08-16T12:20:50+00:00 Subject: [ruby-core:88501] [Ruby trunk Misc#14907] [PATCH] io.c: do not close inherited FDs by default Issue #14907 has been updated by Eregon (Benoit Daloze). @normalperson FWIW, I'm not fond of the jobserver-related logic in spec/ruby/optional/capi/spec_helper.rb, it's too complex and seems to gain nothing (but does prevent a make warning IIRC). If there is an easy way to ignore the warning due to having a grandparent make process, I'll gladly take it. There is no point to parallelize building the C-API specs, it's single C files. ---------------------------------------- Misc #14907: [PATCH] io.c: do not close inherited FDs by default https://bugs.ruby-lang.org/issues/14907#change-73559 * 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: