No gem version works

AI-generated summary

wont93 is attempting to install the New Relic gem for local Discourse development but encounters a SystemStackError: stack level too deep across multiple versions (8.1.0 to 9.2.2). The error occurs during Rails server startup (d/rails s) and originates in datastore_segment.rb, particularly within set_instance_info, suggesting a recursive loop in instrumentation, especially around Redis. pfaffman suggests adding the gem to the Gemfile and running bundle install, but wont93 confirms this was already done. RGJ notes the error may not be Discourse-specific and links to New Relic’s official troubleshooting page for SystemStackError, implying the issue may stem from New Relic’s Ruby agent interacting with Discourse’s stack or Redis instrumentation.

I try to install newrelic on local development. Here is the list of gem version already try:

  • newrelic_rpm-8.1.0
  • newrelic_rpm-8.4.0
  • newrelic_rpm-8.8.0
  • newrelic_rpm-8.12.0
  • newrelic_rpm-8.13.0
  • newrelic_rpm-8.13.1
  • newrelic_rpm-8.14.0
  • newrelic_rpm-8.15.0
  • newrelic_rpm-9.0.0
  • newrelic_rpm-9.2.2

is installed the gem with d/rails s
but return errors something like this:

/home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-9.0.0/lib/new_relic/agent/transaction/datastore_segment.rb:34:in `set_instance_info': **stack level too deep (****SystemStackError****)**
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-9.0.0/lib/new_relic/agent/transaction/datastore_segment.rb:26:in `initialize'
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-9.0.0/lib/new_relic/agent/tracer.rb:299:in `new'
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-9.0.0/lib/new_relic/agent/tracer.rb:299:in `start_datastore_segment'
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-9.0.0/lib/new_relic/agent/instrumentation/redis/instrumentation.rb:46:in `with_tracing'
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-9.0.0/lib/new_relic/agent/instrumentation/redis/instrumentation.rb:17:in `call_with_tracing'
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-9.0.0/lib/new_relic/agent/instrumentation/redis/prepend.rb:17:in `call'
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/rack-mini-profiler-3.1.0/lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'
from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-9.0.0/lib/new_relic/agent/instrumentation/redis/prepend.rb:17:in `block in call'
... 9348 levels...
from /src/bin/unicorn:96:in `load'
from /src/bin/unicorn:96:in `block in <main>'
from /src/bin/unicorn:95:in `fork'
from /src/bin/unicorn:95:in `<main>'

or this for old version (<=8):

/home/discourse/.bundle/gems/ruby/3.2.0/gems/activesupport-7.0.4.3/lib/active_support/core_ext/numeric/deprecated_conversions.rb:6:in `to_s': stack level too deep (SystemStackError)
	from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-8.12.0/lib/new_relic/agent/transaction/datastore_segment.rb:34:in `set_instance_info'
	from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-8.12.0/lib/new_relic/agent/transaction/datastore_segment.rb:26:in `initialize'
	from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-8.12.0/lib/new_relic/agent/tracer.rb:298:in `new'
	from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-8.12.0/lib/new_relic/agent/tracer.rb:298:in `start_datastore_segment'
	from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-8.12.0/lib/new_relic/agent/instrumentation/redis/instrumentation.rb:35:in `with_tracing'
	from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-8.12.0/lib/new_relic/agent/instrumentation/redis/instrumentation.rb:18:in `call_with_tracing'
	from /home/discourse/.bundle/gems/ruby/3.2.0/gems/newrelic_rpm-8.12.0/lib/new_relic/agent/instrumentation/redis/prepend.rb:11:in `call'
	from /home/discourse/.bundle/gems/ruby/3.2.0/gems/rack-mini-profiler-3.1.0/lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'
	 ... 9517 levels...
	from /src/bin/unicorn:96:in `load'
	from /src/bin/unicorn:96:in `block in <main>'
	from /src/bin/unicorn:95:in `fork'
	from /src/bin/unicorn:95:in `<main>'

I think you need to put it in the Gemfile and

bundle install

that’s what i did, you can see the error log after I install it an run d/rails s

I’m not sure if this is a Discourse issue.