On Sun, Dec 25, 2022 at 03:52:33PM +0000, Jeremy Evans wrote:
> Ruby 3.2.0 was released today, release announcement at:
> https://www.ruby-lang.org/en/news/2022/12/25/ruby-3-2-0-released/
> 
> Diff below for ruby.port.mk to build Ruby 3.2 packages for Ruby library
> ports.
> 
> I've been testing Ruby 3.2.0 on amd64 since beta1.
> 
> OKs to import?

Do the three commented lines

#BUILD_DEPENDS +=       lang/ruby/3.1,-main
#CONFIGURE_ARGS +=      --with-baseruby=ruby31
#POST_EXTRACT =         rm -rf ${WRKSRC}/ext/fiddle/libffi-*

serve a purpose?

The port does not build on sparc64 because base-gcc doesn't support
thread local storage. It packages with

COMPILER =      base-clang ports-gcc

which I think is an acceptable fix.

ok tb

for importing with that addition.

Here's the sparc64 build error (there's more below):

mkdir -p ../../../../.ext/.timestamp/sparc64-openbsd 
../../../../.ext/sparc64-openbsd/-test-/thread/
cc -std=gnu99 -I. -I../../../../.ext/include/sparc64-openbsd 
-I../../../.././include -I../../../.././ext/-test-/thread/instrumentation 
-DRUBY_EXTCONF_H=\"extconf.h\" -DOPENSSL_NO_STATIC_ENGINE -I/usr/local/include  
 -fPIC -O2 -pipe -fPIC  -o instrumentation.o -c instrumentation.c
exit > ../../../../.ext/.timestamp/sparc64-openbsd/.-test-.-.thread.time
In file included from ../../../.././include/ruby/internal/arithmetic/char.h:23,
                 from ../../../.././include/ruby/internal/arithmetic.h:24,
                 from ../../../.././include/ruby/ruby.h:28,
                 from instrumentation.c:1:
../../../.././include/ruby/internal/arithmetic/int.h: In function 
'rb_int2num_inline':
../../../.././include/ruby/internal/arithmetic/int.h:241: warning: comparison 
is always true due to limited range of data type
../../../.././include/ruby/internal/arithmetic/int.h:241: warning: comparison 
is always true due to limited range of data type
../../../.././include/ruby/internal/arithmetic/int.h: In function 
'rb_uint2num_inline':
../../../.././include/ruby/internal/arithmetic/int.h:256: warning: comparison 
is always true due to limited range of data type
instrumentation.c: At top level:
instrumentation.c:20: error: thread-local storage not supported for this target
instrumentation.c:21: error: thread-local storage not supported for this target
instrumentation.c:22: error: thread-local storage not supported for this target
*** Error 1 in ext/-test-/thread/instrumentation (Makefile:253 
'instrumentation.o')
*** Error 2 in . (exts.mk:211 'ext/-test-/thread/instrumentation/all')
*** Error 2 in /usr/ports/pobj/ruby-3.2.0/ruby-3.2.0 (Makefile:1061 'build-ext')
*** Error 2 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2964 
'/usr/ports/pobj/ruby-3.2.0/.build_done': @cd /usr/ports/pobj/ruby-3.2.0/rub...)
*** Error 2 in /usr/ports/lang/ruby/3.2 
(/usr/ports/infrastructure/mk/bsd.port.mk:2604 'all': @lock=ruby-3.2.0;  export 
_LOCKS_HELD=" ruby-3...)


On arm64, tests run into an abort, which looks fiber related.

exec ./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- 
--disable-gems "./test/runner.rb" --ruby="./miniruby -I./lib -I. -I.ext/common  
./tool/runruby.rb --extout=.ext  -- --disable-gems" 
--excludes-dir=./test/excludes --name=!/memory_leak/
Run options:
  --seed=3362
  "--ruby=./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext 
 -- --disable-gems"
  --excludes-dir=./test/excludes
  --name=!/memory_leak/

# Running tests:

*** Signal SIGABRT in /usr/ports/pobj/ruby-3.2.0/ruby-3.2.0 (Makefile:1584 
'yes-test-all')
*** Error 2 in . (Makefile:54 'do-test')
*** Error 2 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2993 
'/usr/ports/pobj/ruby-3.2.0/.test_done': @cd /usr/ports/lang/ruby/3.2 && exe...)
*** Error 2 in /usr/ports/lang/ruby/3.2 
(/usr/ports/infrastructure/mk/bsd.port.mk:2604 'test': @lock=ruby-3.2.0;  
export _LOCKS_HELD=" ruby-...)


When running this miniruby invocation by hand (as _pbuild), I get crashes
in random tests, e.g.,

[ 2497/23385] TestBignum#test_interrupt_during_to_sAbort trap (core dumped)

The backtrace looks like this:

GNU gdb (GDB) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "aarch64-unknown-openbsd7.2".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ruby32...
[New process 391374]
[New process 237075]
[New process 334347]
[New process 570112]
[New process 225775]
[New process 602390]
[New process 321881]
[New process 548620]
[New process 378073]
[New process 210894]
Core was generated by `ruby32'.
Program terminated with signal SIGABRT, Aborted.
#0  thrkill () at /tmp/-:4
[Current thread is 1 (process 391374)]
To enable execution of this file add
        add-auto-load-safe-path /usr/ports/pobj/ruby-3.2.0/ruby-3.2.0/.gdbinit
line to your configuration file "/nonexistent/.gdbinit".
To completely disable this security protection add
        set auto-load safe-path /
line to your configuration file "/nonexistent/.gdbinit".
For more information about this security protection see the
"Auto-loading safe path" section in the GDB manual.  E.g., run from the shell:
        info "(gdb)Auto-loading safe path"

Thread 10 (process 210894):
#0  futex () at /tmp/-:4
#1  0x0000001bce7e433c in _twait (p=0x1b884785e0, val=3, clockid=0, abs=0x0) at 
/usr/src/lib/libc/thread/synch.h:36
#2  _rthread_cond_timedwait (cond=0x1b884785e0, mutexp=0x1c0b4de580, abs=0x0) 
at /usr/src/lib/libc/thread/rthread_cond.c:106
#3  0x0000001bb9549e58 in coroutine_transfer (current=<optimized out>, 
target=0x1b4b9b7530) at coroutine/pthread/Context.c:221
#4  0x0000001bb9312674 in fiber_setcontext (new_fiber=0x1b4b9b7000, 
old_fiber=0x1bf59b7000) at cont.c:1557
#5  0x0000001bb93103e0 in fiber_store (next_fiber=0x1b4b9b7000, 
th=0x1b4b9e9e00) at cont.c:2634
#6  fiber_switch (fiber=0x1b4b9b7000, argc=<optimized out>, argv=<optimized 
out>, kw_splat=<optimized out>, resuming_fiber=<optimized out>, 
yielding=<optimized out>) at cont.c:2706
#7  0x0000001bb9330c44 in next_i (_=<optimized out>, obj=<optimized out>, 
argc=<optimized out>, argv=<optimized out>, blockarg=<optimized out>) at 
enumerator.c:793
#8  0x0000001bb9526ce4 in rb_vm_invoke_proc (ec=0x1bf59b7050, proc=<optimized 
out>, argc=<optimized out>, argv=0x1be05054f0, kw_splat=<optimized out>, 
passed_block_handler=<optimized out>) at ./vm_insnhelper.c:4272
#9  0x0000001bb930fc50 in rb_fiber_start (fiber=0x1bf59b7000) at cont.c:2498
#10 0x0000001bb93127ec in fiber_entry (from=<optimized out>, to=<optimized 
out>) at cont.c:831
#11 0x0000001bb9549cc0 in coroutine_trampoline (_context=0x1bf59b7530) at 
coroutine/pthread/Context.c:148
#12 0x0000001bc032d03c in _rthread_start (v=<optimized out>) at 
/usr/src/lib/librthread/rthread.c:96
#13 0x0000001bce819718 in __tfork_thread () at 
/usr/src/lib/libc/arch/aarch64/sys/tfork_thread.S:43

Thread 9 (process 378073):
#0  futex () at /tmp/-:4
#1  0x0000001bce7e433c in _twait (p=0x1b353e0b60, val=3, clockid=0, abs=0x0) at 
/usr/src/lib/libc/thread/synch.h:36
#2  _rthread_cond_timedwait (cond=0x1b353e0b60, mutexp=0x1c0b4de580, abs=0x0) 
at /usr/src/lib/libc/thread/rthread_cond.c:106
#3  0x0000001bb9549e58 in coroutine_transfer (current=<optimized out>, 
target=0x1b4b9b7530) at coroutine/pthread/Context.c:221
#4  0x0000001bb9312674 in fiber_setcontext (new_fiber=0x1b4b9b7000, 
old_fiber=0x1bf59d6800) at cont.c:1557
#5  0x0000001bb93103e0 in fiber_store (next_fiber=0x1b4b9b7000, 
th=0x1b4b9e9e00) at cont.c:2634
#6  fiber_switch (fiber=0x1b4b9b7000, argc=<optimized out>, argv=<optimized 
out>, kw_splat=<optimized out>, resuming_fiber=<optimized out>, 
yielding=<optimized out>) at cont.c:2706
#7  0x0000001bb9330c44 in next_i (_=<optimized out>, obj=<optimized out>, 
argc=<optimized out>, argv=<optimized out>, blockarg=<optimized out>) at 
enumerator.c:793
#8  0x0000001bb9526ce4 in rb_vm_invoke_proc (ec=0x1bf59d6850, proc=<optimized 
out>, argc=<optimized out>, argv=0x1be0547b10, kw_splat=<optimized out>, 
passed_block_handler=<optimized out>) at ./vm_insnhelper.c:4272
#9  0x0000001bb930fc50 in rb_fiber_start (fiber=0x1bf59d6800) at cont.c:2498
#10 0x0000001bb93127ec in fiber_entry (from=<optimized out>, to=<optimized 
out>) at cont.c:831
#11 0x0000001bb9549cc0 in coroutine_trampoline (_context=0x1bf59d6d30) at 
coroutine/pthread/Context.c:148
#12 0x0000001bc032d03c in _rthread_start (v=<optimized out>) at 
/usr/src/lib/librthread/rthread.c:96
#13 0x0000001bce819718 in __tfork_thread () at 
/usr/src/lib/libc/arch/aarch64/sys/tfork_thread.S:43

Thread 8 (process 548620):
#0  futex () at /tmp/-:4
#1  0x0000001bce7e433c in _twait (p=0x1b353e0c90, val=3, clockid=0, abs=0x0) at 
/usr/src/lib/libc/thread/synch.h:36
#2  _rthread_cond_timedwait (cond=0x1b353e0c90, mutexp=0x1c0b4de580, abs=0x0) 
at /usr/src/lib/libc/thread/rthread_cond.c:106
#3  0x0000001bb9549e58 in coroutine_transfer (current=<optimized out>, 
target=0x1b4b9b7530) at coroutine/pthread/Context.c:221
#4  0x0000001bb9312674 in fiber_setcontext (new_fiber=0x1b4b9b7000, 
old_fiber=0x1bf59a4000) at cont.c:1557
#5  0x0000001bb93103e0 in fiber_store (next_fiber=0x1b4b9b7000, 
th=0x1b4b9e9e00) at cont.c:2634
#6  fiber_switch (fiber=0x1b4b9b7000, argc=<optimized out>, argv=<optimized 
out>, kw_splat=<optimized out>, resuming_fiber=<optimized out>, 
yielding=<optimized out>) at cont.c:2706
#7  0x0000001bb9330c44 in next_i (_=<optimized out>, obj=<optimized out>, 
argc=<optimized out>, argv=<optimized out>, blockarg=<optimized out>) at 
enumerator.c:793
#8  0x0000001bb9526ce4 in rb_vm_invoke_proc (ec=0x1bf59a4050, proc=<optimized 
out>, argc=<optimized out>, argv=0x1be0589790, kw_splat=<optimized out>, 
passed_block_handler=<optimized out>) at ./vm_insnhelper.c:4272
#9  0x0000001bb930fc50 in rb_fiber_start (fiber=0x1bf59a4000) at cont.c:2498
#10 0x0000001bb93127ec in fiber_entry (from=<optimized out>, to=<optimized 
out>) at cont.c:831
#11 0x0000001bb9549cc0 in coroutine_trampoline (_context=0x1bf59a4530) at 
coroutine/pthread/Context.c:148
#12 0x0000001bc032d03c in _rthread_start (v=<optimized out>) at 
/usr/src/lib/librthread/rthread.c:96
#13 0x0000001bce819718 in __tfork_thread () at 
/usr/src/lib/libc/arch/aarch64/sys/tfork_thread.S:43

Thread 7 (process 321881):
#0  futex () at /tmp/-:4
#1  0x0000001bce7e433c in _twait (p=0x1c01a81cf0, val=0, clockid=3, 
abs=0x1bb996a0f0) at /usr/src/lib/libc/thread/synch.h:36
#2  _rthread_cond_timedwait (cond=0x1c01a81cf0, mutexp=0x1bb96b3e78 
<thread_cache_lock>, abs=0x1bb996a0f0) at 
/usr/src/lib/libc/thread/rthread_cond.c:106
#3  0x0000001bb94d0db4 in native_cond_timedwait (cond=0x1bb996a0c0, 
mutex=<optimized out>, abs=<optimized out>) at ./thread_pthread.c:682
#4  register_cached_thread_and_wait (altstack=0x1b7d03a000) at 
./thread_pthread.c:1234
#5  thread_start_func_1 (th_ptr=<optimized out>) at ./thread_pthread.c:1179
#6  0x0000001bc032d03c in _rthread_start (v=<optimized out>) at 
/usr/src/lib/librthread/rthread.c:96
#7  0x0000001bce819718 in __tfork_thread () at 
/usr/src/lib/libc/arch/aarch64/sys/tfork_thread.S:43

Thread 6 (process 602390):
#0  futex () at /tmp/-:4
#1  0x0000001bce7e433c in _twait (p=0x1b94b369f0, val=0, clockid=3, 
abs=0x1bd6f67180) at /usr/src/lib/libc/thread/synch.h:36
#2  _rthread_cond_timedwait (cond=0x1b94b369f0, mutexp=0x1bb96b3e78 
<thread_cache_lock>, abs=0x1bd6f67180) at 
/usr/src/lib/libc/thread/rthread_cond.c:106
#3  0x0000001bb94d0db4 in native_cond_timedwait (cond=0x1bd6f67150, 
mutex=<optimized out>, abs=<optimized out>) at ./thread_pthread.c:682
#4  register_cached_thread_and_wait (altstack=0x1b75b96000) at 
./thread_pthread.c:1234
#5  thread_start_func_1 (th_ptr=<optimized out>) at ./thread_pthread.c:1179
#6  0x0000001bc032d03c in _rthread_start (v=<optimized out>) at 
/usr/src/lib/librthread/rthread.c:96
#7  0x0000001bce819718 in __tfork_thread () at 
/usr/src/lib/libc/arch/aarch64/sys/tfork_thread.S:43

Thread 5 (process 225775):
#0  futex () at /tmp/-:4
#1  0x0000001bce7e433c in _twait (p=0x1b5ceabaf0, val=0, clockid=3, 
abs=0x1be84ac1c0) at /usr/src/lib/libc/thread/synch.h:36
#2  _rthread_cond_timedwait (cond=0x1b5ceabaf0, mutexp=0x1bb96b3e78 
<thread_cache_lock>, abs=0x1be84ac1c0) at 
/usr/src/lib/libc/thread/rthread_cond.c:106
#3  0x0000001bb94d0db4 in native_cond_timedwait (cond=0x1be84ac190, 
mutex=<optimized out>, abs=<optimized out>) at ./thread_pthread.c:682
#4  register_cached_thread_and_wait (altstack=0x1ba38d1000) at 
./thread_pthread.c:1234
#5  thread_start_func_1 (th_ptr=<optimized out>) at ./thread_pthread.c:1179
#6  0x0000001bc032d03c in _rthread_start (v=<optimized out>) at 
/usr/src/lib/librthread/rthread.c:96
#7  0x0000001bce819718 in __tfork_thread () at 
/usr/src/lib/libc/arch/aarch64/sys/tfork_thread.S:43

Thread 4 (process 570112):
#0  _thread_sys_poll () at /tmp/-:4
#1  0x0000001bce7d1460 in _libc_poll_cancel (fds=0x1bab287988, nfds=1, 
timeout=-1) at /usr/src/lib/libc/sys/w_poll.c:27
#2  0x0000001bb94d289c in timer_pthread_fn (p=<optimized out>) at 
./thread_pthread.c:2383
#3  0x0000001bc032d03c in _rthread_start (v=<optimized out>) at 
/usr/src/lib/librthread/rthread.c:96
#4  0x0000001bce819718 in __tfork_thread () at 
/usr/src/lib/libc/arch/aarch64/sys/tfork_thread.S:43

Thread 3 (process 334347):
#0  _thread_sys_ppoll () at /tmp/-:4
#1  0x0000001bce836af4 in _libc_ppoll_cancel (fds=0x1bda8050c8, nfds=1, 
timeout=0x0, sigmask=0x0) at /usr/src/lib/libc/sys/w_ppoll.c:36
#2  0x0000001bb94c37c0 in rb_sigwait_sleep (th=0x1b5096bc00, sigwait_fd=3, 
rel=0x0) at ./thread_pthread.c:2223
#3  0x0000001bb94c5c58 in native_sleep (th=0x1b5096bc00, rel=0x0) at 
./thread_pthread.c:2347
#4  0x0000001bb94c6528 in sleep_forever (th=0x1b5096bc00, fl=1) at thread.c:1274
#5  0x0000001bb94cfefc in rb_thread_sleep_deadly_allow_spurious_wakeup 
(blocker=<optimized out>, timeout=4, end=0) at thread.c:1398
#6  queue_sleep (_args=<optimized out>) at ./thread_sync.c:1007
#7  0x0000001bb9343e20 in rb_ensure (b_proc=0x1bb94cfe50 <queue_sleep>, 
data1=119629960360, e_proc=<optimized out>, data2=<optimized out>) at 
eval.c:1007
#8  0x0000001bb94cfe18 in queue_do_pop (self=119824855440, q=0x1b981d2b00, 
should_block=<optimized out>, timeout=<optimized out>) at ./thread_sync.c:1082
#9  0x0000001bb9517790 in invoke_bf (ec=0x1b53c1c850, argv=0x0, 
reg_cfp=<optimized out>, bf=<optimized out>) at ./vm_insnhelper.c:6286
#10 vm_invoke_builtin_delegate (ec=0x1b53c1c850, bf=<optimized out>, 
start_index=<optimized out>, cfp=<optimized out>) at ./vm_insnhelper.c:6313
#11 vm_exec_core (ec=<optimized out>, initial=<optimized out>) at insns.def:1501
#12 0x0000001bb9528804 in rb_vm_exec (ec=0x1b53c1c850, jit_enable_p=<optimized 
out>) at vm.c:398
#13 0x0000001bb9526a50 in rb_vm_invoke_proc (ec=0x1b53c1c850, proc=<optimized 
out>, argc=<optimized out>, argv=0x1bda805b80, kw_splat=0, 
passed_block_handler=0) at ./vm_insnhelper.c:376
#14 0x0000001bb94d1c58 in thread_do_start_proc (th=0x1b5096bc00) at thread.c:595
#15 0x0000001bb94d1344 in thread_do_start (th=0x1b5096bc00) at thread.c:614
#16 thread_start_func_2 (th=0x1b5096bc00, stack_start=<optimized out>) at 
thread.c:689
#17 0x0000001bb94d0c80 in thread_start_func_1 (th_ptr=<optimized out>) at 
./thread_pthread.c:1170
#18 0x0000001bc032d03c in _rthread_start (v=<optimized out>) at 
/usr/src/lib/librthread/rthread.c:96
#19 0x0000001bce819718 in __tfork_thread () at 
/usr/src/lib/libc/arch/aarch64/sys/tfork_thread.S:43

Thread 2 (process 237075):
#0  futex () at /tmp/-:4
#1  0x0000001bc032d9bc in _twait (p=0x1b3a67d208, val=<error reading variable: 
Cannot access memory at address 0x0>, clockid=<error reading variable: Cannot 
access memory at address 0x0>, abs=0x0) at /usr/src/lib/librthread/synch.h:36
#2  _sem_wait (sem=<optimized out>, can_eintr=0, abstime=0x0, 
delayed_cancel=0x1bce873c10 <_initial_thread+200>) at 
/usr/src/lib/librthread/rthread_sem.c:76
#3  0x0000001bc032cb74 in pthread_join (thread=0x1b3a67d200, retval=0x0) at 
/usr/src/lib/librthread/rthread.c:304
#4  0x0000001bb954a068 in coroutine_join (context=0x1bf59c4530) at 
coroutine/pthread/Context.c:250
#5  coroutine_destroy (context=0x1bf59c4530) at coroutine/pthread/Context.c:269
#6  0x0000001bb931241c in cont_free (ptr=0x1bf59c4000) at cont.c:1047
#7  0x0000001bb93662c0 in obj_free (objspace=0x1b4b9d0670, obj=118441354560) at 
gc.c:3594
#8  0x0000001bb9365d48 in gc_sweep_plane (objspace=0x1b4b9d0670, 
p=118441354560, bitset=2078209981, ctx=0x7ffffb8330, heap=<optimized out>) at 
gc.c:5584
#9  gc_sweep_page (objspace=0x1b4b9d0670, heap=0x1b4b9d06d0, ctx=0x7ffffb8330) 
at gc.c:5669
#10 0x0000001bb93644bc in gc_sweep_step (objspace=0x1b4b9d0670, 
size_pool=0x1b4b9d0698, heap=0x1b4b9d06d0) at gc.c:5980
#11 0x0000001bb9367f94 in gc_sweep_continue (objspace=0x1b4b9d0670, 
sweep_size_pool=0x1b4b9d0698, heap=0x1b4b9d06d0) at gc.c:6062
#12 gc_continue (objspace=0x1b4b9d0670, size_pool=0x1b4b9d0698, 
heap=0x1b4b9d06d0) at gc.c:2414
#13 0x0000001bb9362778 in heap_prepare (objspace=0x1b4b9d0670, 
size_pool=0x1b4b9d0698, heap=0x1b4b9d06d0) at gc.c:2424
#14 heap_next_free_page (objspace=0x1b4b9d0670, size_pool=0x1b4b9d0698, 
heap=0x1b4b9d06d0) at gc.c:2672
#15 newobj_alloc (objspace=0x1b4b9d0670, cr=0x1b4b9d6e00, size_pool_idx=0, 
vm_locked=<optimized out>) at gc.c:2780
#16 0x0000001bb9353c68 in newobj_of0 (klass=118224339360, flags=8199, 
wb_protected=<error reading variable: Cannot access memory at address 0x1>, 
cr=<optimized out>, alloc_size=<optimized out>) at gc.c:2876
#17 newobj_of (klass=118224339360, flags=8199, v1=<error reading variable: 
Cannot access memory at address 0x0>, v2=<error reading variable: Cannot access 
memory at address 0x0>, v3=<error reading variable: Cannot access memory at 
address 0x0>, wb_protected=<error reading variable: Cannot access memory at 
address 0x1>, alloc_size=<optimized out>) at gc.c:2896
#18 rb_wb_protected_newobj_of (klass=118224339360, flags=8199, size=<optimized 
out>) at gc.c:2918
#19 0x0000001bb9430194 in rb_ractor_thread_list (r=<optimized out>) at 
ractor.c:1751
#20 0x0000001bb9533218 in vm_call_cfunc_with_frame (ec=0x1b4b9b7050, 
reg_cfp=0x1b5ec84940, calling=<optimized out>) at ./vm_insnhelper.c:3252
#21 0x0000001bb95359e0 in vm_sendish (ec=0x1b4b9b7050, reg_cfp=0x1b5ec84940, 
cd=0x1b2eadfb80, block_handler=<optimized out>, method_explorer=<optimized 
out>) at ./vm_insnhelper.c:5069
#22 0x0000001bb951422c in vm_exec_core (ec=<optimized out>, initial=<optimized 
out>) at insns.def:820
#23 0x0000001bb9528804 in rb_vm_exec (ec=0x1b4b9b7050, jit_enable_p=<optimized 
out>) at vm.c:398
#24 0x0000001bb953a918 in invoke_iseq_block_from_c (ec=0x1b4b9b7050, 
captured=0x1b5ec84a98, self=118526583960, argc=<optimized out>, 
argv=0x7ffffb8c88, kw_splat=0, passed_block_handler=0, cref=0x0, is_lambda=0, 
me=<error reading variable: Cannot access memory at address 0x0>) at 
./vm_insnhelper.c:400
#25 invoke_block_from_c_bh (ec=0x1b4b9b7050, block_handler=<optimized out>, 
argc=<optimized out>, argv=0x7ffffb8c88, kw_splat=0, passed_block_handler=0, 
cref=0x0, is_lambda=<optimized out>, force_blockarg=0) at vm.c:1472
#26 0x0000001bb9520aec in rb_yield (val=<optimized out>) at vm.c:1509
#27 0x0000001bb92b25f4 in rb_ary_collect (ary=118037055400) at array.c:3834
#28 0x0000001bb9533218 in vm_call_cfunc_with_frame (ec=0x1b4b9b7050, 
reg_cfp=0x1b5ec84a80, calling=<optimized out>) at ./vm_insnhelper.c:3252
#29 0x0000001bb95359e0 in vm_sendish (ec=0x1b4b9b7050, reg_cfp=0x1b5ec84a80, 
cd=0x1b981cf1d0, block_handler=<optimized out>, method_explorer=<optimized 
out>) at ./vm_insnhelper.c:5069
#30 0x0000001bb95141cc in vm_exec_core (ec=<optimized out>, initial=<optimized 
out>) at insns.def:801
#31 0x0000001bb9528804 in rb_vm_exec (ec=0x1b4b9b7050, jit_enable_p=<optimized 
out>) at vm.c:398
#32 0x0000001bb953a918 in invoke_iseq_block_from_c (ec=0x1b4b9b7050, 
captured=0x1b5ec84b98, self=118526583960, argc=<optimized out>, 
argv=0x7ffffb9418, kw_splat=0, passed_block_handler=0, cref=0x0, is_lambda=0, 
me=<error reading variable: Cannot access memory at address 0x0>) at 
./vm_insnhelper.c:400
#33 invoke_block_from_c_bh (ec=0x1b4b9b7050, block_handler=<optimized out>, 
argc=<optimized out>, argv=0x7ffffb9418, kw_splat=0, passed_block_handler=0, 
cref=0x0, is_lambda=<optimized out>, force_blockarg=0) at vm.c:1472
#34 0x0000001bb9520aec in rb_yield (val=<optimized out>) at vm.c:1509
#35 0x0000001bb92ab7e4 in rb_ary_each (ary=120591109520) at array.c:2740
#36 0x0000001bb9533218 in vm_call_cfunc_with_frame (ec=0x1b4b9b7050, 
reg_cfp=0x1b5ec84b80, calling=<optimized out>) at ./vm_insnhelper.c:3252
#37 0x0000001bb952e37c in vm_call_refined (ec=0x1b4b9b7050, cfp=0x1b5ec84b80, 
calling=0x7ffffb9628) at ./vm_insnhelper.c:3736
#38 vm_call_method_each_type (ec=0x1b4b9b7050, cfp=0x1b5ec84b80, 
calling=0x7ffffb9628) at ./vm_insnhelper.c:3979
#39 0x0000001bb95359e0 in vm_sendish (ec=0x1b4b9b7050, reg_cfp=0x1b5ec84b80, 
cd=0x1c03c4b3c0, block_handler=<optimized out>, method_explorer=<optimized 
out>) at ./vm_insnhelper.c:5069
#40 0x0000001bb95141cc in vm_exec_core (ec=<optimized out>, initial=<optimized 
out>) at insns.def:801
#41 0x0000001bb9528804 in rb_vm_exec (ec=0x1b4b9b7050, jit_enable_p=<optimized 
out>) at vm.c:398
#42 0x0000001bb953a918 in invoke_iseq_block_from_c (ec=0x1b4b9b7050, 
captured=0x1b5ec84d58, self=118526583960, argc=<optimized out>, 
argv=0x7ffffb9c78, kw_splat=0, passed_block_handler=0, cref=0x0, is_lambda=0, 
me=<error reading variable: Cannot access memory at address 0x0>) at 
./vm_insnhelper.c:400
#43 invoke_block_from_c_bh (ec=0x1b4b9b7050, block_handler=<optimized out>, 
argc=<optimized out>, argv=0x7ffffb9c78, kw_splat=0, passed_block_handler=0, 
cref=0x0, is_lambda=<optimized out>, force_blockarg=0) at vm.c:1472
#44 0x0000001bb9520aec in rb_yield (val=<optimized out>) at vm.c:1509
#45 0x0000001bb92ab7e4 in rb_ary_each (ary=120591112240) at array.c:2740
#46 0x0000001bb9533218 in vm_call_cfunc_with_frame (ec=0x1b4b9b7050, 
reg_cfp=0x1b5ec84d40, calling=<optimized out>) at ./vm_insnhelper.c:3252
#47 0x0000001bb952e37c in vm_call_refined (ec=0x1b4b9b7050, cfp=0x1b5ec84d40, 
calling=0x7ffffb9e88) at ./vm_insnhelper.c:3736
#48 vm_call_method_each_type (ec=0x1b4b9b7050, cfp=0x1b5ec84d40, 
calling=0x7ffffb9e88) at ./vm_insnhelper.c:3979
#49 0x0000001bb95359e0 in vm_sendish (ec=0x1b4b9b7050, reg_cfp=0x1b5ec84d40, 
cd=0x1b981f0d80, block_handler=<optimized out>, method_explorer=<optimized 
out>) at ./vm_insnhelper.c:5069
#50 0x0000001bb95141cc in vm_exec_core (ec=<optimized out>, initial=<optimized 
out>) at insns.def:801
#51 0x0000001bb9528804 in rb_vm_exec (ec=0x1b4b9b7050, jit_enable_p=<optimized 
out>) at vm.c:398
#52 0x0000001bb93ac3b8 in load_iseq_eval (ec=0x1b4b9b7050, fname=117469425640) 
at load.c:697
#53 0x0000001bb93aa388 in require_internal (ec=0x1b4b9b7050, fname=<optimized 
out>, exception=1, warn=<optimized out>) at load.c:1202
#54 0x0000001bb93a985c in rb_require_string (fname=117469425680) at load.c:1293
#55 rb_f_require_relative (obj=<optimized out>, fname=<optimized out>) at 
load.c:957
#56 0x0000001bb9533218 in vm_call_cfunc_with_frame (ec=0x1b4b9b7050, 
reg_cfp=0x1b5ec84f80, calling=<optimized out>) at ./vm_insnhelper.c:3252
#57 0x0000001bb95359e0 in vm_sendish (ec=0x1b4b9b7050, reg_cfp=0x1b5ec84f80, 
cd=0x1c03c639b0, block_handler=<optimized out>, method_explorer=<optimized 
out>) at ./vm_insnhelper.c:5069
#58 0x0000001bb951422c in vm_exec_core (ec=<optimized out>, initial=<optimized 
out>) at insns.def:820
#59 0x0000001bb9528804 in rb_vm_exec (ec=0x1b4b9b7050, jit_enable_p=<optimized 
out>) at vm.c:398
#60 0x0000001bb9342c80 in rb_ec_exec_node (ec=<optimized out>, n=0x1b59b93ad8) 
at eval.c:289
#61 0x0000001bb9342ae4 in ruby_run_node (n=0x1b59b93ad8) at eval.c:330
#62 0x0000001717f00bec in rb_main (argc=6, argv=0x7ffffbb038) at ./main.c:38
#63 main (argc=6, argv=0x7ffffbb038) at ./main.c:57

Thread 1 (process 391374):
#0  thrkill () at /tmp/-:4
#1  0x0000001bce7e5ec4 in _libc_abort () at /usr/src/lib/libc/stdlib/abort.c:51
#2  0x0000001bce81aaf4 in _libc_pthread_mutex_unlock (mutexp=<optimized out>) 
at /usr/src/lib/libc/thread/rthread_mutex.c:265
#3  0x0000001bb9549fb0 in coroutine_guard_unlock (_context=<optimized out>) at 
coroutine/pthread/Context.c:117
#4  0x0000001bce7ced68 in _libc_pthread_exit (retval=<optimized out>) at 
/usr/src/lib/libc/thread/rthread.c:146
#5  0x0000001bc032cab0 in sigthr_handler (sig=<optimized out>) at 
/usr/src/lib/librthread/rthread.c:131
#6  <signal handler called>
#7  futex () at /tmp/-:4
#8  0x0000001bce7e433c in _twait (p=0x1b6a32f0d0, val=2, clockid=0, abs=0x0) at 
/usr/src/lib/libc/thread/synch.h:36
#9  _rthread_cond_timedwait (cond=0x1b6a32f0d0, mutexp=0x1c0b4de580, abs=0x0) 
at /usr/src/lib/libc/thread/rthread_cond.c:106
#10 0x0000001bb9549e58 in coroutine_transfer (current=<optimized out>, 
target=0x1b4b9b7530) at coroutine/pthread/Context.c:221
#11 0x0000001bb9312674 in fiber_setcontext (new_fiber=0x1b4b9b7000, 
old_fiber=0x1bf59c4000) at cont.c:1557
#12 0x0000001bb93103e0 in fiber_store (next_fiber=0x1b4b9b7000, 
th=0x1b4b9e9e00) at cont.c:2634
#13 fiber_switch (fiber=0x1b4b9b7000, argc=<optimized out>, argv=<optimized 
out>, kw_splat=<optimized out>, resuming_fiber=<optimized out>, 
yielding=<optimized out>) at cont.c:2706
#14 0x0000001bb9330c44 in next_i (_=<optimized out>, obj=<optimized out>, 
argc=<optimized out>, argv=<optimized out>, blockarg=<optimized out>) at 
enumerator.c:793
#15 0x0000001bb9526ce4 in rb_vm_invoke_proc (ec=0x1bf59c4050, proc=<optimized 
out>, argc=<optimized out>, argv=0x1be04c3280, kw_splat=<optimized out>, 
passed_block_handler=<optimized out>) at ./vm_insnhelper.c:4272
#16 0x0000001bb930fc50 in rb_fiber_start (fiber=0x1bf59c4000) at cont.c:2498
#17 0x0000001bb93127ec in fiber_entry (from=<optimized out>, to=<optimized 
out>) at cont.c:831
#18 0x0000001bb9549cc0 in coroutine_trampoline (_context=0x1bf59c4530) at 
coroutine/pthread/Context.c:148
#19 0x0000001bc032d03c in _rthread_start (v=<optimized out>) at 
/usr/src/lib/librthread/rthread.c:96
#20 0x0000001bce819718 in __tfork_thread () at 
/usr/src/lib/libc/arch/aarch64/sys/tfork_thread.S:43

Reply via email to