Project

General

Profile

Actions

Backport #5723

closed

Backport r33567 and r33573 (Ruby fails when standard input is closed)

Added by rdmoore (Randal Moore) over 12 years ago. Updated about 12 years ago.

Status:
Closed
Assignee:
-
[ruby-core:41524]

Description

If the ruby process is launched with its standard input closed, it does not behave very well. The following output was logged by the ruby process under these circumstances. The attached source file can be used to produce a minimal executable that duplicates the issue. Note that this appears to be something that changed between 1.9.2 and 1.9.3.

[BUG] rb_update_max_fd: invalid fd (0) given.
ruby 1.9.3p0 (2011-10-30 revision 33570) [i686-linux]

-- Control frame information -----------------------------------------------
c:0001 p:---- s:0002 b:0002 l:000001 d:000001 TOP

-- C level backtrace information -------------------------------------------
-e [0x8173762]
-e [0x81b7de8]
-e(rb_bug+0x35) [0x81b7e85]
-e [0x8073427]
-e [0x8079be0]
-e [0x806da5a]
-e(ruby_init+0x97) [0x805b317]
-e [0x8058887]
/lib/libc.so.6(__libc_start_main+0xdc) [0x3cedec]
-e [0x8058781]

-- Other runtime information -----------------------------------------------

0: can't convert false into String (TypeError)


Files

main.cpp (414 Bytes) main.cpp linux c source rdmoore (Randal Moore), 12/08/2011 01:48 AM

Updated by kosaki (Motohiro KOSAKI) over 12 years ago

One question. Why don't you use /dev/null? Which behavior did you expected?

Thank you.

Actions #2

Updated by nobu (Nobuyoshi Nakada) over 12 years ago

  • Tracker changed from Bug to Backport
  • Project changed from Ruby master to Backport193
  • Target version deleted (1.9.3)

Backport r33567 and r33573.

Updated by rdmoore (Randal Moore) over 12 years ago

Ruby is being forked as a subprocess by a service which runs on both windows and linux. With ruby 1.8, a closed STDIN worked and was portable to both platforms. As a work-around, we are in the middle of switching to using NULL on Windows and /dev/null on Linux. This will likely be a better long term solution for our service, as other programs are also unhappy with closed STDIN.

We expect our work-around will work, so this issue is low priority. Just thought someone could look into the regression.

Thanks

Updated by ayumin (Ayumu AIZAWA) about 12 years ago

  • Subject changed from Ruby fails when standard input is closed to Backport r33567 and r33573 (Ruby fails when standard input is closed)

Updated by kosaki (Motohiro KOSAKI) about 12 years ago

  • Status changed from Open to Closed

I commited this as r34452.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0