From: "mtasaka (Mamoru TASAKA) via ruby-core" Date: 2025-12-09T15:08:01+00:00 Subject: [ruby-core:124105] [Ruby Bug#21771] pg-1.6.2 testsuite segfaults in ruby4.0.0dev Issue #21771 has been updated by mtasaka (Mamoru TASAKA). gdb result ``` type casting shouldn't type map params unless requested Thread 1 "ruby-mri" received signal SIGSEGV, Segmentation fault. 0x00007fffdc09de22 in alloc_query_params (paramsData=paramsData@entry=0x7fffffffb460) at pg_connection.c:1263 1263 p_typemap = RTYPEDDATA_DATA( paramsData->typemap ); (gdb) bt #0 0x00007fffdc09de22 in alloc_query_params (paramsData=paramsData@entry=0x7fffffffb460) at pg_connection.c:1263 #1 0x00007fffdc0a3c02 in pgconn_send_query_params (argc=argc@entry=4, argv=argv@entry=0x7ffff73f8800, self=self@entry=140736863014320) at pg_connection.c:2023 #2 0x00007fffdc0a40e7 in pgconn_async_exec_params (argc=4, argv=0x7ffff73f8800, self=140736863014320) at pg_connection.c:3488 #3 0x00007ffff7a9356e in vm_call_cfunc_with_frame_ (ec=0x55555555f880, reg_cfp=0x7ffff74f7590, calling=, argc=4, argv=, stack_bottom=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm_insnhelper.c:3903 #4 0x00007ffff7a9cb55 in vm_sendish (ec=, reg_cfp=, cd=, block_handler=, method_explorer=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm_insnhelper.c:6125 #5 vm_exec_core (ec=0x7fffdaa357a0) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/redhat-linux-build/insns.def:904 #6 0x00007ffff7ab21df in vm_exec_loop (ec=, state=, tag=, result=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm.c:2812 #7 rb_vm_exec (ec=0x55555555f880) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm.c:2788 #8 0x00007ffff7ab71f0 in vm_yield_with_cref (ec=0x55555555f880, argc=1, argv=0x7ffff73f8660, kw_splat=0, cref=, is_lambda=0) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm.c:1865 #9 yield_under (self=, singleton=, argc=1, argv=0x7ffff73f8660, kw_splat=0) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm_eval.c:2228 #10 0x00007ffff7a9356e in vm_call_cfunc_with_frame_ (ec=0x55555555f880, reg_cfp=0x7ffff74f7788, calling=, argc=1, argv=, stack_bottom=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm_insnhelper.c:3903 #11 0x00007ffff7a95fe8 in vm_sendish (ec=, reg_cfp=, cd=, block_handler=, method_explorer=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm_callinfo.h:450 #12 0x00007ffff7a9d5b2 in vm_exec_core (ec=0x7fffdaa357a0) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/redhat-linux-build/insns.def:856 #13 0x00007ffff7ab21df in vm_exec_loop (ec=, state=, tag=, result=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm.c:2812 #14 rb_vm_exec (ec=0x55555555f880) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm.c:2788 #15 0x00007ffff7ab71f0 in vm_yield_with_cref (ec=0x55555555f880, argc=1, argv=0x7ffff73f8558, kw_splat=0, cref=, is_lambda=0) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm.c:1865 #16 yield_under (self=, singleton=, argc=1, argv=0x7ffff73f8558, kw_splat=0) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm_eval.c:2228 #17 0x00007ffff7a9356e in vm_call_cfunc_with_frame_ (ec=0x55555555f880, reg_cfp=0x7ffff74f7948, calling=, argc=1, argv=, stack_bottom=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm_insnhelper.c:3903 #18 0x00007ffff7a95fe8 in vm_sendish (ec=, reg_cfp=, cd=, block_handler=, method_explorer=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm_callinfo.h:450 #19 0x00007ffff7a9d5b2 in vm_exec_core (ec=0x7fffdaa357a0) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/redhat-linux-build/insns.def:856 #20 0x00007ffff7ab21df in vm_exec_loop (ec=, state=, tag=, result=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm.c:2812 #21 rb_vm_exec (ec=0x55555555f880) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm.c:2788 #22 0x00007ffff7ab77ff in vm_yield_with_cref (ec=, argc=1, argv=0x7fffffffd068, kw_splat=0, cref=0x0, is_lambda=0) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm.c:1865 #23 vm_yield (ec=, argc=1, argv=0x7fffffffd068, kw_splat=0) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm.c:1873 #24 rb_yield_0 (argc=1, argv=0x7fffffffd068) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm_eval.c:1362 #25 rb_yield (val=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm_eval.c:1378 #26 0x00007ffff7820c5d in rb_ary_collect (ary=140736862951840) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/array.c:3678 #27 0x00007ffff7a9356e in vm_call_cfunc_with_frame_ (ec=0x55555555f880, reg_cfp=0x7ffff74f7bb0, calling=, argc=0, argv=, stack_bottom=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm_insnhelper.c:3903 #28 0x00007ffff7a95fe8 in vm_sendish (ec=, reg_cfp=, cd=, block_handler=, method_explorer=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm_callinfo.h:450 #29 0x00007ffff7a9d5b2 in vm_exec_core (ec=0x7fffdaa357a0) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/redhat-linux-build/insns.def:856 #30 0x00007ffff7ab21df in vm_exec_loop (ec=, state=, tag=, result=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm.c:2812 #31 rb_vm_exec (ec=0x55555555f880) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm.c:2788 #32 0x00007ffff7ab77ff in vm_yield_with_cref (ec=, argc=1, argv=0x7fffffffd468, kw_splat=0, cref=0x0, is_lambda=0) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm.c:1865 #33 vm_yield (ec=, argc=1, argv=0x7fffffffd468, kw_splat=0) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm.c:1873 #34 rb_yield_0 (argc=1, argv=0x7fffffffd468) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm_eval.c:1362 #35 rb_yield (val=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm_eval.c:1378 #36 0x00007ffff7820c5d in rb_ary_collect (ary=140736859393920) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/array.c:3678 #37 0x00007ffff7a9356e in vm_call_cfunc_with_frame_ (ec=0x55555555f880, reg_cfp=0x7ffff74f7c90, calling=, argc=0, argv=, stack_bottom=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm_insnhelper.c:3903 #38 0x00007ffff7a95fe8 in vm_sendish (ec=, reg_cfp=, cd=, block_handler=, method_explorer=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm_callinfo.h:450 #39 0x00007ffff7a9d5b2 in vm_exec_core (ec=0x7fffdaa357a0) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/redhat-linux-build/insns.def:856 #40 0x00007ffff7ab21df in vm_exec_loop (ec=, state=, tag=, result=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm.c:2812 #41 rb_vm_exec (ec=0x55555555f880) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm.c:2788 #42 0x00007ffff7ab77ff in vm_yield_with_cref (ec=, argc=1, argv=0x7fffffffd868, kw_splat=0, cref=0x0, is_lambda=0) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm.c:1865 #43 vm_yield (ec=, argc=1, argv=0x7fffffffd868, kw_splat=0) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm.c:1873 #44 rb_yield_0 (argc=1, argv=0x7fffffffd868) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm_eval.c:1362 #45 rb_yield (val=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm_eval.c:1378 #46 0x00007ffff7820c5d in rb_ary_collect (ary=140736872725880) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/array.c:3678 #47 0x00007ffff7a9356e in vm_call_cfunc_with_frame_ (ec=0x55555555f880, reg_cfp=0x7ffff74f7d38, calling=, argc=0, argv=, stack_bottom=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm_insnhelper.c:3903 #48 0x00007ffff7a95fe8 in vm_sendish (ec=, reg_cfp=, cd=, block_handler=, method_explorer=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm_callinfo.h:450 #49 0x00007ffff7a9d5b2 in vm_exec_core (ec=0x7fffdaa357a0) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/redhat-linux-build/insns.def:856 #50 0x00007ffff7ab2604 in vm_exec_loop (ec=0x55555555f880, state=, tag=0x7fffffffdbb0, result=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm.c:2812 #51 rb_vm_exec (ec=0x55555555f880) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm.c:2791 #52 0x00007ffff7946bc0 in rb_load_internal (fname=fname@entry=140736873366160, wrap=wrap@entry=4) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/load.c:861 #53 0x00007ffff7946ec9 in load_entrypoint_internal.isra.0 (fname=, wrap=wrap@entry=4) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/load.c:903 #54 0x00007ffff794704d in rb_f_load (argc=, argv=, _=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/load.c:957 #55 0x00007ffff7a9356e in vm_call_cfunc_with_frame_ (ec=0x55555555f880, reg_cfp=0x7ffff74f7f68, calling=, argc=1, argv=, stack_bottom=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm_insnhelper.c:3903 #56 0x00007ffff7a9cb55 in vm_sendish (ec=, reg_cfp=, cd=, block_handler=, method_explorer=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm_insnhelper.c:6125 #57 vm_exec_core (ec=0x7fffdaa357a0) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/redhat-linux-build/insns.def:904 #58 0x00007ffff7ab21df in vm_exec_loop (ec=, state=, tag=, result=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm.c:2812 #59 rb_vm_exec (ec=0x55555555f880) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/vm.c:2788 #60 0x00007ffff78d6a56 in rb_ec_exec_node (ec=ec@entry=0x55555555f880, n=n@entry=0x7fffdb4c17f0) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/eval.c:283 #61 0x00007ffff78dbf33 in ruby_run_node (n=0x7fffdb4c17f0) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/eval.c:321 #62 0x00005555555544d5 in rb_main (argc=13, argv=0x7fffffffe228) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/main.c:42 #63 main (argc=, argv=) at /usr/src/debug/ruby-4.0.0~20251209.1356gitedca81a1bb-29.fc44.251209.13.gitedca81a1bb.x86_64/main.c:62 ``` ---------------------------------------- Bug #21771: pg-1.6.2 testsuite segfaults in ruby4.0.0dev https://bugs.ruby-lang.org/issues/21771#change-115549 * Author: mtasaka (Mamoru TASAKA) * Status: Open * ruby -v: ruby 4.0.0dev (2025-12-09 master edca81a1bb) +PRISM [x86_64-linux] * Backport: 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN ---------------------------------------- Looks like pg-1.6.2 https://github.com/ged/ruby-pg/tree/c75ed8da19c356b52d83da2627295760780d3d36 testsuite began to segfault, especially the following ``` #!/bin/bash export PGPORT=54321 export RUBY_PG_TEST_DIR=/builddir/build/BUILD/tmp export RUBYLIB=/builddir/build/BUILD/rubygem-pg-1.6.2-build/pg-1.6.2/usr/share/gems/gems/pg-1.6.2/lib:/builddir/build/BUILD/rubygem-pg-1.6.2-build/pg-1.6.2/usr/lib64/gems/ruby/pg-1.6.2 # The above path should be replaced properly rm -rf $RUBY_PG_TEST_DIR exec ruby -S --verbose \ -r ./spec/helpers \ rspec -f d \ spec/pg/connection_spec.rb -E '' \ --seed 1 ``` segfaults like below (will write later) It seems that segfaults began to happen between commit:706d80830b9f0a5a2eac66251d1417abb2ff143c (no problem) and commit:d7e55f84f2bd62d302b29513d4c4dc8ae9aef96f (segfaults) Tried with commit:edca81a1bb72a9dc54a37766d2c80790dec13884 it still segfaults. Note that ruby-pg *compiled* with commit:706d80830b9f0a5a2eac66251d1417abb2ff143 does *not* segfault with ruby commit:edca81a1bb72a9dc54a37766d2c80790dec13884 , so I suspect that there is something wrong with "inlined" function or so. -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/