open-telemetry / opentelemetry-ruby-contrib

Contrib Packages for the OpenTelemetry Ruby API and SDK implementation.
https://opentelemetry.io
Apache License 2.0
82 stars 169 forks source link

Make actionpack instrumentation compatible with TruffleRuby #42

Open plantfansam opened 2 years ago

plantfansam commented 2 years ago

We support TruffleRuby on a best effort basis (see https://github.com/open-telemetry/opentelemetry-ruby/pull/1295). Our actionpack instrumentation does not work properly with TruffleRuby, however.

This ticket will be complete when our CI build successfully runs specs opentelemetry-instrumentation-action_pack.

To run these specs in CI, delete the gem from the TruffleRuby filter stanzas (1, 2) in .github/workflows/ci.yml.

alexcameron89 commented 2 years ago

The issue looks to be with Bundler, and here's the failure from a CI run when running bundle exec appraisal install (it's specifically failing to run bundle install on the Rails 6.0 version):

NoMethodError: undefined method `full_name' for nil:NilClass
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/installer/parallel_installer.rb:124:in `block (2 levels) in check_for_unmet_dependencies'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/installer/parallel_installer.rb:123:in `each'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/installer/parallel_installer.rb:123:in `block in check_for_unmet_dependencies'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/installer/parallel_installer.rb:122:in `each'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/installer/parallel_installer.rb:122:in `check_for_unmet_dependencies'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/installer/parallel_installer.rb:100:in `call'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/installer/parallel_installer.rb:71:in `call'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/installer.rb:259:in `install_in_parallel'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/installer.rb:209:in `install'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/installer.rb:89:in `block in run'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/process_lock.rb:12:in `block in lock'
  <internal:core> core/io.rb:696:in `open'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/process_lock.rb:9:in `lock'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/installer.rb:71:in `run'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/installer.rb:23:in `install'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/cli/install.rb:62:in `run'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/cli.rb:254:in `install'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/cli.rb:31:in `dispatch'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/cli.rb:25:in `start'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/exe/bundle:48:in `block in <top (required)>'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
  /home/runner/.rubies/truffleruby-22.1.0/lib/gems/gems/bundler-2.3.16/exe/bundle:36:in `<top (required)>'
  <internal:core> core/kernel.rb:[376](https://github.com/open-telemetry/opentelemetry-ruby-contrib/runs/7050619525?check_suite_focus=true#step:9:385):in `load'
  <internal:core> core/kernel.rb:376:in `load'
  /home/runner/.rubies/truffleruby-22.1.0/bin/bundle:23:in `<main>'

I'm having a hard time debugging/recreating the issue locally to figure out what specific reason bundler is failing, but I'll keep playing with it.

github-actions[bot] commented 1 year ago

👋 This issue has been marked as stale because it has been open with no activity. You can: comment on the issue or remove the stale label to hold stale off for a while, add the keep label to hold stale off permanently, or do nothing. If you do nothing this issue will be closed eventually by the stale bot.

ishan123456789 commented 1 month ago

It still happens

kaylareopelle commented 3 weeks ago

Thank you for the update, @ishan123456789! I've reopened the issue.