From 4b3c20034093961c0e9c48f073fadb72d857f8fe Mon Sep 17 00:00:00 2001 From: Tony Ta Date: Fri, 22 Dec 2017 15:39:20 -0800 Subject: [PATCH 1/2] Initialize NewRelic before Rails' config-initializers Before, the initializer for NewRelic did not specify any ordering. In some situations, Rails will order its load_config_initializers before NewRelic's newrelic_rpm.start_plugin. This is a problem if NewRelic is called in a config-initializer (e.g. when defining method tracers) and will output the following warning: Agent unavailable as it hasn't been started. This change ensures that newrelic_rpm.start_plugin always gets loaded before config-intiializers are. --- lib/newrelic_rpm.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/newrelic_rpm.rb b/lib/newrelic_rpm.rb index 1dbdf1c4d7..99260e7fe8 100644 --- a/lib/newrelic_rpm.rb +++ b/lib/newrelic_rpm.rb @@ -37,7 +37,7 @@ def self.run module NewRelic class Railtie < Rails::Railtie - initializer "newrelic_rpm.start_plugin" do |app| + initializer "newrelic_rpm.start_plugin", before: :load_config_initializers do |app| NewRelic::Control.instance.init_plugin(:config => app.config) end end From cc9f74a53c1f2f3d9a4d05a48418b15dfcf22952 Mon Sep 17 00:00:00 2001 From: Tony Ta Date: Tue, 26 Dec 2017 11:17:23 -0800 Subject: [PATCH 2/2] Ensure SidekiqServer prereq is loaded before TestWorker Multiverse::Suite#ordered_ruby_files depends on Dir.glob, which does not guarantee order. Since TestWorker depends on SidekiqServer, the tests will fail is the former is loaded before the latter. >> Dir[File.join("test/multiverse/suites/sidekiq", '*.rb')] => ["test/multiverse/suites/sidekiq/test_worker.rb", "test/multiverse/suites/sidekiq/sidekiq_server.rb", "test/multiverse/suites/sidekiq/sidekiq_instrumentation_test.rb", "test/multiverse/suites/sidekiq/after_suite.rb", "test/multiverse/suites/sidekiq/test_model.rb"] Adding an explicit require before TestWorker will circumvent this issue while also declaring the explicit dependency. --- test/multiverse/suites/sidekiq/test_worker.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/multiverse/suites/sidekiq/test_worker.rb b/test/multiverse/suites/sidekiq/test_worker.rb index 0eebf6000b..49d834ea3b 100644 --- a/test/multiverse/suites/sidekiq/test_worker.rb +++ b/test/multiverse/suites/sidekiq/test_worker.rb @@ -2,6 +2,8 @@ # This file is distributed under New Relic's license terms. # See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details. +require_relative "sidekiq_server" + class TestWorker include Sidekiq::Worker