[#39227] [Ruby 1.9 - Bug #5264][Open] Commit 33157 — Charlie Savage <cfis@...>
[#39241] [Ruby 1.9 - Bug #3422][Closed] Object.const_get(:A, false) can access BasicObject::A — Nobuyoshi Nakada <nobu@...>
On Sat, Sep 3, 2011 at 04:57, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
> Why is this issue closed? Is the current behaviour acceptable?
[#39260] RubySpec vs CRuby's test/... — Marc-Andre Lafortune <ruby-core-mailing-list@...>
Before the release of Ruby 1.9.2 it was decided that Ruby releases
Hi,
(09/05/2011 03:54 AM), Marc-Andre Lafortune wrote:
Hi,
2011/9/5 Marc-Andre Lafortune <ruby-core-mailing-list@marc-andre.ca>:
On Mon, Sep 5, 2011 at 3:08 AM, NARUSE, Yui <naruse@airemix.jp> wrote:
2011/9/5 Marc-Andre Lafortune <ruby-core-mailing-list@marc-andre.ca>:
I'll jump in with some context from the JRuby perspective.
2011/9/7 Charles Oliver Nutter <headius@headius.com>:
On Wed, Sep 7, 2011 at 4:17 AM, NARUSE, Yui <naruse@airemix.jp> wrote:
Hi,
Yukihiro Matsumoto:
(2011/09/09 1:29), Michael Klishin wrote:
On Thu, Sep 8, 2011 at 4:19 PM, NARUSE, Yui <naruse@airemix.jp> wrote:
Hello Luis,
On Thu, Sep 8, 2011 at 5:34 PM, Masaya TARUI <tarui@prx.jp> wrote:
On Thu, Sep 8, 2011 at 3:57 PM, Luis Lavena <luislavena@gmail.com> wrote:
On Thu, Sep 8, 2011 at 5:07 PM, Charles Oliver Nutter
(2011/09/08 15:28), Charles Oliver Nutter wrote:
2011/9/9 Charles Oliver Nutter <headius@headius.com>:
On Thu, Sep 8, 2011 at 9:47 PM, NARUSE, Yui <naruse@airemix.jp> wrote:
I realize that I'm a small fish in this ocean, but for every release
(09/09/2011 03:51 PM), Kirk Haines wrote:
[#39267] [Ruby 1.9 - Bug #5273][Open] Float#round returns the wrong floats for higher precision — Marc-Andre Lafortune <ruby-core@...>
[#39279] [Ruby 1.9 - Bug #5276][Assigned] 4294967295.8.round is 4294967295 on 32bit — Yui NARUSE <naruse@...>
[#39304] [Ruby 1.9 - Bug #5285][Open] Ruby 1.9.2 throws exception on sort of array containing true AND false values — Martin Corino <mcorino@...>
[#39309] [Ruby 1.9 - Bug #5287][Open] 1.9.3 - Interpolation in a string causes the string's encoding to be set to ASCII-8BIT — Jon Leighton <j@...>
[#39326] [Ruby 1.9 - Feature #5291][Open] Enabling GC Profiler GC_PROFILE_MORE_DETAIL and CALC_EXACT_MALLOC_SIZE — Charlie Savage <cfis@...>
[#39360] What is the role of rb_objspace_t in gc.c? — Kurt Stephens <ks@...>
What is the role of rb_objectspace_t and the pointers to it inside gc.c?
[#39380] [Ruby 1.9 - Bug #5299][Open] Segmentation fault when using TweetStream gem in ruby 1.9.3 — Dushyanth Maguluru <dushyanth.maguluru@...>
[#39435] [Ruby 1.9 - Bug #5306][Open] Application Hangs Due to Recent rb_thread_select Changes — Charlie Savage <cfis@...>
[#39450] Comments on HowToReportEnglish — Andrew Grimm <andrew.j.grimm@...>
I've done some proofreading for HowToReportEnglish, and I'd like to
Hello,
Hello
[#39451] File.realpath behavior questions — Luis Lavena <luislavena@...>
Hello,
Hi,
On Sun, Sep 11, 2011 at 4:48 AM, Nobuyoshi Nakada <nobu@ruby-lang.org> wrot=
[#39480] Modifications to libraries like Rake should be done upstream first — Luis Lavena <luislavena@...>
Hello,
[#39484] [Ruby 1.9 - Bug #5309][Open] 0.6.to_r != "0.6".to_r — Brian Ford <brixen@...>
[#39487] File::BINARY does not behave as advertised — Cameron Pope <camerooni@...>
Hello -
On Mon, Sep 12, 2011 at 16:00, Cameron Pope <camerooni@gmail.com> wrote:
[#39498] [Ruby 1.9 - Feature #5310][Open] Integral objects — Kenta Murata <muraken@...>
On Mon, Sep 12, 2011 at 6:15 PM, Kenta Murata <muraken@gmail.com> wrote:
[#39539] [Ruby 1.9 - Feature #5321][Open] Introducing Numeric#exact? and Numeric#inexact? — Kenta Murata <muraken@...>
[#39597] File.expand_path ~username always trigger ArgumentError on Windows — Luis Lavena <luislavena@...>
Hello,
[#39618] [Ruby 1.9 - Bug #5335][Open] [RFC/PATCH] test_old_thread_select: timing tweaks — Eric Wong <normalperson@...>
[#39627] Re: [ruby-cvs:40472] drbrain:r33294 (trunk): * test/openssl/test_ssl.rb (class OpenSSL): Test — "NARUSE, Yui" <naruse@...>
(2011/09/19 9:28), drbrain@ruby-lang.org wrote:
On Sep 19, 2011, at 11:33 AM, NARUSE, Yui wrote:
2011/9/19 Eric Hodel <drbrain@segment7.net>:
[#39629] [Ruby 1.9 - Feature #5341][Open] Add SSL session reuse to Net::HTTP — Eric Hodel <drbrain@...7.net>
On 10/26/2011 11:39 AM, Eric Hodel wrote:
[#39632] [Ruby 1.9 - Bug #5342][Open] ConditionVariable can wake a Thread that is no longer waiting on it — Mike Perham <mperham@...>
[#39634] [Ruby 1.9 - Bug #5343][Open] Unexpected blocking behavior when interrupt Socket#accept — Tomoyuki Chikanaga <nagachika00@...>
[#39672] [Ruby 1.9 - Feature #5352][Open] How about using <> to represent Here Document? — Joey Zhou <yimutang@...>
[#39673] [Ruby 1.9 - Bug #5353][Open] TLS v1.0 and less - Attack on CBC mode — Martin Bosslet <Martin.Bosslet@...>
[#39684] [Ruby 1.9 - Bug #5357][Open] Indentation of nested operators should nest — Nikolai Weibull <now@...>
[#39690] [Ruby 1.9 - Feature #5360][Open] BasicObject#binding — Thomas Sawyer <transfire@...>
[#39696] Time spent on expanding load path — Juan Wajnerman <jwajnerman@...>
I've been following the performance of Ruby 1.9.x since the beginning. I =
[#39700] [Ruby 1.9 - Feature #5364][Open] How about new syntax: "object.\method" returns a Method instance? — Joey Zhou <yimutang@...>
[#39704] [Ruby 1.9 - Bug #5365][Open] WEBrick lacks the application/javascript and image/svg+xml MIME types. — Hal Brodigan <postmodern.mod3@...>
[#39740] [Ruby 1.9 - Feature #5372][Open] Promote blank? to a core protocol — Alex Young <alex@...>
On Tue, Sep 27, 2011 at 06:18:19PM +0900, Alex Young wrote:
On 27/09/2011 19:46, Aaron Patterson wrote:
On Sep 27, 2011, at 6:52 PM, Alex Young wrote:
Eric Hodel wrote in post #1024462:
Hi,
On 04/10/11 16:52, Nobuyoshi Nakada wrote:
[#39772] ObjectSpace.reference_form(obj) #=> references_array — SASADA Koichi <ko1@...>
Hi,
Hi,
Hi,
(2011/09/30 5:37), hemant wrote:
On 09/30/2011 07:08 AM, SASADA Koichi wrote:
Revisit.
On Sep 20, 2012, at 6:14 PM, SASADA Koichi <ko1@atdot.net> wrote:
(2012/09/25 7:38), Eric Hodel wrote:
I'm sorry for late reply.
(2012/09/25 15:18), Narihiro Nakamura wrote:
[ruby-core:39659] [Ruby 1.9 - Bug #5343] Unexpected blocking behavior when interrupt Socket#accept
Issue #5343 has been updated by Tomoyuki Chikanaga.
Koichi Sasada wrote:
> Could you commit it? Maybe 1.9.3 also needs this patch. But I'm not
> sure how to commit frozen 1.9.3 branch.
I'd be happy to commit it. I'll check in it to trunk and create a backport request ticket.
BTW, let me summarize the reason why this patch works fine. If I misunderstand, please point out.
When interrupt other thread (cf. by Thread#kill, Thread#raise) in blocking region, unblocking function (ubf) is called to interrupt blocking system call like select/ppoll etc... The default ubf (ubf_select) call pthread_kill() to send SIGVTALRM to interrupted thread.
But There's race condition. If interrupted thread was just released GVL and received SIGVTALRM before entering blocking systemcall, signal was lost.
To cover this race condition, ubf_select() also call add_signal_thread_list() to register "signal thread list". Timer thread periodically send SIGVTALRM to threads in signal thread list. Recently timer thread is suspended when there's no more than one runnable thread. So when interrupt other thread and register to signal thread list, you should activate timer thread to polling-mode.
----------------------------------------
Bug #5343: Unexpected blocking behavior when interrupt Socket#accept
http://redmine.ruby-lang.org/issues/5343
Author: Tomoyuki Chikanaga
Status: Assigned
Priority: High
Assignee: Koichi Sasada
Category: ext
Target version: 1.9.3
ruby -v: -
In CentOS release 5.6 (Kernel: 2.6.18-238.12.1.el5, glibc 2.5),
the following sample script rarely (about once every 1000) blocks at Thread#join with 1.9.3-head.
require "socket"
require "thread"
queue = Queue.new
th = Thread.start {
s = TCPServer.new(10000)
queue.push(nil)
cli = s.accept
}
queue.pop
th.kill.join
Backtrace:
thread-1:
#0 0x0000003a3500aee9 in pthread_cond_wait@@GLIBC_2.3.2 ()
from /lib64/libpthread.so.0
#1 0x000000000052d81b in native_cond_wait (th=0x19551550, timeout_tv=0x0)
at ../ruby-1.9.3/thread_pthread.c:307
#2 native_sleep (th=0x19551550, timeout_tv=0x0)
at ../ruby-1.9.3/thread_pthread.c:908
#3 0x000000000052f9ab in sleep_forever (th=0x19551550, deadlockable=1)
at ../ruby-1.9.3/thread.c:855
#4 0x000000000052fa4d in thread_join_sleep (arg=140733838958496)
at ../ruby-1.9.3/thread.c:688
#5 0x0000000000417abb in rb_ensure (b_proc=0x52fa00 <thread_join_sleep>,
data1=140733838958496, e_proc=0x5288e0 <remove_from_join_list>,
data2=140733838958496) at ../ruby-1.9.3/eval.c:736
#6 0x000000000052a78e in thread_join (argc=<value optimized out>,
argv=<value optimized out>, self=<value optimized out>)
at ../ruby-1.9.3/thread.c:721
#7 thread_join_m (argc=<value optimized out>, argv=<value optimized out>,
self=<value optimized out>) at ../ruby-1.9.3/thread.c:802
#8 0x0000000000524b0d in vm_call_cfunc (th=0x19551550, cfp=0x2b38cc37df08,
num=<value optimized out>, blockptr=<value optimized out>,
flag=<value optimized out>, id=<value optimized out>, me=0x196663c0,
recv=427644560) at ../ruby-1.9.3/vm_insnhelper.c:404
#9 vm_call_method (th=0x19551550, cfp=0x2b38cc37df08,
num=<value optimized out>, blockptr=<value optimized out>,
flag=<value optimized out>, id=<value optimized out>, me=0x196663c0,
recv=427644560) at ../ruby-1.9.3/vm_insnhelper.c:530
#10 0x000000000051908d in vm_exec_core (th=0x19551550,
initial=<value optimized out>) at ../ruby-1.9.3/insns.def:1015
#11 0x000000000051ed7e in vm_exec (th=0x19551550) at ../ruby-1.9.3/vm.c:1220
#12 0x0000000000525f9f in rb_iseq_eval_main (iseqval=427473840)
at ../ruby-1.9.3/vm.c:1461
#13 0x0000000000414c22 in ruby_exec_internal (n=0x197abbb0)
at ../ruby-1.9.3/eval.c:204
#14 0x00000000004172d4 in ruby_exec_node (n=<value optimized out>)
at ../ruby-1.9.3/eval.c:251
#15 ruby_run_node (n=<value optimized out>) at ../ruby-1.9.3/eval.c:244
#16 0x0000000000414689 in main (argc=2, argv=0x7fff267aa588)
at ../ruby-1.9.3/main.c:38
thread-2:
#0 0x0000003a344cb696 in poll () from /lib64/libc.so.6
#1 0x00000000005301ba in ppoll (fd=<value optimized out>,
events=<value optimized out>, tv=0x0) at ../ruby-1.9.3/thread.c:2820
#2 rb_wait_for_single_fd (fd=<value optimized out>,
events=<value optimized out>, tv=0x0) at ../ruby-1.9.3/thread.c:2849
#3 0x000000000053052c in rb_thread_wait_fd_rw (fd=5)
at ../ruby-1.9.3/thread.c:2686
#4 rb_thread_wait_fd (fd=5) at ../ruby-1.9.3/thread.c:2699
#5 0x00002aaaab0b7b6f in rsock_s_accept (klass=427743720, fd=5,
sockaddr=<value optimized out>, len=0x40473a3c)
at ../../../ruby-1.9.3/ext/socket/init.c:499
#6 0x00002aaaab0c3310 in tcp_accept (sock=<value optimized out>)
at ../../../ruby-1.9.3/ext/socket/tcpserver.c:55
#7 0x0000000000524b0d in vm_call_cfunc (th=0x197ffe90, cfp=0x2aaaab3d3f08,
num=<value optimized out>, blockptr=<value optimized out>,
flag=<value optimized out>, id=<value optimized out>, me=0x1980ba70,
recv=427644480) at ../ruby-1.9.3/vm_insnhelper.c:404
#8 vm_call_method (th=0x197ffe90, cfp=0x2aaaab3d3f08,
num=<value optimized out>, blockptr=<value optimized out>,
flag=<value optimized out>, id=<value optimized out>, me=0x1980ba70,
recv=427644480) at ../ruby-1.9.3/vm_insnhelper.c:530
#9 0x000000000051908d in vm_exec_core (th=0x197ffe90,
initial=<value optimized out>) at ../ruby-1.9.3/insns.def:1015
#10 0x000000000051ed7e in vm_exec (th=0x197ffe90) at ../ruby-1.9.3/vm.c:1220
#11 0x000000000051fad5 in invoke_block_from_c (th=0x197ffe90,
block=<value optimized out>, self=<value optimized out>, argc=0,
argv=<value optimized out>, blockptr=<value optimized out>, cref=0x0)
at ../ruby-1.9.3/vm.c:624
#12 0x000000000052026f in rb_vm_invoke_proc (th=0x197ffe90, proc=0x196d72a0,
self=425420560, argc=0, argv=0x197d56c8, blockptr=0x0)
at ../ruby-1.9.3/vm.c:670
#13 0x000000000052f5c1 in thread_start_func_2 (th=0x197ffe90,
stack_start=<value optimized out>) at ../ruby-1.9.3/thread.c:453
#14 0x000000000052f75e in thread_start_func_1 (th_ptr=0x197ffe90)
at ../ruby-1.9.3/thread_pthread.c:656
#15 0x0000003a3500673d in start_thread () from /lib64/libpthread.so.0
#16 0x0000003a344d44bd in clone () from /lib64/libc.so.6
--
http://redmine.ruby-lang.org