sentry-rails 5.2.0 → 5.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a6ab84e3b98547af93706b752c0242271cc0fc684269deb3bda71318b03536a0
4
- data.tar.gz: 324b90217b7331cb38267ccdd39c07d9a87abf52880d40741ea0435e26dec621
3
+ metadata.gz: b255fd547bc910c8b262313a201b4b9f576e5592dfcf26c704612b885c097e72
4
+ data.tar.gz: bc43797324455c60625c2261762bc189068d913270302ec11c630757862a566f
5
5
  SHA512:
6
- metadata.gz: 153d75c83b8756638f554c0a8de42154ff1e76e13725fee6a1c576bb936b1df0ac6f84968eb5bd6da1c3348052b491355aa67f233c97db8979a0f534ee65d53d
7
- data.tar.gz: af6b9717fee9623f8923df70aa52a1b898a9296d2a28f8624f8d1358ad0569213cdb2fd34add7742509b5e247292c6a318541c329bfa0ae64c4fda578260682c
6
+ metadata.gz: c324cab29bd0560073f9a8d2b60104f9f278dcedef26e3cd02ac9bf955846ba96acfc3c1d4fc96b19543144d18c6812fe86394fd375ce353fc57b8f140b81e30
7
+ data.tar.gz: e7558d5f6741b078fb1c9826887e0f851f156c5155b3eb67f0d6013016338a9d2906ab56271bc87cdb49416a3d7609e9898d38c4e4fe7b8575b4a65df5dc3084
data/Gemfile CHANGED
@@ -1,4 +1,5 @@
1
1
  source "https://rubygems.org"
2
+ git_source(:github) { |name| "https://github.com/#{name}.git" }
2
3
 
3
4
  # Specify your gem's dependencies in sentry-ruby.gemspec
4
5
  gemspec
@@ -1,10 +1,10 @@
1
1
  module Sentry
2
2
  class BackgroundWorker
3
3
  def _perform(&block)
4
+ block.call
5
+ ensure
4
6
  # make sure the background worker returns AR connection if it accidentally acquire one during serialization
5
- ActiveRecord::Base.connection_pool.with_connection do
6
- block.call
7
- end
7
+ ActiveRecord::Base.connection_pool.release_connection
8
8
  end
9
9
  end
10
10
  end
@@ -39,7 +39,7 @@ module Sentry
39
39
  end
40
40
 
41
41
  transaction = Sentry::Transaction.from_sentry_trace(sentry_trace, **options) if sentry_trace
42
- Sentry.start_transaction(transaction: transaction, **options)
42
+ Sentry.start_transaction(transaction: transaction, custom_sampling_context: { env: env }, **options)
43
43
  end
44
44
  end
45
45
  end
@@ -42,6 +42,12 @@ module Sentry
42
42
  'ActiveRecord::RecordNotFound'
43
43
  ].freeze
44
44
  class Configuration
45
+ # Rails 7.0 introduced a new error reporter feature, which the SDK once opted-in by default.
46
+ # But after receiving multiple issue reports, the integration seemed to cause serious troubles to some users.
47
+ # So the integration is now controlled by this configuration, which is disabled (false) by default.
48
+ # More information can be found from: https://github.com/rails/rails/pull/43625#issuecomment-1072514175
49
+ attr_accessor :register_error_subscriber
50
+
45
51
  # Rails catches exceptions in the ActionDispatch::ShowExceptions or
46
52
  # ActionDispatch::DebugExceptions middlewares, depending on the environment.
47
53
  # When `rails_report_rescued_exceptions` is true (it is by default), Sentry
@@ -55,6 +61,7 @@ module Sentry
55
61
  attr_accessor :tracing_subscribers
56
62
 
57
63
  def initialize
64
+ @register_error_subscriber = false
58
65
  @report_rescued_exceptions = true
59
66
  @skippable_job_adapters = []
60
67
  @tracing_subscribers = Set.new([
@@ -47,7 +47,7 @@ module Sentry
47
47
  inject_breadcrumbs_logger
48
48
  activate_tracing
49
49
 
50
- register_error_subscriber(app) if ::Rails.version.to_f >= 7.0
50
+ register_error_subscriber(app) if ::Rails.version.to_f >= 7.0 && Sentry.configuration.rails.register_error_subscriber
51
51
  end
52
52
 
53
53
  runner do
@@ -40,15 +40,12 @@ module Sentry
40
40
  def record_on_current_span(duration:, **options)
41
41
  return unless options[:start_timestamp]
42
42
 
43
- scope = Sentry.get_current_scope
44
- transaction = scope.get_transaction
45
- return unless transaction && transaction.sampled
46
-
47
- span = transaction.start_child(**options)
48
- # duration in ActiveSupport is computed in millisecond
49
- # so we need to covert it as second before calculating the timestamp
50
- span.set_timestamp(span.start_timestamp + duration / 1000)
51
- yield(span) if block_given?
43
+ Sentry.with_child_span(**options) do |child_span|
44
+ # duration in ActiveSupport is computed in millisecond
45
+ # so we need to covert it as second before calculating the timestamp
46
+ child_span.set_timestamp(child_span.start_timestamp + duration / 1000)
47
+ yield(child_span) if block_given?
48
+ end
52
49
  end
53
50
  end
54
51
  end
@@ -1,5 +1,5 @@
1
1
  module Sentry
2
2
  module Rails
3
- VERSION = "5.2.0"
3
+ VERSION = "5.3.1"
4
4
  end
5
5
  end
data/sentry-rails.gemspec CHANGED
@@ -23,5 +23,5 @@ Gem::Specification.new do |spec|
23
23
  spec.require_paths = ["lib"]
24
24
 
25
25
  spec.add_dependency "railties", ">= 5.0"
26
- spec.add_dependency "sentry-ruby-core", "~> 5.2.0"
26
+ spec.add_dependency "sentry-ruby-core", "~> 5.3.1"
27
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sentry-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.0
4
+ version: 5.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sentry Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-03-08 00:00:00.000000000 Z
11
+ date: 2022-05-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 5.2.0
33
+ version: 5.3.1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 5.2.0
40
+ version: 5.3.1
41
41
  description: A gem that provides Rails integration for the Sentry error logger
42
42
  email: accounts@sentry.io
43
43
  executables: []