-
-
Notifications
You must be signed in to change notification settings - Fork 521
Closed
Description
Issue Description
Since upgrading to sentry-ruby 6.1, instead of query logs we mostly get these:
At a glance, this is because this line accesses type_casted_binds, but only in JRUBY does type_casted_binds return an Array.
Everywhere else (unless one is using an unusual database adapter that overloads cache_notification_info), type_casted_binds returns a lambda, and since Proc#[] is an alias for Proc#call, the attempt to access a value by index on :57 actually calls the proc with the key as the unexpected argument.
Reproduction Steps
- Install sentry-rails 6.1 on a Rails 8.0.3 app on MRI (with postgres, or probably almost anything)
- Configure
Sentry.configuration.send_default_pii = true - Attempt to run any normal query with at least one bound parameter, e.g.,
Account.where(email: "[email protected]").first
Expected Behavior
Logs query
Actual Behavior
Logs its own failure to log the query
Ruby Version
3.3.2
SDK Version
sentry-rails 6.1.0 (not sure what this is asking)
Integration and Its Version
Rails 8.0.3
Sentry Config
# config/initializers/sentry.rb
Sentry.init do |config|
config.dsn = ENV["SENTRY_EU_DSN"]
config.breadcrumbs_logger = [:active_support_logger, :http_logger]
if ENV["SENTRY_LOGGING_ENABLED"]
config.enable_logs = true
config.enabled_patches = [:logger]
config.rails.structured_logging.enabled = true
config.send_default_pii = true
config.rails.structured_logging.subscribers = {
action_controller: Sentry::Rails::LogSubscribers::ActionControllerSubscriber,
active_record: Class.new(Sentry::Rails::LogSubscribers::ActiveRecordSubscriber) do
def sql(event)
# SolidQueue database queries are too noisy
return if event.payload[:name]&.starts_with?("SolidQueue::")
super
end
end
}
end
# TODO: If/when `sentry-rails` adds solid_queue or ActiveJob support for not
# reporting exceptions from retried jobs (as it does for Sidekiq and DelayedJob),
# use that and stop excluding `CompletedDocument::MissingFolder`
config.excluded_exceptions += ["CompletedDocument::MissingFolder"]
config.traces_sample_rate = 1.0
config.traces_sampler = lambda do |context|
true
end
config.profiles_sample_rate = 1.0
config.release = ENV.fetch("HEROKU_RELEASE_VERSION", "")
endMetadata
Metadata
Assignees
Projects
Status
Waiting for: Product Owner