[#87773] timer thread [was Re: [ruby-alerts:7905] failure alert on trunk-asserts@silicon-docker (NG (r63844))] — Eric Wong <normalperson@...>
> test_all <main>: warning: pthread_create failed for timer: Resource temporarily unavailable, scheduling broken
[#87836] [Ruby trunk Bug#14898] test/lib/test/unit/parallel.rb: TestSocket#test_timestamp stuck sometimes — ko1@...
Issue #14898 has been reported by ko1 (Koichi Sasada).
ko1@atdot.net wrote:
On 2018/07/06 18:47, Eric Wong wrote:
[#87847] undefined symbol: mjit_init_p — Leam Hall <leamhall@...>
I pulled Ruby trunk on 3 Jul and am now getting errors similar to the
As I told you, `make install` is needed to make Ruby work. Running
One more reason for https://bugs.ruby-lang.org/issues/13620 maybe? ;)
Benoit Daloze <eregontp@gmail.com> wrote:
[#87986] [Ruby trunk Feature#14915] Deprecate String#crypt, move implementation to string/crypt — mame@...
Issue #14915 has been updated by mame (Yusuke Endoh).
mame@ruby-lang.org wrote:
normalperson (Eric Wong) wrote:
[#88088] [Ruby trunk Misc#14937] [PATCH] thread_pthread: lazy-spawn timer-thread only on contention — normalperson@...
Issue #14937 has been reported by normalperson (Eric Wong).
[#88104] [Ruby trunk Bug#14898] test/lib/test/unit/parallel.rb: TestSocket#test_timestamp stuck sometimes — ko1@...
Issue #14898 has been updated by ko1 (Koichi Sasada).
[#88173] [Ruby trunk Bug#14950] r64109 thread.c: move ppoll wrapper before thread_pthread.c - Windows compile failure - thread.c — Greg.mpls@...
Issue #14950 has been reported by MSP-Greg (Greg L).
[#88189] [Ruby trunk Bug#14950] r64109 thread.c: move ppoll wrapper before thread_pthread.c - Windows compile failure - thread.c — nobu@...
Issue #14950 has been updated by nobu (Nobuyoshi Nakada).
[#88199] [Ruby trunk Misc#14937] [PATCH] thread_pthread: lazy-spawn timer-thread only on contention — takashikkbn@...
Issue #14937 has been updated by k0kubun (Takashi Kokubun).
takashikkbn@gmail.com wrote:
> yet, sky3 had a failure at
> http://ci.rvm.jp/results/trunk@P895/1173951
> > http://ci.rvm.jp/results/trunk@P895/1173951
[ruby-core:87873] [Ruby trunk Misc#14901] [PATCH] do not block SIGCHLD in normal Ruby Threads
Issue #14901 has been updated by k0kubun (Takashi Kokubun). I have not completely read your patch for [Bug #14867] yet, so let me ask some questions to understand the context. > I blocked SIGCHLD in normal Ruby Threads for [Bug #14867] In the current trunk, in what kind of situation are normal Ruby Threads "blocked" by SIGCHLD? Are they blocked by default, or only during Process.waitall and its families are invoked? And also, does the "blocked" mean interruption by a signal handler for SIGCHLD? > MJIT causes many SIGCHLD signals So whenever MJIT compiler process is spawned, normal Ruby Threads are blocked for now, right? > One alternative could be to handle signals with MJIT thread when MJIT is enabled, or to lazy-spawn timer thread to handle signals when MJIT is enabled (MJIT + gcc requires a lot of resources, anyways). If you're going to remove the Timer thread from normal Ruby execution, I'm in favor of handling signals with MJIT thread for simplicity, if it's not so hard to implement it in MJIT thread. At a glance of your attached patch, it doesn't seem to implement either of it but to just give up the current approach. If tests with -DMJIT_FORCE_ENABLE are fine with the patch and problems in "OpenSSL::PKey::*.new" and " test/-ext-/gvl/test_last_thread.rb" are solved by it, go ahead to commit that. But if it's not the case, I wanna see your complete patch just in case. ---------------------------------------- Misc #14901: [PATCH] do not block SIGCHLD in normal Ruby Threads https://bugs.ruby-lang.org/issues/14901#change-72886 * Author: normalperson (Eric Wong) * Status: Open * Priority: Normal * Assignee: k0kubun (Takashi Kokubun) ---------------------------------------- @k0kubun: any opinions on this? Thanks. ``` I blocked SIGCHLD in normal Ruby Threads for [Bug #14867] because I noticed at least two places which could not deal with spurious wakeups in our test suite. I also want to get rid of timer-thread due to resource limitations [ruby-core:87773]. MJIT causes many SIGCHLD signals so I found the following problems with cppflags=-DMJIT_FORCE_ENABLE=1 * OpenSSL::PKey::*.new does not resume on handle signals. rhenium acknowledged the problem and it should be in trunk soon: https://bugs.ruby-lang.org/issues/14882 * test/-ext-/gvl/test_last_thread.rb does not handle spurious wakeups. Original report is in Japanese: https://bugs.ruby-lang.org/issues/11237 I don't think it's a realistic expectation for code to be unable to deal with spurious wakeups. One alternative could be to handle signals with MJIT thread when MJIT is enabled, or to lazy-spawn timer thread to handle signals when MJIT is enabled (MJIT + gcc requires a lot of resources, anyways). ``` ---Files-------------------------------- 0001-do-not-block-SIGCHLD-in-normal-Ruby-Threads.patch (2.5 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>