Project

General

Profile

Actions

Bug #12925

closed

terminated by signal SIGSEGV (Address boundary error)

Added by josh.cheek (Josh Cheek) over 5 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.4.0dev (2016-11-02 trunk 56542) [x86_64-darwin15]
[ruby-core:78097]

Description

When I run this code

module SafeException
  refine Exception do
    alias message   message
    alias backtrace backtrace
  end
end

class Exception
  undef message
  undef backtrace # <-- comment this line out to see that message works as expected
end

using SafeException

begin
  raise RuntimeError, "hello", ["f1", "f2"]
rescue => e
  p e.message    # this works
  p e.backtrace  # this doesn't
end

In 2.3.1 and 2.4 (built last week), I get this:

fish: Job 25, 'ruby f2.rb' terminated by signal SIGSEGV (Address boundary error)

If I drop down to Ruby 2.2, I get this:

f2.rb:16: [BUG] vm_call0: unsupported method type (6)
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin15]

-- Crash Report log information --------------------------------------------
   See Crash Report log file under the one of following:
     * ~/Library/Logs/CrashReporter
     * /Library/Logs/CrashReporter
     * ~/Library/Logs/DiagnosticReports
     * /Library/Logs/DiagnosticReports
   for more details.

-- Control frame information -----------------------------------------------
c:0002 p:0055 s:0005 E:0025f8 EVAL   f2.rb:16 [FINISH]
c:0001 p:0000 s:0002 E:0003d0 TOP    [FINISH]

-- Ruby level backtrace information ----------------------------------------
f2.rb:16:in `<main>'

-- C level backtrace information -------------------------------------------
0   ruby                                0x000000010dc55dd5 rb_vm_bugreport + 149
1   ruby                                0x000000010daf73d4 rb_bug + 468
2   ruby                                0x000000010dc52c0f vm_call0_body + 2863
3   ruby                                0x000000010dc5312b rb_call0 + 427
4   ruby                                0x000000010dc43496 rb_funcall + 374
5   ruby                                0x000000010db0016e setup_exception + 638
6   ruby                                0x000000010daffed0 rb_raise_jump + 160
7   ruby                                0x000000010db01a25 rb_f_raise + 341
8   ruby                                0x000000010dc4c9c2 vm_call_cfunc + 1410
9   ruby                                0x000000010dc4baad vm_call_method + 909
10  ruby                                0x000000010dc38720 vm_exec_core + 13024
11  ruby                                0x000000010dc472da vm_exec + 138
12  ruby                                0x000000010dc48309 rb_iseq_eval_main + 393
13  ruby                                0x000000010daffa68 ruby_exec_internal + 152
14  ruby                                0x000000010daff976 ruby_run_node + 54
15  ruby                                0x000000010dab57af main + 79

-- Other runtime information -----------------------------------------------

* Loaded script: f2.rb

* Loaded features:

    0 enumerator.so
    1 rational.so
    2 complex.so
    3 /Users/josh/.rubies/ruby-2.2.0/lib/ruby/2.2.0/x86_64-darwin15/enc/encdb.bundle
    4 /Users/josh/.rubies/ruby-2.2.0/lib/ruby/2.2.0/x86_64-darwin15/enc/trans/transdb.bundle
    5 /Users/josh/.rubies/ruby-2.2.0/lib/ruby/2.2.0/unicode_normalize.rb
    6 /Users/josh/.rubies/ruby-2.2.0/lib/ruby/2.2.0/x86_64-darwin15/rbconfig.rb
    7 thread.rb
    8 /Users/josh/.rubies/ruby-2.2.0/lib/ruby/2.2.0/x86_64-darwin15/thread.bundle
    9 /Users/josh/.rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/compatibility.rb
   10 /Users/josh/.rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/defaults.rb
   11 /Users/josh/.rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/deprecate.rb
   12 /Users/josh/.rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/errors.rb
   13 /Users/josh/.rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/version.rb
   14 /Users/josh/.rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/requirement.rb
   15 /Users/josh/.rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/platform.rb
   16 /Users/josh/.rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/basic_specification.rb
   17 /Users/josh/.rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/stub_specification.rb
   18 /Users/josh/.rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/util/stringio.rb
   19 /Users/josh/.rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/specification.rb
   20 /Users/josh/.rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/exceptions.rb
   21 /Users/josh/.rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_gem.rb
   22 /Users/josh/.rubies/ruby-2.2.0/lib/ruby/2.2.0/monitor.rb
   23 /Users/josh/.rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb
   24 /Users/josh/.rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems.rb

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
Don't forget to include the above Crash Report log file.
For details: http://www.ruby-lang.org/bugreport.html

fish: Job 25, 'ruby f2.rb' terminated by signal SIGABRT (Abort)
Actions #1

Updated by nobu (Nobuyoshi Nakada) over 5 years ago

  • Status changed from Open to Closed

Applied in changeset r56766.


error.c: rb_get_backtrace

  • error.c (rb_get_backtrace): move from eval_error.c to call
    exc_backtrace directly. [ruby-core:78097] [Bug #12925]

Updated by nagachika (Tomoyuki Chikanaga) over 5 years ago

  • Backport changed from 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN to 2.1: DONTNEED, 2.2: DONTNEED, 2.3: REQUIRED

Updated by nobu (Nobuyoshi Nakada) over 5 years ago

  • Backport changed from 2.1: DONTNEED, 2.2: DONTNEED, 2.3: REQUIRED to 2.1: REQUIRED, 2.2: REQUIRED, 2.3: REQUIRED

Refinements and aliases are red herring.
All versions have this bug.

$ ruby1.9 -e 'class Exception; undef backtrace; end' -e 'raise "hello"'
Illegal instruction: 4
$ ruby2.0 -e 'class Exception; undef backtrace; end' -e 'raise "hello"'
Segmentation fault: 11
$ ruby2.1 -e 'class Exception; undef backtrace; end' -e 'raise "hello"'
Segmentation fault: 11
$ ruby2.2 -e 'class Exception; undef backtrace; end' -e 'raise "hello"'
Segmentation fault: 11
$ ruby2.3 -e 'class Exception; undef backtrace; end' -e 'raise "hello"'
Segmentation fault: 11

Updated by nagachika (Tomoyuki Chikanaga) over 5 years ago

  • Backport changed from 2.1: REQUIRED, 2.2: REQUIRED, 2.3: REQUIRED to 2.1: REQUIRED, 2.2: REQUIRED, 2.3: DONE

ruby_2_3 r56781 merged revision(s) 56766,56767.

Updated by usa (Usaku NAKAMURA) over 5 years ago

  • Backport changed from 2.1: REQUIRED, 2.2: REQUIRED, 2.3: DONE to 2.1: REQUIRED, 2.2: DONE, 2.3: DONE

ruby_2_2 r56786 merged revision(s) 56766,56767.

Actions

Also available in: Atom PDF