[MacPorts] #64906: fixing Ruby for PowerPC
MacPorts
noreply at macports.org
Sat Apr 16 06:08:36 UTC 2022
#64906: fixing Ruby for PowerPC
-----------------------------+-------------------------------------------
Reporter: barracuda156 | Owner: kimuraw
Type: defect | Status: closed
Priority: Normal | Milestone:
Component: ports | Version: 2.7.2
Resolution: wontfix | Keywords: powerpc, leopard, snowleopard
Port: ruby27, ruby30 |
-----------------------------+-------------------------------------------
Comment (by barracuda156):
Replying to [comment:2 evanmiller]:
> When I was tinkering with Ruby on PPC, I ran into some issues with
coroutines. It's possible that's the source of the hangs, but it could be
something else. Try attaching to the hanging process using Sampler (found
in Developer > Applications > Performance Tools). If you record a sample
then you should be able to see where the process CPU time is going and
maybe get a hint about what's freezing.
I have done it, but in what way I should export its output?
Besides, a basic sampling via Activity Monitor gives this:
{{{
Analysis of sampling ruby3.1 (pid 31703) every 1 millisecond
Call graph:
1807 Thread_362b
1807 start
1807 main
1807 ruby_run_node
1807 rb_ec_exec_node
1807 rb_vm_exec
1807 vm_exec_core
1807 vm_sendish
1807 vm_call_cfunc_with_frame
1807 rb_require_string
1807 require_internal
1807 rb_vm_exec
1807 vm_exec_core
1807 vm_sendish
1807 vm_call_method_each_type
1807 vm_call_cfunc_with_frame
1807 rb_ary_each
1807 rb_yield
1807 vm_yield_with_cref
1807 rb_vm_exec
1807 vm_exec_core
1807 vm_sendish
1807
vm_call_method_each_type
1807
vm_call_cfunc_with_frame
1807 rb_ary_each
1807 rb_yield
1807
vm_yield_with_cref
1807 rb_vm_exec
1807
vm_exec_core
1807
vm_sendish
1807
vm_call_cfunc_with_frame
1807
rb_ary_collect
1807
rb_yield
1807
vm_yield_with_cref
1807 rb_vm_exec
1807 vm_exec_core
1807 vm_sendish
1807 vm_call_cfunc_with_frame
1807 tcp_accept
1807 rsock_s_accept
1807 rb_io_maybe_wait_readable
1807 rb_io_wait
1807 rb_thread_wait_for_single_fd
1807 rb_ensure
1807 select_single
1807 rb_thread_fd_select
1807 rb_ensure
1807 select$DARWIN_EXTSN
1807 select$DARWIN_EXTSN
1807 Thread_3703
1807 timer_pthread_fn
1807 poll$UNIX2003
1807 poll$UNIX2003
1807 Thread_3803
1807 _pthread_start
1807 coroutine_trampoline
1807 fiber_entry
1807 rb_fiber_start
1807 fiber_switch
1807 fiber_setcontext
1807 coroutine_transfer
1807 _pthread_cond_wait
1807 __semwait_signal
1807 __semwait_signal
1807 Thread_3903
1807 _pthread_start
1807 coroutine_trampoline
1807 fiber_entry
1807 rb_fiber_start
1807 fiber_switch
1807 fiber_setcontext
1807 coroutine_transfer
1807 _pthread_cond_wait
1807 __semwait_signal
1807 __semwait_signal
1807 Thread_3a03
1807 _pthread_start
1807 coroutine_trampoline
1807 fiber_entry
1807 rb_fiber_start
1807 fiber_switch
1807 fiber_setcontext
1807 coroutine_transfer
1807 _pthread_cond_wait
1807 __semwait_signal
1807 __semwait_signal
1807 Thread_3b03
1807 _pthread_start
1807 coroutine_trampoline
1807 fiber_entry
1807 rb_fiber_start
1807 fiber_switch
1807 fiber_setcontext
1807 coroutine_transfer
1807 _pthread_cond_wait
1807 __semwait_signal
1807 __semwait_signal
1807 Thread_3c03
1807 _pthread_start
1807 coroutine_trampoline
1807 fiber_entry
1807 rb_fiber_start
1807 fiber_switch
1807 fiber_setcontext
1807 coroutine_transfer
1807 _pthread_cond_wait
1807 __semwait_signal
1807 __semwait_signal
Total number in stack (recursive counted multiple, when >=5):
5 __semwait_signal
5 _pthread_cond_wait
5 _pthread_start
5 coroutine_trampoline
5 coroutine_transfer
5 fiber_entry
5 fiber_setcontext
5 fiber_switch
5 rb_fiber_start
5 rb_vm_exec
5 vm_call_cfunc_with_frame
5 vm_exec_core
5 vm_sendish
Sort by top of stack, same collapsed (when >= 5):
__semwait_signal 9035
poll$UNIX2003 1807
select$DARWIN_EXTSN 1807
}}}
Developer sampler also specifies library, libSystem.B.dylib.
--
Ticket URL: <https://trac.macports.org/ticket/64906#comment:18>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list