General

Profile

catphish (Charlie Smurthwaite)

  • Login: catphish
  • Registered on: 08/02/2017
  • Last sign in: 01/18/2018

Issues

open closed Total
Assigned issues 0 0 0
Reported issues 0 1 1

Activity

01/08/2018

10:26 AM Ruby Bug #13794: Infinite loop of sched_yield
I notice that this bug has been closed for a while but has not been backported into 2.3. Is this likely to happen? Thanks! catphish (Charlie Smurthwaite)

10/19/2017

10:51 AM Ruby Bug #13794: Infinite loop of sched_yield
I'd just like to confirm that after several weeks, I have not seen a recurrence of this issue while running the original PID check patch. Thanks all! catphish (Charlie Smurthwaite)

09/01/2017

04:09 PM Ruby Bug #13794: Infinite loop of sched_yield
Hi Eric,
I have been testing your original patch (just the PID check) for a couple of days and it appears to have resolved the problem. I will report on this again in 1 week as the issue occurs quite randomly but I am currently hopefu...
catphish (Charlie Smurthwaite)

08/29/2017

10:17 AM Ruby Bug #13794: Infinite loop of sched_yield
Apologies for my delay in replying. I have not yet had an opportunity to fully test any of these patches (apart from my initial hack which did not work). I will aim to test your patch as soon as possible. Thank you for your assistance! catphish (Charlie Smurthwaite)

08/17/2017

03:08 PM Ruby Bug #13794: Infinite loop of sched_yield
The patch above does not work because native_reset_timer_thread runs after fork in the parent. Attached an alternative patch that runs in gvl_atfork and appears not to run in the parent. Again I do not believe this is necessarily the cor... catphish (Charlie Smurthwaite)
11:57 AM Ruby Bug #13794: Infinite loop of sched_yield
I am now testing the following patch:
~~~
diff --git a/thread_pthread.c b/thread_pthread.c
index 4aa2d620a2..fe99524a54 100644
--- a/thread_pthread.c
+++ b/thread_pthread.c
@@ -1685,6 +1685,7 @@ native_stop_timer_thread(void)
s...
catphish (Charlie Smurthwaite)

08/15/2017

12:04 PM Ruby Bug #13794: Infinite loop of sched_yield
> Can you also check the value of timer_thread_pipe.owner_process?
~~~
(gdb) print timer_thread_pipe.writing
$1 = 1
(gdb) print timer_thread_pipe.owner_process
$2 = 0
(gdb) info threads
Id Target Id Frame
2 ...
catphish (Charlie Smurthwaite)

08/09/2017

11:56 PM Ruby Bug #13794: Infinite loop of sched_yield
>> How about checking owner_process before incrementing?
> ...
Checking it before the while loop might work though.
catphish (Charlie Smurthwaite)
11:49 PM Ruby Bug #13794: Infinite loop of sched_yield
> Can you also check the value of timer_thread_pipe.owner_process?
I don't have any broken processes available right now, but I will check as soon as I can.
> ...
I'm afraid this fix doesn't quite match up in my mind. To clarify, I...
catphish (Charlie Smurthwaite)
03:21 PM Ruby Bug #13794 (Closed): Infinite loop of sched_yield
I have been encountering an issue with processes hanging in an infinite loop of calling sched_yield(). The looping code can be found at https://github.com/ruby/ruby/blob/v2_3_4/thread_pthread.c#L1663
while (ATOMIC_CAS(timer_thread_pip...
catphish (Charlie Smurthwaite)

Also available in: Atom