Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test and build for Ruby 3.0 #8134

Closed
wants to merge 8 commits into from
Closed

Conversation

qnighy
Copy link
Contributor

@qnighy qnighy commented Dec 11, 2020

Ruby 3.0 has been released. This PR tests protobuf with Ruby 3.0.0 and builds extensions for Ruby 3.0.x.

Waiting for the release of rake-compiler-dock 1.1.0 rake-compiler/rake-compiler-dock#40

@qnighy
Copy link
Contributor Author

qnighy commented Dec 14, 2020

Thanks for running the CI, but I cannot see the result. Getting the following page...

スクリーンショット 2020-12-14 14 24 14

@KapilSachdev
Copy link

The mentioned PR rake-compiler/rake-compiler-dock#40 is merged.
Can we get this merged as well.

@haberman
Copy link
Member

The Kokoro builds for Ruby 2.4-2.7 appear to be failing with errors like:

++ sha1sum kokoro/linux/dockerfile/test/ruby/Dockerfile
++ cut -f1 '-d '
+ DOCKER_IMAGE_NAME=protobuftesting/ruby_b4162e4070abf61356c51150e854ef011b8e35c7
+ docker pull protobuftesting/ruby_b4162e4070abf61356c51150e854ef011b8e35c7
Using default tag: latest
Error response from daemon: pull access denied for protobuftesting/ruby_b4162e4070abf61356c51150e854ef011b8e35c7, repository does not exist or may require 'docker login'
+ sleep 10
+ docker pull protobuftesting/ruby_b4162e4070abf61356c51150e854ef011b8e35c7
Using default tag: latest
Error response from daemon: pull access denied for protobuftesting/ruby_b4162e4070abf61356c51150e854ef011b8e35c7, repository does not exist or may require 'docker login'
+ sleep 10
+ docker pull protobuftesting/ruby_b4162e4070abf61356c51150e854ef011b8e35c7
Using default tag: latest
Error response from daemon: pull access denied for protobuftesting/ruby_b4162e4070abf61356c51150e854ef011b8e35c7, repository does not exist or may require 'docker login'
+ sleep 10
+ docker pull protobuftesting/ruby_b4162e4070abf61356c51150e854ef011b8e35c7
Using default tag: latest

@qnighy
Copy link
Contributor Author

qnighy commented Jan 1, 2021

@haberman

The Kokoro builds for Ruby 2.4-2.7 appear to be failing with errors like:

As in #7386, I think someone privileged needs to run kokoro/linux/dockerfile/push_testing_images.sh. I was wondering if you could invoke the script for me...

@qnighy
Copy link
Contributor Author

qnighy commented Jan 4, 2021

@haberman Thanks for invoking the CI. What are the build failures for Ruby 2.4 to 2.7 this time? I'm not privileged to see the kokoro status page by myself...

And it seems that the builds for Linux Ruby 3.0 and MacOS Ruby 3.0 are not run. Am I missing something?

@haberman
Copy link
Member

haberman commented Jan 5, 2021

My previous run of the push script failed. I just had it run successfully, so hopefully they will succeed this time.

For the Ruby 3.0 build, we probably need to update the job config which lives in the internal google repo. @TeBoring could you take a look?

@dazuma
Copy link
Contributor

dazuma commented Jan 7, 2021

Note: grpc merged their Ruby 3.0 build: grpc/grpc#25070

@haberman
Copy link
Member

haberman commented Jan 8, 2021

Oh no, that Linux Ruby 3.0 failure is a segfault:

/tmp/protobuf/protobuf/ruby/tests/gc_test.rb:96: warning: assigned but unused variable - to
Loaded suite /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/gems/3.0.0/gems/rake-13.0.3/lib/rake/rake_test_loader
Started<OBJ_INFO:gc_mark_ptr@gc.c:6106> 0x00000000016b0250 [0 M   ] T_NONE
/tmp/protobuf/protobuf/ruby/tests/gc_test.rb:96: [BUG] try to mark T_NONE object
ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0030 p:---- s:0168 e:000167 CFUNC  :decode
c:0029 p:0087 s:0163 e:000162 METHOD /tmp/protobuf/protobuf/ruby/tests/gc_test.rb:96
c:0028 p:0120 s:0155 e:000154 METHOD /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/testcase.rb:832
c:0027 p:0004 s:0147 e:000146 BLOCK  /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/testcase.rb:530
c:0026 p:0026 s:0144 e:000143 BLOCK  /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/fixture.rb:270
c:0025 p:0026 s:0140 e:000139 BLOCK  /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/fixture.rb:270
c:0024 p:0052 s:0136 e:000135 METHOD /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/fixture.rb:251
c:0023 p:0009 s:0127 e:000126 METHOD /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/fixture.rb:286
c:0022 p:0005 s:0122 E:001818 BLOCK  /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/testcase.rb:528 [FINISH]
c:0021 p:---- s:0118 e:000117 CFUNC  :catch
c:0020 p:0047 s:0114 E:001660 METHOD /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/testcase.rb:527
c:0019 p:0018 s:0108 E:0017b8 METHOD /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/testsuite.rb:124
c:0018 p:0082 s:0099 e:000098 METHOD /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/testsuite.rb:53
c:0017 p:0018 s:0092 E:001768 METHOD /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/testsuite.rb:124
c:0016 p:0082 s:0083 e:000082 METHOD /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/testsuite.rb:53
c:0015 p:0023 s:0076 E:0018a8 METHOD /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnermediator.rb:67
c:0014 p:0045 s:0071 e:000070 BLOCK  /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnermediator.rb:45
c:0013 p:0086 s:0068 E:000ad8 METHOD /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnermediator.rb:102
c:0012 p:0015 s:0059 E:001248 BLOCK  /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnermediator.rb:41 [FINISH]
c:0011 p:---- s:0055 e:000054 CFUNC  :catch
c:0010 p:0056 s:0051 E:001218 METHOD /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnermediator.rb:39
c:0009 p:0006 s:0044 e:000043 METHOD /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunner.rb:40
c:0008 p:0019 s:0040 e:000039 METHOD /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunner.rb:25
c:0007 p:0015 s:0036 e:000035 METHOD /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnerutilities.rb:24
c:0006 p:0011 s:0030 e:000029 BLOCK  /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/autorunner.rb:446
c:0005 p:0026 s:0027 e:000026 METHOD /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/autorunner.rb:502
c:0004 p:0155 s:0022 e:000021 METHOD /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/autorunner.rb:445
c:0003 p:0064 s:0016 e:000015 METHOD /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/autorunner.rb:66
c:0002 p:0048 s:0007 e:000005 BLOCK  /usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit.rb:516 [FINISH]
c:0001 p:0000 s:0003 E:002410 (none) [FINISH]

-- Ruby level backtrace information ----------------------------------------
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit.rb:516:in `block (2 levels) in <top (required)>'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/autorunner.rb:66:in `run'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/autorunner.rb:445:in `run'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/autorunner.rb:502:in `change_work_directory'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/autorunner.rb:446:in `block in run'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnerutilities.rb:24:in `run'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunner.rb:25:in `start'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunner.rb:40:in `start_mediator'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnermediator.rb:39:in `run'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnermediator.rb:39:in `catch'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnermediator.rb:41:in `block in run'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnermediator.rb:102:in `with_listener'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnermediator.rb:45:in `block (2 levels) in run'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnermediator.rb:67:in `run_suite'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/testsuite.rb:53:in `run'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/testsuite.rb:124:in `run_test'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/testsuite.rb:53:in `run'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/testsuite.rb:124:in `run_test'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/testcase.rb:527:in `run'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/testcase.rb:527:in `catch'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/testcase.rb:528:in `block in run'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/fixture.rb:286:in `run_setup'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/fixture.rb:251:in `run_fixture'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/fixture.rb:270:in `block in create_fixtures_runner'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/fixture.rb:270:in `block in create_fixtures_runner'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/testcase.rb:530:in `block (2 levels) in run'
/usr/local/rvm/gems/ruby-3.0.0/gems/test-unit-3.3.9/lib/test/unit/testcase.rb:832:in `run_test'
/tmp/protobuf/protobuf/ruby/tests/gc_test.rb:96:in `test_generated_msg'
/tmp/protobuf/protobuf/ruby/tests/gc_test.rb:96:in `decode'

-- C level backtrace information -------------------------------------------
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(rb_print_backtrace+0x11) [0x7f6dbcd1a493] vm_dump.c:758
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(rb_vm_bugreport) vm_dump.c:998
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(bug_report_end+0x0) [0x7f6dbcb298c2] error.c:763
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(rb_bug_without_die) error.c:763
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(die+0x0) [0x7f6dbca8da74] error.c:771
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(rb_bug) error.c:773
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(gc_mark_ptr+0x219) [0x7f6dbcb4fa19] gc.c:6107
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(gc_mark_stacked_objects+0x1d) [0x7f6dbcb54ccd] gc.c:6454
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(gc_mark_stacked_objects_all) gc.c:6494
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(gc_marks_rest) gc.c:7435
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(gc_prof_timer_stop+0x0) [0x7f6dbcb52753] gc.c:7491
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(gc_start) gc.c:8311
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(rb_multi_ractor_p+0x0) [0x7f6dbcb52d6f] gc.c:8197
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(rb_vm_lock_leave) vm_sync.h:93
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(garbage_collect) gc.c:8199
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(newobj_slowpath+0x1d8) [0x7f6dbcb56c31] gc.c:2241
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(newobj_slowpath_wb_protected) gc.c:2268
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(newobj_of0+0x8) [0x7f6dbcb56e78] gc.c:2307
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(newobj_of) gc.c:2327
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(rb_wb_protected_newobj_of) gc.c:2349
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(RB_SPECIAL_CONST_P+0x0) [0x7f6dbcc8fa6f] string.c:773
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(RB_FL_ABLE) ./include/ruby/internal/fl_type.h:220
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(RB_FL_SET) ./include/ruby/internal/fl_type.h:305
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(str_new_static) string.c:909
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(rb_str_new_static) string.c:919
/tmp/protobuf/protobuf/ruby/lib/google/protobuf_c.so(str_handler+0x18) [0x7f6db781fa78] /usr/local/rvm/rubies/ruby-3.0.0/include/ruby-3.0.0/ruby/internal/intern/string.h:153
/tmp/protobuf/protobuf/ruby/lib/google/protobuf_c.so(run_decoder_vm+0x65e) [0x7f6db783c9de] ../../../../ext/google/protobuf_c/upb.h:5351
/tmp/protobuf/protobuf/ruby/lib/google/protobuf_c.so(upb_bytessink_putbuf+0x1c) [0x7f6db78386c4] ../../../../ext/google/protobuf_c/upb.h:5628
/tmp/protobuf/protobuf/ruby/lib/google/protobuf_c.so(upb_bufsrc_putbuf) ../../../../ext/google/protobuf_c/upb.c:5984
/tmp/protobuf/protobuf/ruby/lib/google/protobuf_c.so(Message_decode+0x181) [0x7f6db7821161] ../../../../ext/google/protobuf_c/encode_decode.c:1063
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(vm_call_cfunc_with_frame+0x113) [0x7f6dbccf4e43] vm_insnhelper.c:2898
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(vm_call_method_each_type+0xce) [0x7f6dbcd0adde] vm_insnhelper.c:3430
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(vm_call_method+0xfb) [0x7f6dbcd0b3fb] vm_insnhelper.c:3506
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(vm_sendish+0x161) [0x7f6dbccf8561] vm_insnhelper.c:4499
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(vm_exec_core+0xde) [0x7f6dbcd00c1e] insns.def:789
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(rb_vm_exec+0xe7) [0x7f6dbcd06657] vm.c:2163
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(invoke_iseq_block_from_c+0x76) [0x7f6dbcd089b6] vm.c:1335
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(invoke_block_from_c_bh) vm.c:1353
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(vm_yield) vm.c:1398
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(rb_yield_0) vm_eval.c:1171
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(catch_i) vm_eval.c:2163
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(vm_catch_protect+0xf2) [0x7f6dbccfa242] vm_eval.c:2245
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(rb_catch_obj+0x4c) [0x7f6dbccfa41c] vm_eval.c:2271
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(vm_call_cfunc_with_frame+0x113) [0x7f6dbccf4e43] vm_insnhelper.c:2898
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(vm_call_method_each_type+0xce) [0x7f6dbcd0adde] vm_insnhelper.c:3430
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(vm_call_method+0xfb) [0x7f6dbcd0b3fb] vm_insnhelper.c:3506
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(vm_sendish+0x161) [0x7f6dbccf8561] vm_insnhelper.c:4499
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(vm_exec_core+0x181b) [0x7f6dbcd0235b] insns.def:770
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(rb_vm_exec+0xe7) [0x7f6dbcd06657] vm.c:2163
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(invoke_iseq_block_from_c+0x76) [0x7f6dbcd089b6] vm.c:1335
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(invoke_block_from_c_bh) vm.c:1353
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(vm_yield) vm.c:1398
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(rb_yield_0) vm_eval.c:1171
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(catch_i) vm_eval.c:2163
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(vm_catch_protect+0xf2) [0x7f6dbccfa242] vm_eval.c:2245
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(rb_catch_obj+0x4c) [0x7f6dbccfa41c] vm_eval.c:2271
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(vm_call_cfunc_with_frame+0x113) [0x7f6dbccf4e43] vm_insnhelper.c:2898
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(vm_call_method_each_type+0xce) [0x7f6dbcd0adde] vm_insnhelper.c:3430
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(vm_call_method+0xfb) [0x7f6dbcd0b3fb] vm_insnhelper.c:3506
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(vm_sendish+0x161) [0x7f6dbccf8561] vm_insnhelper.c:4499
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(vm_exec_core+0x181b) [0x7f6dbcd0235b] insns.def:770
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(rb_vm_exec+0xe7) [0x7f6dbcd06657] vm.c:2163
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(rb_vm_invoke_proc+0x3e) [0x7f6dbcd0ab4e] vm.c:1485
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(rb_proc_call+0x8f) [0x7f6dbcc0cdff] proc.c:986
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(exec_end_procs_chain+0x47) [0x7f6dbcb36574] eval_jump.c:105
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(rb_ec_exec_end_proc) eval_jump.c:120
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(rb_ec_teardown+0xc7) [0x7f6dbcb36767] eval.c:175
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(rb_ec_cleanup+0x1b0) [0x7f6dbcb36a40] eval.c:243
/usr/local/rvm/rubies/ruby-3.0.0/lib/libruby.so.3.0(ruby_run_node+0x5f) [0x7f6dbcb36e5f] eval.c:375
/usr/local/rvm/rubies/ruby-3.0.0/bin/ruby(main+0x5b) [0x40092b] ./main.c:50

@haberman
Copy link
Member

haberman commented Jan 9, 2021

I wonder if we might want to package this together with: #8184

The SEGV seen in that test should be fixed by the changes in #8184. The old way of GC-rooting everything during the parse was far more complicated and fragile.

The changes in #8184 are very extensive and may introduce some bugs that we'll have to work through. But overall it is a large improvement, and is the way of the future.

@qnighy could you add your consent for your changes in that PR?

@qnighy
Copy link
Contributor Author

qnighy commented Jan 14, 2021

Merged as part of #8184. Closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants