From: Eric Wong Date: 2018-08-20T03:06:52+00:00 Subject: [ruby-core:88560] Re: [ruby-cvs:71570] normal:r64478 (trunk): spec/ruby/core/io/select_spec.rb: workaround stuck IO.select normal@ruby-lang.org wrote: > spec/ruby/core/io/select_spec.rb: workaround stuck IO.select > > Under pipe page memory pressure on Linux, a pipe may only be > created with a single buffer[1]. And as of Linux v4.18, the > fs/pipe.c::pipe_poll callback does not account for merging > done in fs/pipe::pipe_write; only the number of usable buffers > in the pipe. Thus it is possible for a pipe to be writable > (if only by a small amount) despite IO.select saying it is not. After starting work on a patch to solve the problem in Linux, I've concluded it cannot be fixed in Linux since attempting to write an exactly PAGE_SIZE-ed buffer will continually wake up from poll, and write will fail with EAGAIN, so it'd just burn up CPU. Thus my attempt at solving this issue is bogus. https://80x24.org/spew/20180820030041.18715-1-normalperson@yhbt.net/raw Unsubscribe: