Bug #18049
Updated by nobu (Nobuyoshi Nakada) over 2 years ago
I get random segfaults when attempting to build on NetBSD ```sh uname -a NetBSD juggler.panix.com 9.1 NetBSD 9.1 (PANIX-STD) #2: Thu Mar 18 17:46:23 EDT 2021 root@juggler.panix.com:/misc/obj64/misc/devel/netbsd/9.1/src/sys/arch/amd64/compile/PANIX-STD amd64 Configuration summary for ruby version 3.0.2 * Installation prefix: /usr/local * exec prefix: ${prefix} * arch: x86_64-netbsd9.1 * site arch: ${arch} * RUBY_BASE_NAME: ruby * enable shared: yes * ruby lib prefix: ${libdir}/${RUBY_BASE_NAME} * site libraries path: ${rubylibprefix}/${sitearch} * vendor path: ${rubylibprefix}/vendor_ruby * target OS: netbsd9.1 * compiler: gcc * with pthread: yes * with coroutine: ucontext * enable shared libs: yes * dynamic library ext: so * CFLAGS: ${optflags} ${debugflags} ${warnflags} * LDFLAGS: -L. -fstack-protector-strong -Wl,-export-dynamic * DLDFLAGS: -Wl,--compress-debug-sections=zlib * optflags: -O3 * debugflags: -ggdb3 * warnflags: -Wall -Wextra -Wdeprecated-declarations\ -Wduplicated-cond -Wimplicit-function-declaration\ -Wimplicit-int -Wmisleading-indentation\ -Wpointer-arith -Wwrite-strings\ -Wimplicit-fallthrough=0 -Wmissing-noreturn\ -Wno-cast-function-type\ -Wno-constant-logical-operand -Wno-long-long\ -Wno-missing-field-initializers\ -Wno-overlength-strings\ -Wno-packed-bitfield-compat\ -Wno-parentheses-equality -Wno-self-assign\ -Wno-tautological-compare -Wno-unused-parameter\ -Wno-unused-value -Wsuggest-attribute=format\ -Wsuggest-attribute=noreturn -Wunused-variable * strip command: strip -S -x * install doc: no * JIT support: yes * man page type: man * BASERUBY -v: ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38)\ [x86_64-netbsd9.1] BASERUBY = /usr/local/bin/ruby --disable=gems CC = gcc LD = ld LDSHARED = gcc -shared CFLAGS = -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -std=gnu99 -fPIC -pipe XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-strict-overflow -fvisibility=hidden -fexcess-precision=standard -DRUBY_EXPORT -I. -I.ext/include/x86_64-netbsd9.1 -I./include -I. -I./enc/unicode/12.1.0 CPPFLAGS = DLDFLAGS = -Wl,--compress-debug-sections=zlib -Wl,-soname,liblibruby30.so.30 -fstack-protector-strong SOLIBS = -lexecinfo -lz -lpthread -lrt -lrt -lcrypt -lm LANG = en_US.UTF-8 LC_ALL = LC_CTYPE = MFLAGS = gcc (nb4 20200810) 7.5.0 ``` This particular time, it segfaulted here: ```sh making prelude.rbinc /usr/local/lib/ruby/3.0.0/ripper/lexer.rb:70: [BUG] Segmentation fault ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-netbsd9.1] -- Control frame information ----------------------------------------------- c:0009 p:---- s:0037 e:000036 CFUNC :new c:0008 p:0043 s:0028 e:000027 CLASS /usr/local/lib/ruby/3.0.0/ripper/lexer.rb:70 c:0007 p:0042 s:0025 e:000024 CLASS /usr/local/lib/ruby/3.0.0/ripper/lexer.rb:55 c:0006 p:0013 s:0022 e:000021 TOP /usr/local/lib/ruby/3.0.0/ripper/lexer.rb:14 [FINISH] c:0005 p:---- s:0019 e:000018 CFUNC :require c:0004 p:0011 s:0014 e:000013 TOP /usr/local/lib/ruby/3.0.0/ripper.rb:3 [FINISH] c:0003 p:---- s:0011 e:000010 CFUNC :require c:0002 p:0005 s:0006 e:000005 EVAL ./tool/mk_builtin_loader.rb:3 [FINISH] c:0001 p:0000 s:0003 E:001d70 (none) [FINISH] -- Ruby level backtrace information ---------------------------------------- ./tool/mk_builtin_loader.rb:3:in `<main>' ./tool/mk_builtin_loader.rb:3:in `require' /usr/local/lib/ruby/3.0.0/ripper.rb:3:in `<top (required)>' /usr/local/lib/ruby/3.0.0/ripper.rb:3:in `require' /usr/local/lib/ruby/3.0.0/ripper/lexer.rb:14:in `<top (required)>' /usr/local/lib/ruby/3.0.0/ripper/lexer.rb:55:in `<class:Ripper>' /usr/local/lib/ruby/3.0.0/ripper/lexer.rb:70:in `<class:Lexer>' /usr/local/lib/ruby/3.0.0/ripper/lexer.rb:70:in `new' -- C level backtrace information ------------------------------------------- /usr/local/lib/libruby.so.30(rb_profile_frame_full_label+0x19) [0x79baa3ee2399] /usr/local/lib/libruby.so.30(rb_profile_frame_full_label+0x8e) [0x79baa3ee243e] /usr/local/lib/libruby.so.30(rb_bug+0x124) [0x79baa3cc3211] /usr/local/lib/libruby.so.30(ruby_posix_signal+0x0) [0x79baa3e2eb49] /usr/lib/libc.so.12(__sigtramp_siginfo_2+0x0) [0x79baa1aa1d50] -- Other runtime information ----------------------------------------------- * Loaded script: ./tool/mk_builtin_loader.rb * Loaded features: 0 enumerator.so 1 thread.rb 2 rational.so 3 complex.so 4 ruby2_keywords.rb 5 /usr/local/lib/ruby/3.0.0/x86_64-netbsd9.1/enc/encdb.so 6 /usr/local/lib/ruby/3.0.0/x86_64-netbsd9.1/enc/trans/transdb.so 7 /usr/local/lib/ruby/3.0.0/x86_64-netbsd9.1/ripper.so 8 /usr/local/lib/ruby/3.0.0/ripper/core.rb gmake: *** [Makefile:1833: prelude.rbinc] Abort trap (core dumped) ``` Other times it will segfault in other places. It seems pretty random.