Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 1975144

Summary: ruby: FTBFS with test suite failure (glibc 2.34 related)
Product: Red Hat Enterprise Linux 9 Reporter: Florian Weimer <fweimer>
Component: rubyAssignee: ruby maint <ruby-maint>
Status: CLOSED NOTABUG QA Contact: Jan Houska <jhouska>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 9.0CC: extras-qa, jaruga, jhouska, joe, jprokop, mo, mtasaka, pvalena, ruby-packagers-sig, s, strzibny, vanmeeuwen+fedora, vondruch
Target Milestone: betaKeywords: Triaged
Target Release: ---Flags: pm-rhel: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1975140 Environment:
Last Closed: 2021-07-07 12:53:55 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1975140, 1981798    
Bug Blocks:    

Description Florian Weimer 2021-06-23 08:00:46 UTC
This issue looks like it might impact ruby in Red Hat Enterprise Linux 9 once we switch to glibc 2.34.

You can test a fix before glibc 2.34 is merged using this command:

koji -p stream build --scratch c9s-build-side-102-stack-gate git+https://gitlab.com/redhat/centos-stream/rpms/ruby#origin/c9s

(I saw a timeout on s390x when building against c9s-candidate (glibc 2.33), but that appears unrelated.)

+++ This bug was initially created as a clone of Bug #1975140 +++

ruby fails to build on armv7l and i686. The failures look similar.  I'm only including the i686 log.

I hope I will be able to investigate this myself, or find someone who can help you with this issue.

The relevant excerpt looks like this:

[18214/21052] TestSocket#test_tcp_server_sockets_port0 = 0.00 s
[18215/21052] TestSocket#test_timestamp/builddir/build/BUILD/ruby-3.0.1/.ext/common/socket.rb:427: [BUG] Segmentation fault at 0x00000004
ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [i386-linux]
-- Control frame information -----------------------------------------------
c:0039 p:---- s:0234 e:000233 CFUNC  :__recvmsg
c:0038 p:0020 s:0226 e:000225 METHOD /builddir/build/BUILD/ruby-3.0.1/.ext/common/socket.rb:427
c:0037 p:0103 s:0217 E:002474 BLOCK  /builddir/build/BUILD/ruby-3.0.1/test/socket/test_socket.rb:480 [FINISH]
c:0036 p:---- s:0203 e:000202 CFUNC  :pipe
c:0035 p:0012 s:0199 E:000d98 METHOD /builddir/build/BUILD/ruby-3.0.1/test/socket/test_socket.rb:468
c:0034 p:0024 s:0191 e:000190 BLOCK  /builddir/build/BUILD/ruby-3.0.1/test/socket/test_socket.rb:504
c:0033 p:0058 s:0187 e:000186 METHOD /builddir/build/BUILD/ruby-3.0.1/.ext/common/socket.rb:186
c:0032 p:0018 s:0182 e:000181 BLOCK  /builddir/build/BUILD/ruby-3.0.1/test/socket/test_socket.rb:502
c:0031 p:0058 s:0178 e:000177 METHOD /builddir/build/BUILD/ruby-3.0.1/.ext/common/socket.rb:186
c:0030 p:0110 s:0173 e:000172 METHOD /builddir/build/BUILD/ruby-3.0.1/test/socket/test_socket.rb:501
c:0029 p:0052 s:0165 e:000164 METHOD /builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:1283
c:0028 p:0065 s:0159 e:000158 METHOD /builddir/build/BUILD/ruby-3.0.1/tool/lib/minitest/unit.rb:1320
c:0027 p:0013 s:0150 e:000149 METHOD /builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit/testcase.rb:18
c:0026 p:0077 s:0145 e:000144 BLOCK  /builddir/build/BUILD/ruby-3.0.1/tool/lib/minitest/unit.rb:969 [FINISH]
c:0025 p:---- s:0138 e:000137 CFUNC  :map
c:0024 p:0006 s:0134 e:000133 BLOCK  /builddir/build/BUILD/ruby-3.0.1/tool/lib/minitest/unit.rb:962
c:0023 p:0163 s:0130 E:002158 METHOD /builddir/build/BUILD/ruby-3.0.1/tool/lib/minitest/unit.rb:989
c:0022 p:0042 s:0118 e:000117 METHOD /builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:1136
c:0021 p:0010 s:0111 e:000109 BLOCK  /builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:627 [FINISH]
c:0020 p:---- s:0105 e:000104 CFUNC  :each
c:0019 p:0054 s:0101 E:001044 METHOD /builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:625
c:0018 p:0008 s:0094 E:000e14 METHOD /builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:662
c:0017 p:0140 s:0087 E:001c2c METHOD /builddir/build/BUILD/ruby-3.0.1/tool/lib/minitest/unit.rb:904
c:0016 p:0016 s:0074 E:0024ec METHOD /builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:1073
c:0015 p:0005 s:0069 E:001998 METHOD /builddir/build/BUILD/ruby-3.0.1/tool/lib/minitest/unit.rb:1137
c:0014 p:0006 s:0065 E:000f7c BLOCK  /builddir/build/BUILD/ruby-3.0.1/tool/lib/minitest/unit.rb:1124 [FINISH]
c:0013 p:---- s:0061 e:000060 CFUNC  :each
c:0012 p:0047 s:0057 E:000bac METHOD /builddir/build/BUILD/ruby-3.0.1/tool/lib/minitest/unit.rb:1123
c:0011 p:0013 s:0052 E:00073c METHOD /builddir/build/BUILD/ruby-3.0.1/tool/lib/minitest/unit.rb:1111
c:0010 p:0008 s:0047 E:0016b0 METHOD /builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:847
c:0009 p:0008 s:0041 E:001b70 METHOD /builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:695
c:0008 p:0015 s:0035 E:00227c METHOD /builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:34
c:0007 p:0006 s:0030 E:001e8c METHOD /builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:1175
c:0006 p:0032 s:0025 E:0016a8 METHOD /builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:1245
c:0005 p:0009 s:0021 E:00150c METHOD /builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:1249
c:0004 p:0172 s:0016 E:0018cc TOP    /builddir/build/BUILD/ruby-3.0.1/tool/test/runner.rb:23 [FINISH]
c:0003 p:---- s:0011 e:000010 CFUNC  :require_relative
c:0002 p:0092 s:0006 E:002618 EVAL   ./test/runner.rb:11 [FINISH]
c:0001 p:0000 s:0003 E:000a78 (none) [FINISH]
-- Ruby level backtrace information ----------------------------------------
./test/runner.rb:11:in `<main>'
./test/runner.rb:11:in `require_relative'
/builddir/build/BUILD/ruby-3.0.1/tool/test/runner.rb:23:in `<top (required)>'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:1249:in `run'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:1245:in `run'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:1175:in `run'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:34:in `run'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:695:in `run'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:847:in `run'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/minitest/unit.rb:1111:in `run'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/minitest/unit.rb:1123:in `_run'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/minitest/unit.rb:1123:in `each'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/minitest/unit.rb:1124:in `block in _run'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/minitest/unit.rb:1137:in `run_tests'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:1073:in `_run_anything'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/minitest/unit.rb:904:in `_run_anything'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:662:in `_run_suites'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:625:in `_run_suites'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:625:in `each'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:627:in `block in _run_suites'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:1136:in `_run_suite'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/minitest/unit.rb:989:in `_run_suite'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/minitest/unit.rb:962:in `block in _run_suite'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/minitest/unit.rb:962:in `map'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/minitest/unit.rb:969:in `block (2 levels) in _run_suite'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit/testcase.rb:18:in `run'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/minitest/unit.rb:1320:in `run'
/builddir/build/BUILD/ruby-3.0.1/tool/lib/test/unit.rb:1283:in `run_test'
/builddir/build/BUILD/ruby-3.0.1/test/socket/test_socket.rb:501:in `test_timestamp'
/builddir/build/BUILD/ruby-3.0.1/.ext/common/socket.rb:186:in `bind'
/builddir/build/BUILD/ruby-3.0.1/test/socket/test_socket.rb:502:in `block in test_timestamp'
/builddir/build/BUILD/ruby-3.0.1/.ext/common/socket.rb:186:in `bind'
/builddir/build/BUILD/ruby-3.0.1/test/socket/test_socket.rb:504:in `block (2 levels) in test_timestamp'
/builddir/build/BUILD/ruby-3.0.1/test/socket/test_socket.rb:468:in `timestamp_retry_rw'
/builddir/build/BUILD/ruby-3.0.1/test/socket/test_socket.rb:468:in `pipe'
/builddir/build/BUILD/ruby-3.0.1/test/socket/test_socket.rb:480:in `block in timestamp_retry_rw'
/builddir/build/BUILD/ruby-3.0.1/.ext/common/socket.rb:427:in `recvmsg'
/builddir/build/BUILD/ruby-3.0.1/.ext/common/socket.rb:427:in `__recvmsg'
-- Machine register context ------------------------------------------------
  GS: 0x00000063  FS: 0x00000000  ES: 0x0000002b  DS: 0x0000002b EDI: 0x62ac5130
 ESI: 0x62ac5160 EBP: 0xffa98bb4 ESP: 0xffa989d0 EBX: 0x00000030 EDX: 0xc558a274
 ECX: 0x62ac5150 EAX: 0x62ac5144 TRA: 0x0000000e ERR: 0x00000006 EIP: 0xf79e73a8
  CS: 0x00000023 EFL: 0x00010a93 UES: 0xffa989d0  SS: 0x0000002b
-- C level backtrace information -------------------------------------------
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_vm_bugreport+0x4e8) [0xf7dd61f8]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_bug_for_fatal_signal+0x7d) [0xf7c36e2d]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(sigsegv+0x58) [0xf7d49808]
[0xf7f76580]
[0xf79e73a8]
[0xf7ad390a]
[0xf52bdc00]
[0xf52bdc44]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_nogvl+0xe9) [0xf7d86c79]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_thread_call_without_gvl+0x2a) [0xf7d86f5a]
[0xf52bdf8f]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(ractor_safe_call_cfunc_4+0x1e) [0xf7dad7fe]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_call_cfunc_with_frame+0x12b) [0xf7dbbe4b]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_sendish+0x3a9) [0xf7dbe239]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_exec_core+0x239) [0xf7dc10c9]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_vm_exec+0x124) [0xf7dc6314]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(invoke_block_from_c_bh+0x2de) [0xf7dc96ce]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_yield+0x72) [0xf7dca892]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_ensure+0x109) [0xf7c3ddc9]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_io_s_pipe+0x2d4) [0xf7c74174]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_call_cfunc_with_frame+0x12b) [0xf7dbbe4b]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_sendish+0x3a9) [0xf7dbe239]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_exec_core+0x29d) [0xf7dc112d]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_vm_exec+0x124) [0xf7dc6314]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(invoke_block_from_c_bh+0x2de) [0xf7dc96ce]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_yield+0x72) [0xf7dca892]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_ary_collect+0x6c) [0xf7bd0f8c]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_call_cfunc_with_frame+0x12b) [0xf7dbbe4b]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_sendish+0x3a9) [0xf7dbe239]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_exec_core+0x29d) [0xf7dc112d]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_vm_exec+0x124) [0xf7dc6314]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(invoke_block_from_c_bh+0x2de) [0xf7dc96ce]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_yield+0x72) [0xf7dca892]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_ary_each+0x4a) [0xf7bca7ba]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_call_cfunc_with_frame+0x12b) [0xf7dbbe4b]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_call_method_each_type+0x72) [0xf7dc7ca2]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_call_method_each_type+0x4b6) [0xf7dc80e6]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_sendish+0x3a9) [0xf7dbe239]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_exec_core+0x29d) [0xf7dc112d]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_vm_exec+0x124) [0xf7dc6314]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(invoke_block_from_c_bh+0x2de) [0xf7dc96ce]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_yield+0x72) [0xf7dca892]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_ary_each+0x4a) [0xf7bca7ba]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_call_cfunc_with_frame+0x12b) [0xf7dbbe4b]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_call_method_each_type+0x72) [0xf7dc7ca2]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_call_method_each_type+0x4b6) [0xf7dc80e6]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_sendish+0x3a9) [0xf7dbe239]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_exec_core+0x29d) [0xf7dc112d]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_vm_exec+0x124) [0xf7dc6314]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_iseq_eval+0xe6) [0xf7dc71e6]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(require_internal+0x753) [0xf7c8b093]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_require_string+0x32) [0xf7c8c2b2]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_f_require_relative+0x3a) [0xf7c8c35a]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_call_cfunc_with_frame+0x12b) [0xf7dbbe4b]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_call_method_each_type+0x72) [0xf7dc7ca2]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_sendish+0x3a9) [0xf7dbe239]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(vm_exec_core+0x239) [0xf7dc10c9]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_vm_exec+0x124) [0xf7dc6314]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_iseq_eval_main+0xa1) [0xf7dc72b1]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(rb_ec_exec_node+0xed) [0xf7c3c59d]
/builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1(ruby_run_node+0x5e) [0xf7c3fe2e]
/builddir/build/BUILD/ruby-3.0.1/ruby(main+0x77) [0x5664b1d7]
-- Other runtime information -----------------------------------------------
* Loaded script: ./test/runner.rb: TestSocket#test_timestamp
* Loaded features:
    0 enumerator.so
    1 thread.rb
    2 rational.so
    3 complex.so
    4 ruby2_keywords.rb
    5 /builddir/build/BUILD/ruby-3.0.1/.ext/i386-linux/enc/encdb.so
    6 /builddir/build/BUILD/ruby-3.0.1/.ext/i386-linux/enc/trans/transdb.so
    7 /builddir/build/BUILD/ruby-3.0.1/abrt.rb
    8 /builddir/build/BUILD/ruby-3.0.1/rbconfig.rb
    9 /builddir/build/BUILD/ruby-3.0.1/lib/optparse.rb
   10 /builddir/build/BUILD/ruby-3.0.1/tool/lib/leakchecker.rb
   11 /builddir/build/BUILD/ruby-3.0.1/tool/lib/minitest/unit.rb
   12 /builddir/build/BUILD/ruby-3.0.1/lib/open3.rb
[…]
 1739 /builddir/build/BUILD/ruby-3.0.1/lib/rdoc/known_classes.rb
 1740 /builddir/build/BUILD/ruby-3.0.1/lib/rdoc/ghost_method.rb
 1741 /builddir/build/BUILD/ruby-3.0.1/lib/rdoc/meta_method.rb
 1742 /builddir/build/BUILD/ruby-3.0.1/lib/rdoc/servlet.rb
 1743 /builddir/build/BUILD/ruby-3.0.1/.ext/i386-linux/-test-/random.so
* Process memory map:
5664a000-5664b000 r--p 00000000 fc:05 135404060                          /builddir/build/BUILD/ruby-3.0.1/ruby
5664b000-5664c000 r-xp 00001000 fc:05 135404060                          /builddir/build/BUILD/ruby-3.0.1/ruby
5664c000-5664d000 r--p 00002000 fc:05 135404060                          /builddir/build/BUILD/ruby-3.0.1/ruby
5664d000-5664e000 r--p 00002000 fc:05 135404060                          /builddir/build/BUILD/ruby-3.0.1/ruby
5664e000-5664f000 rw-p 00003000 fc:05 135404060                          /builddir/build/BUILD/ruby-3.0.1/ruby
5854e000-649f9000 rw-p 00000000 00:00 0                                  [heap]
ea9a3000-ee9a6000 rw-p 00000000 00:00 0 
ef9ab000-f09ac000 rw-p 00000000 00:00 0 
f0fff000-f1300000 rw-p 00000000 00:00 0 
f1300000-f1341000 rw-p 00000000 00:00 0 
f1341000-f1400000 ---p 00000000 00:00 0 
f1495000-f1496000 ---p 00000000 00:00 0 
f1496000-f1526000 rw-p 00000000 00:00 0 
f1526000-f1527000 ---p 00000000 00:00 0 
f1527000-f15b7000 rw-p 00000000 00:00 0 
f15b7000-f15b8000 ---p 00000000 00:00 0 
f15b8000-f1648000 rw-p 00000000 00:00 0 
f1648000-f1649000 ---p 00000000 00:00 0 
f1649000-f16d9000 rw-p 00000000 00:00 0 
f16d9000-f16da000 ---p 00000000 00:00 0 
f16da000-f176a000 rw-p 00000000 00:00 0 
f176a000-f176b000 ---p 00000000 00:00 0 
f176b000-f17fb000 rw-p 00000000 00:00 0 
f17fb000-f17fc000 ---p 00000000 00:00 0 
f17fc000-f188c000 rw-p 00000000 00:00 0 
f188c000-f188d000 ---p 00000000 00:00 0 
f188d000-f191d000 rw-p 00000000 00:00 0 
f191d000-f191e000 ---p 00000000 00:00 0 
f191e000-f19ae000 rw-p 00000000 00:00 0 
f19ae000-f19af000 ---p 00000000 00:00 0 
f19af000-f1a3f000 rw-p 00000000 00:00 0 
f1a3f000-f1a40000 ---p 00000000 00:00 0 
f1a40000-f1ad0000 rw-p 00000000 00:00 0 
f1b2b000-f1b2c000 ---p 00000000 00:00 0 
f1b2c000-f1bbc000 rw-p 00000000 00:00 0 
f1bbc000-f1bbd000 ---p 00000000 00:00 0 
f1bbd000-f1c4d000 rw-p 00000000 00:00 0 
f1c4d000-f1c4e000 ---p 00000000 00:00 0 
f1c4e000-f1cde000 rw-p 00000000 00:00 0 
f1cde000-f1cdf000 ---p 00000000 00:00 0 
f1cdf000-f1d6f000 rw-p 00000000 00:00 0 
f1d6f000-f1d70000 ---p 00000000 00:00 0 
f1d70000-f1e00000 rw-p 00000000 00:00 0 
f1e00000-f1e25000 rw-p 00000000 00:00 0 
f1e25000-f1f00000 ---p 00000000 00:00 0 
f1f6f000-f1f70000 ---p 00000000 00:00 0 
f1f70000-f2000000 rw-p 00000000 00:00 0 
f2000000-f20f5000 rw-p 00000000 00:00 0 
f20f5000-f2100000 ---p 00000000 00:00 0 
f216f000-f2170000 ---p 00000000 00:00 0 
f2170000-f2200000 rw-p 00000000 00:00 0 
f2200000-f22ff000 rw-p 00000000 00:00 0 
f22ff000-f2300000 ---p 00000000 00:00 0 
f2300000-f2400000 rw-p 00000000 00:00 0 
f2400000-f24fd000 rw-p 00000000 00:00 0 
f24fd000-f2500000 ---p 00000000 00:00 0 
f2500000-f25fe000 rw-p 00000000 00:00 0 
f25fe000-f2600000 ---p 00000000 00:00 0 
f2600000-f26fe000 rw-p 00000000 00:00 0 
f26fe000-f2700000 ---p 00000000 00:00 0 
f276f000-f2770000 ---p 00000000 00:00 0 
f2770000-f2800000 rw-p 00000000 00:00 0 
f2800000-f28ff000 rw-p 00000000 00:00 0 
f28ff000-f2900000 ---p 00000000 00:00 0 
f2900000-f29fd000 rw-p 00000000 00:00 0 
f29fd000-f2a00000 ---p 00000000 00:00 0 
f2a6f000-f2a70000 ---p 00000000 00:00 0 
f2a70000-f2b00000 rw-p 00000000 00:00 0 
f2b00000-f2c00000 rw-p 00000000 00:00 0 
f2c6f000-f2c70000 ---p 00000000 00:00 0 
f2c70000-f2d00000 rw-p 00000000 00:00 0 
f2d00000-f2d39000 rw-p 00000000 00:00 0 
f2d39000-f2e00000 ---p 00000000 00:00 0 
f2e6f000-f2e70000 ---p 00000000 00:00 0 
f2e70000-f2f00000 rw-p 00000000 00:00 0 
f2f00000-f2fff000 rw-p 00000000 00:00 0 
f2fff000-f3000000 ---p 00000000 00:00 0 
f3000000-f309d000 rw-p 00000000 00:00 0 
f309d000-f3100000 ---p 00000000 00:00 0 
f3170000-f3171000 r--p 00000000 fc:05 135404190                          /builddir/build/BUILD/ruby-3.0.1/.ext/i386-linux/enc/trans/big5.so
f3171000-f3172000 r-xp 00001000 fc:05 135404190                          /builddir/build/BUILD/ruby-3.0.1/.ext/i386-linux/enc/trans/big5.so
f3172000-f31fe000 r--p 00002000 fc:05 135404190                          /builddir/build/BUILD/ruby-3.0.1/.ext/i386-linux/enc/trans/big5.so
f31fe000-f31ff000 r--p 0008d000 fc:05 135404190                          /builddir/build/BUILD/ruby-3.0.1/.ext/i386-linux/enc/trans/big5.so
f31ff000-f3200000 rw-p 00000000 00:00 0 
f3200000-f3300000 rw-p 00000000 00:00 0 
f3300000-f33fe000 rw-p 00000000 00:00 0 
f33fe000-f3400000 ---p 00000000 00:00 0 
f3400000-f34ff000 rw-p 00000000 00:00 0 
f34ff000-f3500000 ---p 00000000 00:00 0 
f3500000-f35ff000 rw-p 00000000 00:00 0 
f35ff000-f3600000 ---p 00000000 00:00 0 
f3600000-f3655000 rw-p 00000000 00:00 0 
f3655000-f3700000 ---p 00000000 00:00 0 
f3700000-f373a000 rw-p 00000000 00:00 0 
f373a000-f3800000 ---p 00000000 00:00 0 
f386f000-f3870000 ---p 00000000 00:00 0 
f3870000-f3900000 rw-p 00000000 00:00 0 
f3900000-f3a00000 rw-p 00000000 00:00 0 
f3a6f000-f3a70000 ---p 00000000 00:00 0 
f3a70000-f3b00000 rw-p 00000000 00:00 0 
f3b00000-f3bd8000 rw-p 00000000 00:00 0 
f3bd8000-f3c00000 ---p 00000000 00:00 0 
f3c3c000-f3c3d000 r--p 00000000 fc:05 135404207                          /builddir/build/BUILD/ruby-3.0.1/.ext/i386-linux/enc/trans/gbk.so
f3c3d000-f3c3e000 r-xp 00001000 fc:05 135404207                          /builddir/build/BUILD/ruby-3.0.1/.ext/i386-linux/enc/trans/gbk.so
f3c3e000-f3c6d000 r--p 00002000 fc:05 135404207                          /builddir/build/BUILD/ruby-3.0.1/.ext/i386-linux/enc/trans/gbk.so
f3c6d000-f3c6e000 r--p 00030000 fc:05 135404207                          /builddir/build/BUILD/ruby-3.0.1/.ext/i386-linux/enc/trans/gbk.so
f3c6e000-f3c6f000 rw-p 00000000 00:00 0 
f3c6f000-f3c70000 ---p 00000000 00:00 0 
f3c70000-f3d00000 rw-p 00000000 00:00 0 
[…]
f777f000-f7780000 r--p 00000000 fc:05 68751957                           /builddir/build/BUILD/ruby-3.0.1/.ext/i386-linux/monitor.so
f7780000-f7781000 r-xp 00001000 fc:05 68751957                           /builddir/build/BUILD/ruby-3.0.1/.ext/i386-linux/monitor.so
f7781000-f7782000 r--p 00002000 fc:05 68751957                           /builddir/build/BUILD/ruby-3.0.1/.ext/i386-linux/monitor.so
f7782000-f7783000 r--p 00002000 fc:05 68751957                           /builddir/build/BUILD/ruby-3.0.1/.ext/i386-linux/monitor.so
f7783000-f7807000 rw-p 00000000 00:00 0 
f7807000-f7813000 r--p 00000000 fc:05 270743753                          /usr/lib/libm.so.6
f7813000-f7899000 r-xp 0000c000 fc:05 270743753                          /usr/lib/libm.so.6
f7899000-f78cf000 r--p 00092000 fc:05 270743753                          /usr/lib/libm.so.6
f78cf000-f78d0000 ---p 000c8000 fc:05 270743753                          /usr/lib/libm.so.6
f78d0000-f78d1000 r--p 000c8000 fc:05 270743753                          /usr/lib/libm.so.6
f78d1000-f78d2000 rw-p 000c9000 fc:05 270743753                          /usr/lib/libm.so.6
f78d2000-f78d3000 r--p 00000000 fc:05 270751070                          /usr/lib/libcrypt.so.2.0.0
f78d3000-f78ea000 r-xp 00001000 fc:05 270751070                          /usr/lib/libcrypt.so.2.0.0
f78ea000-f7904000 r--p 00018000 fc:05 270751070                          /usr/lib/libcrypt.so.2.0.0
f7904000-f7905000 ---p 00032000 fc:05 270751070                          /usr/lib/libcrypt.so.2.0.0
f7905000-f7906000 r--p 00032000 fc:05 270751070                          /usr/lib/libcrypt.so.2.0.0
f7906000-f790f000 rw-p 00000000 00:00 0 
f790f000-f791a000 r--p 00000000 fc:05 270765334                          /usr/lib/libgmp.so.10.4.0
f791a000-f798a000 r-xp 0000b000 fc:05 270765334                          /usr/lib/libgmp.so.10.4.0
f798a000-f799d000 r--p 0007b000 fc:05 270765334                          /usr/lib/libgmp.so.10.4.0
f799d000-f799e000 r--p 0008d000 fc:05 270765334                          /usr/lib/libgmp.so.10.4.0
f799e000-f799f000 rw-p 0008e000 fc:05 270765334                          /usr/lib/libgmp.so.10.4.0
f799f000-f79a1000 r--p 00000000 fc:05 270743759                          /usr/lib/librt.so.1
f79a1000-f79a6000 r-xp 00002000 fc:05 270743759                          /usr/lib/librt.so.1
f79a6000-f79a8000 r--p 00007000 fc:05 270743759                          /usr/lib/librt.so.1
f79a8000-f79a9000 r--p 00008000 fc:05 270743759                          /usr/lib/librt.so.1
f79a9000-f79aa000 rw-p 00009000 fc:05 270743759                          /usr/lib/librt.so.1
f79aa000-f79ac000 r--p 00000000 fc:05 270750594                          /usr/lib/libz.so.1.2.11
f79ac000-f79ba000 r-xp 00002000 fc:05 270750594                          /usr/lib/libz.so.1.2.11
f79ba000-f79c1000 r--p 00010000 fc:05 270750594                          /usr/lib/libz.so.1.2.11
f79c1000-f79c2000 ---p 00017000 fc:05 270750594                          /usr/lib/libz.so.1.2.11
f79c2000-f79c3000 r--p 00017000 fc:05 270750594                          /usr/lib/libz.so.1.2.11
f79c3000-f79c4000 rw-p 00000000 00:00 0 
f79c4000-f79e6000 r--p 00000000 fc:05 270743751                          /usr/lib/libc.so.6
f79e6000-f7b24000 r-xp 00022000 fc:05 270743751                          /usr/lib/libc.so.6
f7b24000-f7b93000 r--p 00160000 fc:05 270743751                          /usr/lib/libc.so.6
f7b93000-f7b94000 ---p 001cf000 fc:05 270743751                          /usr/lib/libc.so.6
f7b94000-f7b96000 r--p 001cf000 fc:05 270743751                          /usr/lib/libc.so.6
f7b96000-f7b98000 rw-p 001d1000 fc:05 270743751                          /usr/lib/libc.so.6
f7b98000-f7ba1000 rw-p 00000000 00:00 0 
f7ba2000-f7ba4000 r-xp 00000000 00:00 0 
f7ba4000-f7bc1000 r--p 00000000 fc:05 135404056                          /builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1
f7bc1000-f7de2000 r-xp 0001d000 fc:05 135404056                          /builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1
f7de2000-f7f62000 r--p 0023e000 fc:05 135404056                          /builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1
f7f62000-f7f68000 r--p 003bd000 fc:05 135404056                          /builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1
f7f68000-f7f69000 rw-p 003c3000 fc:05 135404056                          /builddir/build/BUILD/ruby-3.0.1/libruby.so.3.0.1
f7f69000-f7f72000 rw-p 00000000 00:00 0 
f7f72000-f7f76000 r--p 00000000 00:00 0                                  [vvar]
f7f76000-f7f78000 r-xp 00000000 00:00 0                                  [vdso]
f7f78000-f7f79000 r--p 00000000 fc:05 270743747                          /usr/lib/ld-linux.so.2
f7f79000-f7f9c000 r-xp 00001000 fc:05 270743747                          /usr/lib/ld-linux.so.2
f7f9c000-f7fa9000 r--p 00024000 fc:05 270743747                          /usr/lib/ld-linux.so.2
f7fa9000-f7fab000 r--p 00030000 fc:05 270743747                          /usr/lib/ld-linux.so.2
f7fab000-f7fac000 rw-p 00032000 fc:05 270743747                          /usr/lib/ld-linux.so.2
ff29e000-ffa9d000 rw-p 00000000 00:00 0                                  [stack]
make: *** [uncommon.mk:801: yes-test-all] Aborted (core dumped)

--- Additional comment from Florian Weimer on 2021-06-23 09:57:03 CEST ---

Comment 1 Jun Aruga 2021-06-25 11:24:53 UTC
> This issue looks like it might impact ruby in Red Hat Enterprise Linux 9 once we switch to glibc 2.34.

I see the glibc version is 2.33.9000 on Fedora rawhide. So, the glibc 2.34 is newer than Fedora rawhide.

Comment 2 Florian Weimer 2021-06-25 11:28:36 UTC
(In reply to Jun Aruga from comment #1)
> > This issue looks like it might impact ruby in Red Hat Enterprise Linux 9 once we switch to glibc 2.34.
> 
> I see the glibc version is 2.33.9000 on Fedora rawhide. So, the glibc 2.34
> is newer than Fedora rawhide.

2.33.9000 is the version number of the glibc 2.34 pre-releases.

Comment 3 Florian Weimer 2021-06-25 12:41:21 UTC
This is likely a bug in the glibc 2.34 time64 support code.

How can I run the failing test in isolation? It is likely test_timestamp in test/socket/test_socket.rb.

Unfortunately I do not know anything about Ruby and its testsuite.

Comment 4 Jarek Prokop 2021-06-25 12:53:56 UTC
To rerun that single test I run:
~~~
$ ./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/' -v -n test_timestamp -- test/socket/test_socket.rb
~~~

In the Ruby build dir: `/builddir/build/BUILD/ruby-2.7.3` -- I have Ruby 2.7.3 but it should be applicable to Ruby 3.0 as well without a problem AFAIK.

Comment 5 Vít Ondruch 2021-06-25 13:00:38 UTC
(In reply to Jarek Prokop from comment #4)
> To rerun that single test I run:
> ~~~
> $ ./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/' -v -n test_timestamp
> -- test/socket/test_socket.rb
> ~~~
> 
> In the Ruby build dir: `/builddir/build/BUILD/ruby-2.7.3` -- I have Ruby
> 2.7.3 but it should be applicable to Ruby 3.0 as well without a problem
> AFAIK.

And one can get to the command above via:

~~~
$ make test-all TESTS='-v test/socket/test_socket.rb -n /test_timestamp$$/'
./revision.h unchanged
Run options: 
  --seed=68017
  "--ruby=./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems"
  --excludes-dir=./test/excludes
  --name=!/memory_leak/
  -v
  -n
  "/test_timestamp$/"

# Running tests:

[1/1] TestSocket#test_timestamp = 0.00 s
Finished tests in 0.008270s, 120.9123 tests/s, 1450.9482 assertions/s.
1 tests, 12 assertions, 0 failures, 0 errors, 0 skips

ruby -v: ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-linux]
~~~

Comment 6 Vít Ondruch 2021-06-25 13:03:01 UTC
BTW the `miniruby` is statically linked version of Ruby, which might be missing some features, but should be good enough for debugging. And I guess that the Jarek's version could have been further shortened, there is still quite some noise.

Comment 7 Jun Aruga 2021-06-25 13:57:30 UTC
> How can I run the failing test in isolation? It is likely test_timestamp in test/socket/test_socket.rb.

Florian, Here is my way.

Run the configure script with your preferred flags.


```
$ autoconf
$ optflags=-O0 debugflags="-g3 -ggdb3 -gdwarf-4" \
  ./configure \
  --prefix=path/to/prefix \
  --enable-shared
$ make
```

Run the specific test, seeing the actual executed command with `V=1`.

```
$ make test-all V=1 TESTS="-v test/socket/test_socket.rb -n TestSocket#test_timestamp"
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/  -v test/socket/test_socket.rb -n TestSocket#test_timestamp
...
[1/0] TestSocket#test_timestamp = 0.00 s
Finished tests in 0.005708s, 175.2008 tests/s, 2102.4094 assertions/s.
1 tests, 12 assertions, 0 failures, 0 errors, 0 skips

ruby -v: ruby 3.1.0dev (2021-06-23T12:48:42Z master 7c31ecd3ac) [aarch64-linux]
```

Add the `gdb` command before the binary `miniruby` of above command line, removing `--name=!/memory_leak/`.


```
$ gdb -q -ex "set breakpoint pending on" --args ./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 -v test/socket/test_socket.rb -n TestSocket#test_timestamp
Reading symbols from ./miniruby...
warning: File "/home/jaruga/git/ruby/ruby/.gdbinit" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
To enable execution of this file add
	add-auto-load-safe-path /home/jaruga/git/ruby/ruby/.gdbinit
line to your configuration file "/home/jaruga/.gdbinit".
To completely disable this security protection add
	set auto-load safe-path /
line to your configuration file "/home/jaruga/.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"
(gdb) 
```

As an alternative. There is `make gdb-ruby` command. But I have not succeeded to run it properly yet.

```
$ make gdb-ruby V=1 TESTRUN_SCRIPT='./test/runner.rb -v test/socket/test_socket.rb -n TestSocket#test_timestamp'
```

Comment 8 Jun Aruga 2021-06-25 14:06:31 UTC
Another way to debug is to create a minimal reproducer script based on the test `test_timestamp`.
https://github.com/ruby/ruby/blob/v3_0_1/test/socket/test_socket.rb#L496-L510
Then run it from `ruby` command like this.

```
$ gdb -q -ex "set breakpoint pending on" --args path/to/ruby test.rb
```

Comment 9 Jun Aruga 2021-06-25 14:14:39 UTC
Though I haven't checked the ruby on RHEL 9. If the rubypick RPM is installed on RHEL 9 like Fedora, the `/usr/bin/ruby` might be a shell script, not binary. On the environment you can specify the `ruby-mri` to debug instead of `ruby`.

Here is the result on my Fedora 33.

```
$ cat /etc/fedora-release 
Fedora release 33 (Thirty Three)

$ file /usr/bin/ruby
/usr/bin/ruby: Bourne-Again shell script, ASCII text executable

$ file /usr/bin/ruby-mri 
/usr/bin/ruby-mri: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=f1f73707ee8fdb0ccc6fe7d8c9eacb2ed19e9e39, for GNU/Linux 3.2.0, stripped
```

Comment 10 Jun Aruga 2021-06-25 16:15:34 UTC
> As an alternative. There is `make gdb-ruby` command. But I have not succeeded to run it properly yet.

I found the way to run it properly. You can edit `run.gdb` file adding a breakpoint, then run.

```
$ cp -p run.gdb run.gdb.org

$ vi run.gdb

$ diff -u run.gdb.org run.gdb
--- run.gdb.org 2021-06-25 16:10:56.044523121 +0000
+++ run.gdb 2021-06-25 16:10:19.452419169 +0000
@@ -1,4 +1,5 @@
 set breakpoint pending on
+b main
 b rb_assert_failure
 b rb_bug
 b ruby_debug_breakpoint

$ make gdb-ruby V=1 TESTRUN_SCRIPT='./test/runner.rb -v test/socket/test_socket.rb -n TestSocket#test_timestamp'
...
Breakpoint 1, main (argc=6, argv=0xfffffffff3a8) at ./main.c:35
35  {
(gdb) 
```

Comment 11 Florian Weimer 2021-06-25 16:29:02 UTC
Thanks for the suggestions. I think I see what is going on, and I've raised the issue here:

[PATCH v3 05/24] linux: Add fallback for 64-bit time_t SO_TIMESTAMP{NS}
https://sourceware.org/pipermail/libc-alpha/2021-June/128113.html

Comment 12 Florian Weimer 2021-07-07 12:53:55 UTC
This is not a ruby bug, see bug 1975140.