Commit 88add409 authored by Mehmet Emin INAC's avatar Mehmet Emin INAC

Fix missing active constant error

When we refer to a constant from initializers which is supposed to be
loaded by `ActiveSupport::Dependencies`, it's possible to get an error
in the development environment if Rails tries to load/reload a missing
constant under the namespace of that constant.

The reason is since the constant is loaded in initializers, it stays in
the memory and conflicts with the one reloaded by Rails.

This commit fixes only the `Gitlab::Metrics::Subscribers::ActiveRecord`
case which has been used in lograge configuration.
parent f751d0f8
# Only use Lograge for Rails
unless Gitlab::Runtime.sidekiq?
Rails.application.reloader.to_prepare do
filename = File.join(Rails.root, 'log', "#{Rails.env}_json.log")
db_counter = Gitlab::Metrics::Subscribers::ActiveRecord
Rails.application.configure do
config.lograge.enabled = true
......@@ -15,7 +17,7 @@ unless Gitlab::Runtime.sidekiq?
data[:db_duration_s] = Gitlab::Utils.ms_to_round_sec(data.delete(:db)) if data[:db]
data[:view_duration_s] = Gitlab::Utils.ms_to_round_sec(data.delete(:view)) if data[:view]
data[:duration_s] = Gitlab::Utils.ms_to_round_sec(data.delete(:duration)) if data[:duration]
data.merge!(::Gitlab::Metrics::Subscribers::ActiveRecord.db_counter_payload)
data.merge!(db_counter.db_counter_payload)
# Remove empty hashes to prevent type mismatches
# These are set to empty hashes in Lograge's ActionCable subscriber
......@@ -34,4 +36,5 @@ unless Gitlab::Runtime.sidekiq?
# Add request parameters to log output
config.lograge.custom_options = Gitlab::Lograge::CustomOptions
end
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment