[#44786] [ruby-trunk - Feature #2565] adding hooks for better tracing — "tenderlovemaking (Aaron Patterson)" <aaron@...>
8 messages
2012/05/01
[#44788] Re: [ruby-trunk - Feature #2565] adding hooks for better tracing
— SASADA Koichi <ko1@...>
2012/05/02
(2012/05/02 8:25), tenderlovemaking (Aaron Patterson) wrote:
[#44789] Re: [ruby-trunk - Feature #2565] adding hooks for better tracing
— SASADA Koichi <ko1@...>
2012/05/02
(2012/05/02 8:25), tenderlovemaking (Aaron Patterson) wrote:
[#44911] [ruby-trunk - Bug #6408][Open] DelegateClass#eql? and <=> don't work as expected — "tenderlovemaking (Aaron Patterson)" <aaron@...>
11 messages
2012/05/06
[#44951] [ruby-trunk - Feature #6414][Open] Destructuring Assignment — "edtsech (Edward Tsech)" <edtsech@...>
14 messages
2012/05/08
[#45001] [ruby-trunk - Bug #6425][Open] Psych issue with !!omap — "trans (Thomas Sawyer)" <transfire@...>
5 messages
2012/05/11
[#45009] [ruby-trunk - Bug #6427][Open] ruby ioctl: Error integer 2148012656 too big to convert to `int' — "hadmut (Hadmut Danisch)" <hadmut@...>
5 messages
2012/05/12
[#45014] [Backport93 - Backport #6429][Assigned] Backport r35631 - [mingw] Errno::EBADF in ruby/test_io.rb on ruby_1_9_3 — "luislavena (Luis Lavena)" <luislavena@...>
3 messages
2012/05/12
[#45015] Re: [ruby-changes:23580] luislavena:r35631 (trunk): * test/ruby/test_io.rb (class TestIO): Disable GC during IO tests to — Tanaka Akira <akr@...>
2012/5/13 luislavena <[email protected]>:
3 messages
2012/05/12
[#45035] [ruby-trunk - Bug #6433][Open] rb_thread_blocking_region(): ubf() function is executed with GVL — ibc (Iñaki Baz Castillo) <ibc@...>
12 messages
2012/05/14
[#45062] [ruby-trunk - Bug #6436][Open] Byte counting incorrect in BufferedIO (net/protocol.rb) — "jcast (Jeremie Castagna)" <jeremie.castagna@...>
6 messages
2012/05/15
[#45073] [PATCH] Ruby's port to NativeClient — Yuki Yugui Sonoda <yugui@...>
Hello Matz and rubyists,
9 messages
2012/05/16
[#45074] Re: [PATCH] Ruby's port to NativeClient
— SASADA Koichi <ko1@...>
2012/05/16
(2012/05/16 12:34), Yuki Yugui Sonoda wrote:
[#45075] Re: [PATCH] Ruby's port to NativeClient
— Yuki Yugui Sonoda <yugui@...>
2012/05/16
On Wed, May 16, 2012 at 12:43 PM, SASADA Koichi <[email protected]> wrote:
[#45102] ruby-mode maintainer? — Stefan Monnier <monnier@...>
Could the ruby-mode maintainer(s) contact me off-list?
6 messages
2012/05/17
[#45132] [ruby-trunk - Bug #6454][Open] Anonymous classes should delete tmp_classpath on dup — "tenderlovemaking (Aaron Patterson)" <aaron@...>
5 messages
2012/05/18
[#45176] [ruby-trunk - Bug #6476][Open] Proc unrolls an array even without splat — "prijutme4ty (Ilya Vorontsov)" <prijutme4ty@...>
3 messages
2012/05/22
[#45193] [ruby-trunk - Feature #6482][Open] Add URI requested to Net::HTTP request and response objects — "drbrain (Eric Hodel)" <[email protected]>
16 messages
2012/05/23
[#45268] [ruby-trunk - Feature #6482] Add URI requested to Net::HTTP request and response objects
— "mame (Yusuke Endoh)" <mame@...>
2012/05/26
[#45222] [ruby-trunk - Feature #6492][Open] Inflate all HTTP Content-Encoding: deflate, gzip, x-gzip responses by default — "drbrain (Eric Hodel)" <[email protected]>
23 messages
2012/05/24
[#45528] Re: [ruby-trunk - Feature #6492][Open] Inflate all HTTP Content-Encoding: deflate, gzip, x-gzip responses by default
— Eric Wong <normalperson@...>
2012/06/09
"drbrain (Eric Hodel)" <[email protected]> wrote:
[#45253] [RFC] RubyVM::FrameInfo.caller method — SASADA Koichi <ko1@...>
Hi,
11 messages
2012/05/26
[#45302] Re: [RFC] RubyVM::FrameInfo.caller method
— Dice <tetradice@...>
2012/05/28
Hello.
[#45269] [ruby-trunk - Bug #6501][Open] Documentation for Exception#set_backtrace is incorrect — "djberg96 (Daniel Berger)" <redmine@...>
3 messages
2012/05/26
[#45272] [ruby-trunk - Feature #6503][Open] Support for the NPN extension to TLS/SSL — "igrigorik (Ilya Grigorik)" <ilya@...>
13 messages
2012/05/27
[ruby-core:44871] [ruby-trunk - Bug #6352] Windows: FD_SET and FD_SETSIZE segv due different compilation flags
From:
"h.shirosaki (Hiroshi Shirosaki)" <h.shirosaki@...>
Date:
2012-05-04 13:38:59 UTC
List:
ruby-core #44871
Issue #6352 has been updated by h.shirosaki (Hiroshi Shirosaki).
File fix_em_segv2.patch added
I've updated the patch and added tests.
make test and test-all are fine.
sizeof() is determined by type at compile time. So the usage of sizeof() in copy_fd() was same as FD_SETSIZE in the previous patch. I removed that.
Is inline function better than macro do .. while? Either way is okay by me.
I'm not sure that FD_ISSET() and FD_CLR() are worth to change. They seem not related to this SEGV issue.
----------------------------------------
Bug #6352: Windows: FD_SET and FD_SETSIZE segv due different compilation flags
https://bugs.ruby-lang.org/issues/6352#change-26451
Author: luislavena (Luis Lavena)
Status: Assigned
Priority: Normal
Assignee: usa (Usaku NAKAMURA)
Category: core
Target version: 1.9.3
ruby -v: 1.9.3-p194
Hello,
As mentioned in #6228 [ruby-core:43951]:
- Ruby compiled with -DFD_SETSIZE=32767 will allocate 32K fd_array elements for fd_set structure [1]
- FD_SET() macro has been redefined in win32/win32.h to use rb_w32_fdset instead [2]
- Other programs (like EventMachine) compiled with a different FD_SETSIZE will cause SEGV.
The technical details for this SEGV were provided by Hiroshi Shirosaki in Note 16, which I'm quoting:
https://bugs.ruby-lang.org/issues/6228#note-16
I think above issue is cause of `fd_array` buffer overflow.
typedef struct fd_set
{
u_int fd_count;
SOCKET fd_array[FD_SETSIZE];
} fd_set;
On EM, FD_SETSIZE = 1024 and fd_array[1024].
EM uses FD_SET() and FD_SET() seems rb_w32_fdset() on Windows.
In rb_w32_fdset(), FD_SETSIZE = 32767 since rb_w32_fdset is compiled with -DFD_SETSIZE=32767. [3]
if (i == set->fd_count) {
if (set->fd_count < FD_SETSIZE) { // FD_SETSIZE = 32767
set->fd_array[i] = s; // `i` could be over 1023
set->fd_count++;
}
}
If above scenario is correct, FD_SETSIZE of Ruby should be equal or less then FD_SETSIZE of EM.
include/winsock2.h has FD_SET macro on mingw, but MRI undef FD_SET and uses rb_w32_fdset() function. It might be better that FD_SET() is macro instead of function.
SEGV is caused by that discrepancy between rb_w32_fdset thinking have 32K of sockets and EventMachine only having 1K to iterate over.
[1] http://msdn.microsoft.com/en-us/library/windows/desktop/ms737873(v=vs.85).aspx
[2] https://github.com/ruby/ruby/blob/trunk/include/ruby/win32.h#L583-590
[3] https://github.com/ruby/ruby/blob/trunk/win32/win32.c#L2457-2474
--
http://bugs.ruby-lang.org/