Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rails logger tagged error #6258

Open
tke578 opened this issue Apr 19, 2024 · 3 comments
Open

Rails logger tagged error #6258

tke578 opened this issue Apr 19, 2024 · 3 comments

Comments

@tke578
Copy link

tke578 commented Apr 19, 2024

Hello,

I recently updated my Sidekiq version from 6.x to 7.2.2 and my jobs are failing to process because of a custom Rails.logger.tagged
I have in my in one of my jobs i.e.
Error is NoMethodError: undefined method tagged' for #<Sidekiq::Logger::Formatters::JSON`

Rails.logger.tagged("Custom function") do
  SomeClassFunction.new
end

This is my Sidekiq configuration

Sidekiq.confPigure_client do |config|
    config.redis = { url: ENV["REDIS_URL"], network_timeout: 3, db: 0 }
    config.logger.level = sidekiq_log_level
  end

  Sidekiq.configure_server do |config|
    config.redis = { url: ENV["REDIS_URL"], network_timeout: 3, db: 0 }
    config.logger = ActiveSupport::TaggedLogging.new(
      Logger.new("log/sidekiq_#{Rails.env}.log", level: sidekiq_log_level)
    )
    config.logger.level = sidekiq_log_level
    config.server_middleware do |chain|
      chain.add Sidekiq::Middleware::Server::SetRetryCountMiddleware
    end
    config.logger.formatter = Sidekiq::Logger::Formatters::JSON.new
  end

Am I missing something here?

Ruby version: 3.2.2
Rails version: 7.1
Sidekiq / Pro / Enterprise version(s): 7.2.2

@mperham
Copy link
Collaborator

mperham commented Apr 19, 2024

As the bug template notes, please include the full backtrace as that is essential to debug the issue.

@tke578
Copy link
Author

tke578 commented Apr 20, 2024

@mperham

NoMethodError: undefined method `tagged' for #<Sidekiq::Logger::Formatters::JSON:0x00007f3f0d23c898 @datetime_format=nil>
tagged(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/activesupport-7.1.3.2/lib/active_support/tagged_logging.rb:135)

block in method_missing(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/activesupport-7.1.3.2/lib/active_support/broadcast_logger.rb:242)

map(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/activesupport-7.1.3.2/lib/active_support/broadcast_logger.rb:242)

method_missing(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/activesupport-7.1.3.2/lib/active_support/broadcast_logger.rb:242)

download_and_expand(/home/deploy/www/website/releases/20240419000810/app/services/can/snapshots/downloader_service.rb:16)

download_snapshot(/home/deploy/www/website/releases/20240419000810/app/services/can/snapshots/processor_service.rb:42)

block in call(/home/deploy/www/website/releases/20240419000810/app/services/can/snapshots/processor_service.rb:21)

block in tagged(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/activesupport-7.1.3.2/lib/active_support/tagged_logging.rb:135)

tagged(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/activesupport-7.1.3.2/lib/active_support/tagged_logging.rb:39)

tagged(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/activesupport-7.1.3.2/lib/active_support/tagged_logging.rb:135)

block in method_missing(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/activesupport-7.1.3.2/lib/active_support/broadcast_logger.rb:242)

map(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/activesupport-7.1.3.2/lib/active_support/broadcast_logger.rb:242)

method_missing(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/activesupport-7.1.3.2/lib/active_support/broadcast_logger.rb:242)

call(/home/deploy/www/website/releases/20240419000810/app/services/can/snapshots/processor_service.rb:16)

call(/home/deploy/www/website/releases/20240419000810/app/services/application_service.rb:42)

to_csv(/home/deploy/www/website/releases/20240419000810/app/services/can/snapshots/processor_service.rb:12)

perform(/home/deploy/www/website/releases/20240419000810/app/jobs/can/snapshots/processing_job.rb:10)

execute_job(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/processor.rb:210)

block (4 levels) in process(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/processor.rb:180)

traverse(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/middleware/chain.rb:180)

block in traverse(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/middleware/chain.rb:183)

call(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/rollbar-3.3.1/lib/rollbar/plugins/sidekiq/plugin.rb:11)

traverse(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/middleware/chain.rb:182)

block in traverse(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/middleware/chain.rb:183)

block in call(/home/deploy/www/website/releases/20240419000810/config/initializers/sidekiq.rb:15)

block in trace_worker(/home/deploy/www/website/releases/20240419000810/config/initializers/sidekiq.rb:8)

block in measure(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/ddtrace-1.3.0/lib/datadog/tracing/trace_operation.rb:178)

measure(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/ddtrace-1.3.0/lib/datadog/tracing/span_operation.rb:152)

measure(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/ddtrace-1.3.0/lib/datadog/tracing/trace_operation.rb:178)

start_span(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/ddtrace-1.3.0/lib/datadog/tracing/tracer.rb:376)

block in trace(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/ddtrace-1.3.0/lib/datadog/tracing/tracer.rb:159)

activate!(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/ddtrace-1.3.0/lib/datadog/tracing/context.rb:45)

trace(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/ddtrace-1.3.0/lib/datadog/tracing/tracer.rb:158)

trace(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/ddtrace-1.3.0/lib/datadog/tracing.rb:18)

trace_worker(/home/deploy/www/website/releases/20240419000810/config/initializers/sidekiq.rb:8)

call(/home/deploy/www/website/releases/20240419000810/config/initializers/sidekiq.rb:12)

traverse(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/middleware/chain.rb:182)

block in traverse(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/middleware/chain.rb:183)

block in call(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/ddtrace-1.3.0/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb:64)

block in measure(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/ddtrace-1.3.0/lib/datadog/tracing/trace_operation.rb:178)

measure(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/ddtrace-1.3.0/lib/datadog/tracing/span_operation.rb:152)

measure(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/ddtrace-1.3.0/lib/datadog/tracing/trace_operation.rb:178)

start_span(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/ddtrace-1.3.0/lib/datadog/tracing/tracer.rb:376)

block in trace(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/ddtrace-1.3.0/lib/datadog/tracing/tracer.rb:159)

activate!(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/ddtrace-1.3.0/lib/datadog/tracing/context.rb:45)

trace(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/ddtrace-1.3.0/lib/datadog/tracing/tracer.rb:158)

trace(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/ddtrace-1.3.0/lib/datadog/tracing.rb:18)

call(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/ddtrace-1.3.0/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb:32)

traverse(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/middleware/chain.rb:182)

block in traverse(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/middleware/chain.rb:183)

track(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/metrics/tracking.rb:26)

call(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/metrics/tracking.rb:126)

traverse(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/middleware/chain.rb:182)

invoke(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/middleware/chain.rb:173)

block (3 levels) in process(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/processor.rb:179)

block (6 levels) in dispatch(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/processor.rb:140)

local(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/job_retry.rb:113)

block (5 levels) in dispatch(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/processor.rb:139)

block in call(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/rails.rb:16)

block in wrap(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/activesupport-7.1.3.2/lib/active_support/reloader.rb:77)

wrap(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/activesupport-7.1.3.2/lib/active_support/execution_wrapper.rb:92)

wrap(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/activesupport-7.1.3.2/lib/active_support/reloader.rb:74)

call(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/rails.rb:15)

block (4 levels) in dispatch(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/processor.rb:135)

stats(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/processor.rb:271)

block (3 levels) in dispatch(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/processor.rb:130)

call(/home/deploy/www/website/releases/20240419000810/config/initializers/sidekiq.rb:44)

block (2 levels) in dispatch(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/processor.rb:129)

global(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/job_retry.rb:80)

block in dispatch(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/processor.rb:128)

prepare(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/job_logger.rb:39)

dispatch(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/processor.rb:127)

block (2 levels) in process(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/processor.rb:178)

handle_interrupt(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/processor.rb:177)

block in process(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/processor.rb:177)

handle_interrupt(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/processor.rb:176)

process(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/processor.rb:176)

process_one(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/processor.rb:82)

run(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/processor.rb:72)

watchdog(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/component.rb:10)

block in safe_thread(/home/deploy/www/website/shared/bundle/ruby/3.2.0/gems/sidekiq-7.2.2/lib/sidekiq/component.rb:19)

@mperham
Copy link
Collaborator

mperham commented Apr 22, 2024

I think if you're going to replace Sidekiq's default logger with a custom logger, you'll need to ensure that all of the logging infrastructure supports that custom logger. It looks like Rails requires some custom tagging support in 7.1 which Sidekiq's JSON formatter does not (yet?) support. I don't know how best to fix this. Perhaps one of the Rails team can advise me on the best approach. Is there a Module I can include in Sidekiq's railtie?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants