"erikh (Erik Hollensbe)" <erik / hollensbe.org> wrote:
> Issue #6653 has been reported by erikh (Erik Hollensbe).
> 
> ----------------------------------------
> Bug #6653: 1.9.2/1.9.3 exhibit SEGV with many threads+tcp connections
> https://bugs.ruby-lang.org/issues/6653
> 
> Author: erikh (Erik Hollensbe)
> Status: Open
> Priority: Normal
> Assignee: 
> Category: 
> Target version: 
> ruby -v: ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux] 
> 
> 
> the script: https://gist.github.com/4f36f8543ad702861096
> the trace + output of the run: https://gist.github.com/cf7dd137ad65802c46ae

Private gist for public bug reports makes no sense.  Private gists
requires account + ssh key on github to "git clone" from.

> ruby -v is 1.9.2-p290, but we're seeing this in 1.9.3-p194 as well.
> 
> This does *not* exhibit on OS X, only linux, we tested on Ubuntu 12.04.

I can't reproduce this on a similar system (Debian testing (wheezy))
with 1.9.3-p194 nor Ruby 1.9.2-p290.

rb_fd_set() should not get called under 1.9.3 on Linux from
rb_thread_fd_writable(), can you show a backtrace from 1.9.3?

Are you certain /opt/ruby/lib/libruby.so.1.9 got changed/upgraded
to the 1.9.3 version?

The ruby/config.h header for 1.9.3 should have detected ppoll() and
set: #define HAVE_PPOLL 1

ppoll() usage would prevent rb_fd_set() usage in your particular code
path.

Also, what is the value of HAVE_RB_FD_INIT in ruby/config.h?
(it should be 1 on Linux for all Ruby 1.9.x)

If you have build logs handy, can you see if ppoll() got detected
on 1.9.3?