ruby / did_you_mean

The gem that has been saving people from typos since 2014

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Segfault if variable named 'current' exists

neilmiddleton opened this issue · comments

/Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb:10: [BUG] Segmentation fault at 0x00000000000000
ruby 2.3.0p0 (2015-12-25 revision 53290) [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.
Don't forget to include the above Crash Report log file in bug reports.

-- Control frame information -----------------------------------------------
c:0037 p:---- s:0145 e:000144 CFUNC  :local_variables
c:0036 p:0029 s:0142 e:000141 METHOD /Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/name_error_ [FINISH]
c:0035 p:---- s:0137 e:000136 CFUNC  :new
c:0034 p:0076 s:0133 e:000132 METHOD /Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/name_error_
c:0033 p:0039 s:0129 e:000128 METHOD /Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/core_ext/name_error.rb:24
c:0032 p:0008 s:0126 e:000125 METHOD /Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/core_ext/name_error.rb:20
c:0031 p:0054 s:0123 e:000120 METHOD /Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/core_ext/name_error.rb:13 [FINISH]
c:0030 p:---- s:0116 e:000115 CFUNC  :inspect
c:0029 p:---- s:0114 e:000113 CFUNC  :inspect
c:0028 p:---- s:0112 e:000111 CFUNC  :inspect
c:0027 p:---- s:0110 e:000109 CFUNC  :to_str
c:0026 p:---- s:0108 e:000107 CFUNC  :to_s
c:0025 p:0010 s:0105 e:000104 METHOD /Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/core_ext/name_error.rb:10 [FINISH]
c:0024 p:---- s:0100 e:000099 CFUNC  :message
c:0023 p:0073 s:0097 e:000096 METHOD /Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rspec-core-3.2.3/lib/rspec/core/notifications.rb:228
c:0022 p:0027 s:0093 e:000091 METHOD /Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rspec-core-3.2.3/lib/rspec/core/notifications.rb:174
c:0021 p:0016 s:0088 e:000087 METHOD /Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rspec-core-3.2.3/lib/rspec/core/notifications.rb:272
c:0020 p:0042 s:0083 e:000077 METHOD /Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rspec-core-3.2.3/lib/rspec/core/notifications.rb:199
c:0019 p:0018 s:0073 e:000071 BLOCK  /Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rspec-core-3.2.3/lib/rspec/core/notifications.rb:110 [FINISH]
c:0018 p:---- s:0068 e:000067 IFUNC
c:0017 p:---- s:0066 e:000065 CFUNC  :each
c:0016 p:---- s:0064 e:000063 CFUNC  :each_with_index
c:0015 p:0036 s:0061 e:000060 METHOD /Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rspec-core-3.2.3/lib/rspec/core/notifications.rb:109
c:0014 p:0031 s:0056 e:000054 METHOD /Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rspec-core-3.2.3/lib/rspec/core/formatters/base_text_formatter
c:0013 p:0013 s:0051 e:000050 BLOCK  /Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rspec-core-3.2.3/lib/rspec/core/reporter.rb:146 [FINISH]
c:0012 p:---- s:0048 e:000047 CFUNC  :each
c:0011 p:0014 s:0045 e:000044 METHOD /Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rspec-core-3.2.3/lib/rspec/core/reporter.rb:145
c:0010 p:0070 s:0040 e:000039 METHOD /Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rspec-core-3.2.3/lib/rspec/core/reporter.rb:124
c:0009 p:0024 s:0037 e:000035 METHOD /Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rspec-core-3.2.3/lib/rspec/core/reporter.rb:64
c:0008 p:0022 s:0032 e:000031 METHOD /Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:108
c:0007 p:0025 s:0028 e:000027 METHOD /Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:86
c:0006 p:0097 s:0023 e:000022 METHOD /Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:70
c:0005 p:0026 s:0016 e:000015 METHOD /Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:38
c:0004 p:0025 s:0012 e:000011 TOP    /Users/nmiddleton/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rspec-core-3.2.3/exe/rspec:4 [FINISH]
c:0003 p:---- s:0010 e:000009 CFUNC  :load
c:0002 p:0147 s:0006 E:000240 EVAL   /Users/nmiddleton/.rbenv/versions/2.3.0/bin/rspec:23 [FINISH]
c:0001 p:0000 s:0002 E:001eb0 (none) [FINISH]

@neilmiddleton I was not able to reproduce this myself, this was with a local variable named current correct? Was the misspelling on that particular variable or another variable?

I don't have a reproducible case, but changing current to something else made this segfault stop.

@neilmiddleton Thank you for reporting an issue. This issue looks similar to #67 and might have been fixed in r53514 and r53524. Could you try using Ruby 2.4.0-dev? We'll also backport the fix to 2.3.1 for sure.

My ruby also crashes because of segmentation faults. Please take a look at the crash report:

https://gist.github.com/dpisarewski/7cd583fea6855cf85cce

@dpisarewski Could you try using Ruby 2.4.0-dev? I believe this issue has been fixed: https://bugs.ruby-lang.org/issues/11928#change-57823

I'm was using the var current_user which segfaults on 2.3.0.
I tested both current_user and current.
No segfault on 2.4.0-dev 👍 Thank you!

Ruby 2.3.1 has been released with a fix for this bug. I'm closing this issue until we see the same bug in 2.3.1. Thanks!