Motohiro KOSAKI <kosaki.motohiro / gmail.com> wrote:
> Issue #4531 has been updated by Motohiro KOSAKI.
> 
> Please do NOT send untested patch. :-/
> 
> % ./ruby-single-wait benchmark/bm_io_select3.rb
> max fd: 100000 (results not apparent with <= 1024 max fd)
> benchmark/bm_io_select3.rb:15: [BUG] Segmentation fault
> ruby 1.9.3dev (2011-05-03 trunk 31412) [x86_64-linux]

I can't reproduce on my end, same architecture and base revision, too...
I just rebased cleanly off r31415 and still can't reproduce.

> -- C level backtrace information -------------------------------------------
> ./ruby-single-wait() [0x528508] vm_dump.c:797
> ./ruby-single-wait() [0x572226] error.c:249
> ./ruby-single-wait(rb_bug+0xb1) [0x573631] error.c:266
> ./ruby-single-wait() [0x4b8420] signal.c:624
> /lib64/libpthread.so.0() [0x33bf20eeb0]
> /lib64/libc.so.6() [0x33bea884bb]
> ./ruby-single-wait(rb_thread_fd_select+0x340) [0x5307e0] thread.c:2393

My patches don't touch the rb_thread_fd_select() code.  thread.c:2393
is in rb_fd_copy(), not rb_thread_fd_select(), and is the following:

   memcpy(dst->fdset, src, size);

Shouldn't that be:

   memcpy(dst->fdset, src->fdset, size);

since r31395?