banister / method_source

return the sourcecode for a method
MIT License
361 stars 43 forks source link

method.source segfaults on arm64 #69

Open twk3 opened 4 years ago

twk3 commented 4 years ago

I keep encountering this on multiple VMs on an aws a1.xlarge running the openSUSE Leap 15.1 ARM marketplace ami image.

(I am running into this running GitLab)

/opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/method_source-1.0.0/lib/method_source/code_helpers.rb:71: [BUG] Segmentation fault at 0x00000000000000dc
ruby 2.6.6p146 (2020-03-31 revision 67876) [aarch64-linux]

-- Control frame information -----------------------------------------------
c:0063 p:---- s:0355 e:000354 CFUNC  :eval
c:0062 p:0021 s:0350 e:000349 BLOCK  /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/method_source-1.0.0/lib/method_source/code_helpers.rb:71 [FINISH]
c:0061 p:---- s:0347 e:000346 CFUNC  :catch
c:0060 p:0014 s:0342 e:000341 METHOD /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/method_source-1.0.0/lib/method_source/code_helpers.rb:70
c:0059 p:0030 s:0336 e:000335 BLOCK  /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/method_source-1.0.0/lib/method_source/code_helpers.rb:97 [FINISH]
c:0058 p:---- s:0332 e:000331 CFUNC  :each
c:0057 p:0039 s:0328 e:000327 METHOD /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/method_source-1.0.0/lib/method_source/code_helpers.rb:95
c:0056 p:0077 s:0320 e:000319 METHOD /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/method_source-1.0.0/lib/method_source/code_helpers.rb:30
c:0055 p:0060 s:0310 e:000309 METHOD /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/method_source-1.0.0/lib/method_source.rb:27
c:0054 p:0031 s:0301 e:000300 METHOD /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/method_source-1.0.0/lib/method_source.rb:110
c:0053 p:0051 s:0297 e:000296 BLOCK  /opt/gitlab/embedded/service/gitlab-rails/config/initializers/zz_metrics.rb:181

Called from the GitLab code here: https://gitlab.com/gitlab-org/gitlab/-/blob/718eaa448d40a69781415335ca4275578d5585e2/config/initializers/zz_metrics.rb#L181

GitLab bug tracking the issue is here: https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/5645

banister commented 4 years ago

Ah - this is a bug in Ruby itself as method source doesn't use any C extensions not much we can do other than work-around it, but you should definitely file the bug upstream on ruby itself