From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-2.6 required=3.0 tests=AWL,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY shortcircuit=no autolearn=no autolearn_force=no version=3.4.2 Received: from neon.ruby-lang.org (neon.ruby-lang.org [221.186.184.75]) by dcvr.yhbt.net (Postfix) with ESMTP id D2D1F1F4B4 for ; Wed, 3 Feb 2021 05:50:14 +0000 (UTC) Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 0E5B01209CA; Wed, 3 Feb 2021 14:49:22 +0900 (JST) Received: from xtrwkhkc.outbound-mail.sendgrid.net (xtrwkhkc.outbound-mail.sendgrid.net [167.89.16.28]) by neon.ruby-lang.org (Postfix) with ESMTPS id 65736120971 for ; Wed, 3 Feb 2021 14:49:19 +0900 (JST) Received: by filterdrecv-p3las1-598b7f99cd-xzk5c with SMTP id filterdrecv-p3las1-598b7f99cd-xzk5c-19-601A398F-25 2021-02-03 05:50:07.435348053 +0000 UTC m=+454583.701552352 Received: from herokuapp.com (unknown) by ismtpd0090p1iad2.sendgrid.net (SG) with ESMTP id vV1xRnIlSoaIjI1tJ6OVeg for ; Wed, 03 Feb 2021 05:50:07.316 +0000 (UTC) Date: Wed, 03 Feb 2021 05:50:07 +0000 (UTC) From: xtkoba+ruby@gmail.com Message-ID: References: Mime-Version: 1.0 X-Redmine-MailingListIntegration-Message-Ids: 78307 X-Redmine-Project: ruby-master X-Redmine-Issue-Tracker: Bug X-Redmine-Issue-Id: 17585 X-Redmine-Issue-Author: vo.x X-Redmine-Sender: xtkoba X-Mailer: Redmine X-Redmine-Host: bugs.ruby-lang.org X-Redmine-Site: Ruby Issue Tracking System X-Auto-Response-Suppress: All Auto-Submitted: auto-generated X-SG-EID: =?us-ascii?Q?75w3+RXRrinEP3ykAS=2F1WzD2vTMrJdTeEiaFbXc9IwXRFLDczFaozz8+m=2Fp5qV?= =?us-ascii?Q?6Lke3z1cavoPQP4upfeVzzjB9I9Lr=2FCte4MqHfU?= =?us-ascii?Q?cV4Y=2F0joqE36MeCZE=2FExKLJOvkDCoQ4qI4wFrs5?= =?us-ascii?Q?MVveRhtmVEI4MD9RWn3rdJIotdX4uWwl9+CO13D?= =?us-ascii?Q?mAps1DZj6wFOLwikdLNwL4U4Q5MF6NGS1ovmS1z?= =?us-ascii?Q?KoHVDqTAeHeWz+j0A=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 102387 Subject: [ruby-core:102387] [Ruby master Bug#17585] DWARF5 support? X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Ruby developers List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" Issue #17585 has been updated by xtkoba (Tee KOBAYASHI). "A segfault in the segfault handler" occurs also on my x86_64-linux and aarch64-linux when `gcc-10.2.0 -gdwarf-5` is used. A backtrace with GDB: ``` (gdb) run -e 'Process.kill :SEGV, $$' Starting program: /var/tmp/ruby.build/ruby-3.0.0-x86_64-gcc.dwarf5/miniruby -e 'Process.kill :SEGV, $$' [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Program received signal SIGSEGV, Segmentation fault. 0x00007ffff7befdf7 in kill () from /lib64/libc.so.6 (gdb) cont Continuing. -e:1: [BUG] Segmentation fault at 0x000003e800000a68 ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-linux] -- Control frame information ----------------------------------------------- c:0003 p:---- s:0012 e:000011 CFUNC :kill c:0002 p:0015 s:0006 e:000005 EVAL -e:1 [FINISH] c:0001 p:0000 s:0003 E:000ac0 (none) [FINISH] -- Ruby level backtrace information ---------------------------------------- -e:1:in `
' -e:1:in `kill' -- Machine register context ------------------------------------------------ RIP: 0x00007ffff7befdf7 RBP: 0x00007fffffffc6d0 RSP: 0x00007fffffffc678 RAX: 0x0000000000000000 RBX: 0x000055555599e0c0 RCX: 0x00007ffff7befdf7 RDX: 0x000000000000000b RDI: 0x0000000000000a68 RSI: 0x000000000000000b R8: 0x00005555557192c4 R9: 0x0000555555a08228 R10: 0xffffffffffffff3f R11: 0x0000000000000206 R12: 0x000055555557d2c0 R13: 0x0000000000000000 R14: 0x0000555555adc358 R15: 0x00007ffff7788fa0 EFL: 0x0000000000000206 -- C level backtrace information ------------------------------------------- Program received signal SIGSEGV, Segmentation fault. uleb128 (p=0x555555a965f8) at addr2line.c:198 198 unsigned char b = *(unsigned char *)(*p)++; (gdb) bt #0 uleb128 (p=0x555555a965f8) at addr2line.c:198 #1 0x000055555582f870 in di_read_die (reader=0x555555a965a0, die=0x555555a96390) at addr2line.c:1327 #2 0x000055555582ff4b in debug_info_read (reader=0x555555a965a0, num_traces=23, traces=0x555555998900 , lines=0x555555adf7c0, offset=0) at addr2line.c:1557 #3 0x0000555555830cc8 in fill_lines (num_traces=23, traces=0x555555998900 , check_debuglink=1, objp=0x555555a96ea0, lines=0x555555adf7c0, offset=0) at addr2line.c:1813 #4 0x0000555555831554 in rb_dump_backtrace_with_lines (num_traces=23, traces=0x555555998900 ) at addr2line.c:2207 #5 0x000055555582443b in rb_print_backtrace () at vm_dump.c:760 #6 0x00005555558248b2 in rb_vm_bugreport (ctx=0x555555a97240) at vm_dump.c:998 #7 0x0000555555609c11 in rb_bug_for_fatal_signal (default_sighandler=0x0, sig=11, ctx=0x555555a97240, fmt=0x55555587718b "Segmentation fault at %p") at error.c:786 #8 0x0000555555774bc7 in sigsegv (sig=11, info=0x555555a97370, ctx=0x555555a97240) at signal.c:960 #9 #10 0x00007ffff7befdf7 in kill () from /lib64/libc.so.6 #11 0x000055555577439d in rb_f_kill (argc=2, argv=0x7ffff7689048) at signal.c:481 (...snip...) (gdb) p *p $1 = 0x401 ``` I propose the following change as a workaround: ``` --- a/addr2line.c +++ b/addr2line.c @@ -1471,7 +1471,7 @@ } reader->cu_end = reader->p + unit_length; version = read_uint16(&reader->p); - if (version > 5) { + if (version > 4) { return -1; } else if (version == 5) { ``` ---------------------------------------- Bug #17585: DWARF5 support? https://bugs.ruby-lang.org/issues/17585#change-90254 * Author: vo.x (Vit Ondruch) * Status: Open * Priority: Normal * ruby -v: ruby -v: ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [armv7hl-linux] * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN ---------------------------------------- Fedora recently switched from DWARF4 to DWARF5 and since that time, I observe test suite errors on ppc64le: ~~~ 1) Failure: TestBugReporter#test_bug_reporter_add [/builddir/build/BUILD/ruby-3.0.0/test/-ext-/bug_reporter/test_bug_reporter.rb:24]: pid 1691449 killed by SIGSEGV (signal 11) (core dumped) | -:1: [BUG] Segmentation fault at 0x000003e80019cf39 | ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [powerpc64le-linux] | | -- Control frame information ----------------------------------------------- | c:0003 p:---- s:0012 e:000011 CFUNC :kill | c:0002 p:0021 s:0006 e:000005 EVAL -:1 [FINISH] | c:0001 p:0000 s:0003 E:000480 (none) [FINISH] | | -- Ruby level backtrace information ---------------------------------------- | -:1:in `
' | -:1:in `kill' | | -- C level backtrace information ------------------------------------------- .. 1. [2/2] Assertion for "stderr" | Expected /Sample bug reporter: 12345/ | to match | "-- Control frame information -----------------------------------------------\n"+ | "c:0003 p:---- s:0012 e:000011 CFUNC :kill\n"+ | "c:0002 p:0021 s:0006 e:000005 EVAL -:1 [FINISH]\n"+ | "c:0001 p:0000 s:0003 E:000480 (none) [FINISH]\n\n"+ | "-- Ruby level backtrace information ----------------------------------------\n"+ | "-:1:in `
'\n"+ | "-:1:in `kill'\n\n"+ | "-- C level backtrace information -------------------------------------------\n" | after 4 patterns with 119 characters. 2) Failure: TestRubyOptions#test_segv_loaded_features [/builddir/build/BUILD/ruby-3.0.0/test/ruby/test_rubyoptions.rb:748]: pid 1721938 killed by SIGSEGV (signal 11) (core dumped) | -e:1: [BUG] Segmentation fault at 0x000003e8001a4652 | ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [powerpc64le-linux] | | -- Control frame information ----------------------------------------------- | c:0003 p:---- s:0012 e:000011 CFUNC :kill | c:0002 p:0016 s:0006 e:000005 BLOCK -e:1 [FINISH] | c:0001 p:0000 s:0003 E:000f80 (none) [FINISH] | | -- Ruby level backtrace information ---------------------------------------- | -e:1:in `block in
' | -e:1:in `kill' | | -- C level backtrace information ------------------------------------------- .. 1. [2/2] Assertion for "stderr" | <""> expected but was | <"-- C level backtrace information -------------------------------------------\n">. 3) Failure: TestRubyOptions#test_segv_setproctitle [/builddir/build/BUILD/ruby-3.0.0/test/ruby/test_rubyoptions.rb:762]: pid 1721957 killed by SIGSEGV (signal 11) (core dumped) | -e:1: [BUG] Segmentation fault at 0x000003e8001a4665 | ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [powerpc64le-linux] | | -- Control frame information ----------------------------------------------- | c:0003 p:---- s:0012 e:000011 CFUNC :kill | c:0002 p:0029 s:0006 e:000005 EVAL -e:1 [FINISH] | c:0001 p:0000 s:0003 E:0015c0 (none) [FINISH] | | -- Ruby level backtrace information ---------------------------------------- | -e:1:in `
' | -e:1:in `kill' | | -- C level backtrace information ------------------------------------------- .. 1. [2/2] Assertion for "stderr" | <""> expected but was | <"-- C level backtrace information -------------------------------------------\n">. 4) Failure: TestRubyOptions#test_segv_test [/builddir/build/BUILD/ruby-3.0.0/test/ruby/test_rubyoptions.rb:742]: pid 1721966 killed by SIGSEGV (signal 11) (core dumped) | -e:1: [BUG] Segmentation fault at 0x000003e8001a466e | ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [powerpc64le-linux] | | -- Control frame information ----------------------------------------------- | c:0003 p:---- s:0012 e:000011 CFUNC :kill | c:0002 p:0015 s:0006 e:000005 EVAL -e:1 [FINISH] | c:0001 p:0000 s:0003 E:001fa0 (none) [FINISH] | | -- Ruby level backtrace information ---------------------------------------- | -e:1:in `
' | -e:1:in `kill' | | -- C level backtrace information ------------------------------------------- .. 1. [2/2] Assertion for "stderr" | <""> expected but was | <"-- C level backtrace information -------------------------------------------\n">. Finished tests in 1111.355067s, 18.8689 tests/s, 2396.5689 assertions/s. 20970 tests, 2663439 assertions, 4 failures, 0 errors, 60 skips ruby -v: ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [powerpc64le-linux] ~~~ And similar issues on armv7hl: ~~~ 1) Failure: TestBugReporter#test_bug_reporter_add [/builddir/build/BUILD/ruby-3.0.0/test/-ext-/bug_reporter/test_bug_reporter.rb:24]: pid 722 killed by SIGSEGV (signal 11) (core dumped) | -:1: [BUG] Segmentation fault at 0x000002d2 | ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [armv7hl-linux] | | -- Control frame information ----------------------------------------------- | c:0003 p:---- s:0012 e:000011 CFUNC :kill | c:0002 p:0021 s:0006 e:000005 EVAL -:1 [FINISH] | c:0001 p:0000 s:0003 E:000c98 (none) [FINISH] | | -- Ruby level backtrace information ---------------------------------------- | -:1:in `
' | -:1:in `kill' | | -- Machine register context ------------------------------------------------ | "r0: 0x00000000 "r1: 0x0000000b "r2: 0x00000001 "r3: 0x00000001 "r4: 0x000002d2 | "r5: 0xb689a028 "r6: 0x0000000b "r7: 0x00000025 "r8: 0x00000002 "r9: 0x000002d2 | "r1: 0x00000001 "sp: 0xbe846d1c "fa: 0x00000000 | | -- C level backtrace information ------------------------------------------- .. 1. [2/2] Assertion for "stderr" | Expected /Sample bug reporter: 12345/ | to match | "-- Control frame information -----------------------------------------------\n"+ | "c:0003 p:---- s:0012 e:000011 CFUNC :kill\n"+ | "c:0002 p:0021 s:0006 e:000005 EVAL -:1 [FINISH]\n"+ | "c:0001 p:0000 s:0003 E:000c98 (none) [FINISH]\n\n"+ | "-- Ruby level backtrace information ----------------------------------------\n"+ | "-:1:in `
'\n"+ | "-:1:in `kill'\n\n"+ | "-- Machine register context ------------------------------------------------\n"+ | " \"r0: 0x00000000 \"r1: 0x0000000b \"r2: 0x00000001 \"r3: 0x00000001 \"r4: 0x000002d2\n"+ | " \"r5: 0xb689a028 \"r6: 0x0000000b \"r7: 0x00000025 \"r8: 0x00000002 \"r9: 0x000002d2\n"+ | " \"r1: 0x00000001 \"sp: 0xbe846d1c \"fa: 0x00000000\n\n"+ | "-- C level backtrace information -------------------------------------------\n" | after 4 patterns with 107 characters. 2) Failure: TestRubyOptions#test_segv_loaded_features [/builddir/build/BUILD/ruby-3.0.0/test/ruby/test_rubyoptions.rb:748]: pid 8085 killed by SIGSEGV (signal 11) (core dumped) | -e:1: [BUG] Segmentation fault at 0x00001f95 | ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [armv7hl-linux] | | -- Control frame information ----------------------------------------------- | c:0003 p:---- s:0012 e:000011 CFUNC :kill | c:0002 p:0016 s:0006 e:000005 BLOCK -e:1 [FINISH] | c:0001 p:0000 s:0003 E:000660 (none) [FINISH] | | -- Ruby level backtrace information ---------------------------------------- | -e:1:in `block in
' | -e:1:in `kill' | | -- Machine register context ------------------------------------------------ | "r0: 0x00000000 "r1: 0x0000000b "r2: 0x00000001 "r3: 0x00000001 "r4: 0x00001f95 | "r5: 0xb68e3028 "r6: 0x0000000b "r7: 0x00000025 "r8: 0x00000002 "r9: 0x00001f95 | "r1: 0x00000001 "sp: 0xbe8c5ac4 "fa: 0x00000000 | | -- C level backtrace information ------------------------------------------- .. 1. [2/2] Assertion for "stderr" | <""> expected but was | <"-- C level backtrace information -------------------------------------------\n">. 3) Failure: TestRubyOptions#test_segv_setproctitle [/builddir/build/BUILD/ruby-3.0.0/test/ruby/test_rubyoptions.rb:762]: pid 8092 killed by SIGSEGV (signal 11) (core dumped) | -e:1: [BUG] Segmentation fault at 0x00001f9c | ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [armv7hl-linux] | | -- Control frame information ----------------------------------------------- | c:0003 p:---- s:0012 e:000011 CFUNC :kill | c:0002 p:0029 s:0006 e:000005 EVAL -e:1 [FINISH] | c:0001 p:0000 s:0003 E:000550 (none) [FINISH] | | -- Ruby level backtrace information ---------------------------------------- | -e:1:in `
' | -e:1:in `kill' | | -- Machine register context ------------------------------------------------ | "r0: 0x00000000 "r1: 0x0000000b "r2: 0x00000001 "r3: 0x00000001 "r4: 0x00001f9c | "r5: 0xb685d028 "r6: 0x0000000b "r7: 0x00000025 "r8: 0x00000002 "r9: 0x00001f9c | "r1: 0x00000001 "sp: 0xbef7acfc "fa: 0x00000000 | | -- C level backtrace information ------------------------------------------- .. 1. [2/2] Assertion for "stderr" | <""> expected but was | <"-- C level backtrace information -------------------------------------------\n">. 4) Failure: TestRubyOptions#test_segv_test [/builddir/build/BUILD/ruby-3.0.0/test/ruby/test_rubyoptions.rb:742]: pid 8101 killed by SIGSEGV (signal 11) (core dumped) | -e:1: [BUG] Segmentation fault at 0x00001fa5 | ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [armv7hl-linux] | | -- Control frame information ----------------------------------------------- | c:0003 p:---- s:0012 e:000011 CFUNC :kill | c:0002 p:0015 s:0006 e:000005 EVAL -e:1 [FINISH] | c:0001 p:0000 s:0003 E:001f50 (none) [FINISH] | | -- Ruby level backtrace information ---------------------------------------- | -e:1:in `
' | -e:1:in `kill' | | -- Machine register context ------------------------------------------------ | "r0: 0x00000000 "r1: 0x0000000b "r2: 0x00000001 "r3: 0x00000001 "r4: 0x00001fa5 | "r5: 0xb68bc028 "r6: 0x0000000b "r7: 0x00000025 "r8: 0x00000002 "r9: 0x00001fa5 | "r1: 0x00000001 "sp: 0xbee96d3c "fa: 0x00000000 | | -- C level backtrace information ------------------------------------------- .. 1. [2/2] Assertion for "stderr" | <""> expected but was | <"-- C level backtrace information -------------------------------------------\n">. Finished tests in 1428.305544s, 14.6810 tests/s, 1866.1553 assertions/s. 20969 tests, 2665440 assertions, 4 failures, 0 errors, 56 skips ruby -v: ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [armv7hl-linux] ~~~ So is it really due to DWARF5? Why is that just on two platforms? -- https://bugs.ruby-lang.org/