Issue #5306 has been updated by Charlie Savage.
Hmm, I take is this is against head? On the 1.9.3 branch there is already this method (line 2384):
void
rb_fd_copy(rb_fdset_t *dst, const fd_set *src, int max)
The patch then adds this right below it (line 2399):
static void
rb_fd_rcopy(fd_set *dst, rb_fdset_t *src)
And then lower down (line 2690):
if (read) {
rfds = &fdsets[0];
rb_fd_init(rfds);
rb_fd_copy(rfds, read, max);
}
So that rb_fd_copy call would no longer work.
----------------------------------------
Bug #5306: Application Hangs Due to Recent rb_thread_select Changes
http://redmine.ruby-lang.org/issues/5306
Author: Charlie Savage
Status: Open
Priority: High
Assignee:
Category: core
Target version: 1.9.3
ruby -v: -
This commit:
4e9438bc9153f7a1f4ea0af85c8dbe359e1a55d8
Changed the implementation of rb_thread_select.
It causes eventmachine to hang on CentOS 5.5. Not sure what the issue is, but its easily reproduced by by running the test eventmachine/tests/test_epoll.rb.
We noticed this because it also causes the tweetstream gem to hang.
The same setup works on Fedora 14 and an up-to-date arch linux. Specific version information included below.
We temporarily fixed this by reverting the commit.
Since Centos is a common production environment (and the one we are using), this seems to us a blocker for 1.9.3.
We are happy to provide any additional information or test fixes.
Thanks - Charlie
--------------
We are running this version of CentOS:
Linux app1.zerista.com 2.6.18-238.19.1.el5.centos.plus #1 SMP Mon Jul 18 10:05:09 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux
And this version of Fedora:
Linux ammonite.internal.zerista.com 2.6.35.14-95.fc14.x86_64 #1 SMP Tue Aug 16 21:01:58 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
And this version of eventmachine:
eventmachine (1.0.0.beta.3)
And this version of tweetstream:
tweetstream (1.0.4)
--
http://redmine.ruby-lang.org