Opened 15 months ago

Last modified 13 months ago

#66908 assigned defect

ruby30 @3.0.5_1 doesn't work properly on 10.6 ppc

Reported by: fhgwright (Fred Wright) Owned by: fhgwright (Fred Wright)
Priority: Low Milestone:
Component: ports Version:
Keywords: snowleopard powerpc Cc: barracuda156
Port: ruby30

Description

@fhgwright I sorta realise that I am the only one here to care about 10.6 (so this is just for the record), but now, after reverting back asciidoctor to ruby30, it is again broken on 10.6 for ppc. While ruby30 builds successfully after the recent update, it does not work. At the same time ruby31 works fine.

With ruby30, the build freezes on:

Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_textproc_asciidoctor/asciidoctor/work/asciidoctor-2.0.18" && /opt/local/bin/gem3.0 install --local --force --install-dir /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_textproc_asciidoctor/asciidoctor/work/destroot/opt/local/lib/ruby3.0/gems/3.0.0 /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_textproc_asciidoctor/asciidoctor/work/asciidoctor-2.0.18/asciidoctor.gem
It freezes so badly that Control+C does not help.
Here is the process snapshot:

Analysis of sampling ruby3.0 (pid 70845) every 1 millisecond
Call graph:
    1795 Thread_350b
      1795 start
        1795 main
          1795 ruby_run_node
            1795 rb_ec_exec_node
              1795 rb_vm_exec
                1795 vm_exec_core
                  1795 vm_sendish
                    1795 vm_call_cfunc_with_frame
                      1795 rb_ary_each
                        1795 rb_yield
                          1795 rb_yield_0
                            1795 rb_vm_exec
                              1795 vm_exec_core
                                1795 vm_sendish
                                  1795 vm_call_cfunc_with_frame
                                    1795 rb_ary_each
                                      1795 rb_yield
                                        1795 rb_yield_0
                                          1795 rb_vm_exec
                                            1795 vm_exec_core
                                              1795 vm_sendish
                                                1795 vm_call_cfunc_with_frame
                                                  1795 rb_ensure
                                                    1795 rb_yield
                                                      1795 rb_yield_0
                                                        1795 rb_vm_exec
                                                          1795 vm_exec_core
                                                            1795 vm_sendish
                                                              1795 vm_call_cfunc_with_frame
                                                                1795 rb_ensure
                                                                  1795 rb_yield
                                                                    1795 rb_yield_0
                                                                      1795 rb_vm_exec
                                                                        1795 vm_exec_core
                                                                          1795 vm_sendish
                                                                            1795 vm_call_cfunc_with_frame
                                                                              1795 gzfile_read
                                                                                1795 zstream_shift_buffer
                                                                                  1795 str_new0
                                                                                    1795 newobj_of
                                                                                      1795 newobj_slowpath_wb_protected
                                                                                        1795 ractor_cache_slots
                                                                                          1795 heap_increment
                                                                                            1795 heap_assign_page
                                                                                              1795 rb_aligned_malloc
                                                                                                1795 posix_memalign
                                                                                                  1795 malloc_zone_memalign
                                                                                                    1795 szone_memalign
                                                                                                      1795 szone_free
                                                                                                        1795 small_free_detach_region
                                                                                                          1795 small_free_detach_region
    1795 Thread_3603
      1795 timer_pthread_fn
        1795 poll$UNIX2003
          1795 poll$UNIX2003

Total number in stack (recursive counted multiple, when >=5):
        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):
        poll$UNIX2003        1795
        small_free_detach_region        1795

Change History (3)

comment:1 Changed 15 months ago by barracuda156

Thank you for opening the ticket, though I avoided that on purpose, since 10.6 PPC is not a supported OS by Macports (don’t ask me, I could have supported it myself if allowed).

Almost always standard 10.6.8 (which is supported) exhibits same problems as 10.6 PPC (and adds its own issues due to cpu being different from build arch for Rosetta), so normally I verify the failure in Rosetta and then can open a legit ticket. However, no Ruby builds for me in Rosetta. I tried 2–3 versions, each freezes in the middle of the build. So while I suspect 10.6.8 Rosetta would have had the same error, I am unable to confirm that and produce a log.

  1. S. I suspect ruby30 here uses something that exists on 10.6.x only for Intel (in particular, something pthread-related was missing both in 10.6 PPC and 10.6.8 Rosetta, while available in 10.6.8 Intel). In this case it may be easier to implement a fix with Ruby upstream – they are fine with community-based support for exotic platforms, as long as that does not interfere with others; but I think older Ruby versions are not maintained much (and ruby31+ does not have this bug, or at least it does not show up in discussed scenario).

comment:2 Changed 13 months ago by barracuda156

For the record, ruby27 @2.7.7 fails to build:

gmake[1]: *** [ext/configure-ext.mk:174: ext/syslog/exts.mk] Abort trap
gmake[1]: Leaving directory '/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_ruby27/ruby27/work/ruby-2.7.7'
gmake: *** [uncommon.mk:277: exts.mk] Error 2
gmake: *** Waiting for unfinished jobs....
making encs
gmake[1]: Entering directory '/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_ruby27/ruby27/work/ruby-2.7.7'

Not sure yet whether upstream broken something or our patches, but it was building before.

Last edited 13 months ago by barracuda156 (previous) (diff)

comment:3 in reply to:  2 Changed 13 months ago by fhgwright (Fred Wright)

Replying to barracuda156:

For the record, ruby27 @2.7.7 fails to build:

gmake[1]: *** [ext/configure-ext.mk:174: ext/syslog/exts.mk] Abort trap
gmake[1]: Leaving directory '/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_ruby27/ruby27/work/ruby-2.7.7'
gmake: *** [uncommon.mk:277: exts.mk] Error 2
gmake: *** Waiting for unfinished jobs....
making encs
gmake[1]: Entering directory '/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_ruby27/ruby27/work/ruby-2.7.7'

Not sure yet whether upstream broken something or our patches, but it was building before.

Given that neither the upstream code nor the patches have changed, either it was flaky all along or something else changed. You might look at what ports have been updated on your system since it last built successfully.

Given that 10.6 ppc is officially unsupported, it would behoove anyone wanting to make that work to also have a 10.5 ppc installation for reference. If something that fails with 10.6 ppc also fails with 10.5 ppc, then that's a failure that might be reproducible by more than a handful of others. If it doesn't fail with 10.5 ppc, then that provides an opportunity for comparative debugging.

Note: See TracTickets for help on using tickets.