From: Eric Wong Date: 2012-06-27T11:06:18+09:00 Subject: [ruby-core:45905] Re: [ruby-trunk - Bug #6653][Open] 1.9.2/1.9.3 exhibit SEGV with many threads+tcp connections "erikh (Erik Hollensbe)" 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?