rollbar 1.3.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +4 -4
- data/lib/generators/rollbar/templates/initializer.rb +1 -1
- data/lib/rollbar.rb +10 -1
- data/lib/rollbar/delay/girl_friday.rb +1 -1
- data/lib/rollbar/delay/resque.rb +1 -1
- data/lib/rollbar/delay/sidekiq.rb +1 -1
- data/lib/rollbar/delay/sucker_punch.rb +1 -1
- data/lib/rollbar/delay/thread.rb +1 -1
- data/lib/rollbar/truncation/frames_strategy.rb +1 -1
- data/lib/rollbar/version.rb +1 -1
- data/spec/delay/sidekiq_spec.rb +2 -2
- data/spec/delay/sucker_punch_spec.rb +1 -1
- data/spec/rollbar/delay/resque_spec.rb +1 -1
- data/spec/rollbar/delay/thread_spec.rb +1 -1
- data/spec/rollbar/truncation/frames_strategy_spec.rb +14 -0
- data/spec/rollbar_spec.rb +27 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7575d58a3d88f1967dac6cf9d70e78d2170c1bae
|
4
|
+
data.tar.gz: 32d7bf74f7276b35434601f0e89c018100f93fed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 64acb033938cea26fd519fcff644a23730d9872746020bfdcaaa0a8e62e7f68c4c75461f0730fa6c816cfd5d43e7ac365b00722d22918b82c6d9d0b172ff82bb
|
7
|
+
data.tar.gz: 97ba117f2544e3c6fff17839355babb8a9b020b9964802fdb83874f3d3fea9be51580fdb4ca34cdcda59fe35ea68f9631bb5556eca84f632a33f5f085e8a4d25
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 1.3.1
|
4
|
+
|
5
|
+
Bug fixes:
|
6
|
+
|
7
|
+
- Fix bug with smart truncation for messages. See [#195](https://github.com/rollbar/rollbar-gem/issues/195) and [#196](https://github.com/rollbar/rollbar-gem/issues/196)
|
8
|
+
- Safely catch exceptions in `process_payload` when called from an async handler. See [#196](https://github.com/rollbar/rollbar-gem/pull/196)
|
9
|
+
|
10
|
+
|
3
11
|
## 1.3.0
|
4
12
|
|
5
13
|
Performance improvements:
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Rollbar notifier for Ruby [](https://travis-ci.org/rollbar/rollbar-gem/branches)
|
2
2
|
|
3
3
|
<!-- RemoveNext -->
|
4
4
|
Ruby gem for reporting exceptions, errors, and log messages to [Rollbar](https://rollbar.com).
|
@@ -9,7 +9,7 @@ Ruby gem for reporting exceptions, errors, and log messages to [Rollbar](https:/
|
|
9
9
|
|
10
10
|
Add this line to your application's Gemfile:
|
11
11
|
|
12
|
-
gem 'rollbar', '~> 1.3.
|
12
|
+
gem 'rollbar', '~> 1.3.1'
|
13
13
|
|
14
14
|
And then execute:
|
15
15
|
|
@@ -410,11 +410,11 @@ You can supply your own handler using ```config.async_handler```. The object to
|
|
410
410
|
```ruby
|
411
411
|
config.use_async
|
412
412
|
config.async_handler = Proc.new { |payload|
|
413
|
-
Thread.new { Rollbar.
|
413
|
+
Thread.new { Rollbar.process_payload_safely(payload) }
|
414
414
|
}
|
415
415
|
```
|
416
416
|
|
417
|
-
Make sure you pass ```payload``` to ```Rollbar.
|
417
|
+
Make sure you pass ```payload``` to ```Rollbar.process_payload_safely``` in your own implementation.
|
418
418
|
|
419
419
|
## Failover handlers
|
420
420
|
|
@@ -46,7 +46,7 @@ Rollbar.configure do |config|
|
|
46
46
|
# config.use_async = true
|
47
47
|
# Supply your own async handler:
|
48
48
|
# config.async_handler = Proc.new { |payload|
|
49
|
-
# Thread.new { Rollbar.
|
49
|
+
# Thread.new { Rollbar.process_payload_safely(payload) }
|
50
50
|
# }
|
51
51
|
|
52
52
|
# Enable asynchronous reporting (using sucker_punch)
|
data/lib/rollbar.rb
CHANGED
@@ -31,7 +31,7 @@ module Rollbar
|
|
31
31
|
Rack::Multipart::UploadedFile
|
32
32
|
].freeze
|
33
33
|
PUBLIC_NOTIFIER_METHODS = %w(debug info warn warning error critical log logger
|
34
|
-
process_payload scope send_failsafe log_info log_debug
|
34
|
+
process_payload process_payload_safely scope send_failsafe log_info log_debug
|
35
35
|
log_warning log_error silenced)
|
36
36
|
|
37
37
|
class Notifier
|
@@ -180,6 +180,15 @@ module Rollbar
|
|
180
180
|
else
|
181
181
|
send_payload(payload)
|
182
182
|
end
|
183
|
+
rescue => e
|
184
|
+
log_error("[Rollbar] Error processing the payload: #{e.class}, #{e.message}. Payload: #{payload.inspect}")
|
185
|
+
raise e
|
186
|
+
end
|
187
|
+
|
188
|
+
def process_payload_safely(payload)
|
189
|
+
process_payload(payload)
|
190
|
+
rescue => e
|
191
|
+
report_internal_error(e)
|
183
192
|
end
|
184
193
|
|
185
194
|
private
|
data/lib/rollbar/delay/resque.rb
CHANGED
data/lib/rollbar/delay/thread.rb
CHANGED
data/lib/rollbar/version.rb
CHANGED
data/spec/delay/sidekiq_spec.rb
CHANGED
@@ -17,7 +17,7 @@ describe Rollbar::Delay::Sidekiq, :if => RUBY_VERSION != '1.8.7' do
|
|
17
17
|
|
18
18
|
describe "#perform" do
|
19
19
|
it "performs payload" do
|
20
|
-
Rollbar.should_receive(:
|
20
|
+
Rollbar.should_receive(:process_payload_safely).with(payload)
|
21
21
|
subject.perform payload
|
22
22
|
end
|
23
23
|
end
|
@@ -26,7 +26,7 @@ describe Rollbar::Delay::Sidekiq, :if => RUBY_VERSION != '1.8.7' do
|
|
26
26
|
shared_examples "a Rollbar processor" do
|
27
27
|
|
28
28
|
it "processes payload" do
|
29
|
-
Rollbar.should_receive(:
|
29
|
+
Rollbar.should_receive(:process_payload_safely).with(payload)
|
30
30
|
|
31
31
|
subject.call payload
|
32
32
|
described_class.drain
|
@@ -17,7 +17,7 @@ describe Rollbar::Delay::SuckerPunch, :if => RUBY_VERSION != '1.8.7' do
|
|
17
17
|
let(:payload) { "anything" }
|
18
18
|
|
19
19
|
it "performs the task asynchronously" do
|
20
|
-
Rollbar.should_receive(:
|
20
|
+
Rollbar.should_receive(:process_payload_safely)
|
21
21
|
|
22
22
|
Rollbar::Delay::SuckerPunch.call payload
|
23
23
|
end
|
@@ -14,7 +14,7 @@ describe Rollbar::Delay::Resque do
|
|
14
14
|
it 'process the payload' do
|
15
15
|
loaded_hash = MultiJson.load(MultiJson.dump(payload))
|
16
16
|
|
17
|
-
expect(Rollbar).to receive(:
|
17
|
+
expect(Rollbar).to receive(:process_payload_safely).with(loaded_hash)
|
18
18
|
described_class.call(payload)
|
19
19
|
end
|
20
20
|
end
|
@@ -5,7 +5,7 @@ describe Rollbar::Delay::Thread do
|
|
5
5
|
let(:payload) { { :key => 'value' } }
|
6
6
|
|
7
7
|
it 'process the payload in a new thread' do
|
8
|
-
expect(Rollbar).to receive(:
|
8
|
+
expect(Rollbar).to receive(:process_payload_safely).with(payload)
|
9
9
|
|
10
10
|
th = described_class.call(payload)
|
11
11
|
th.join
|
@@ -52,5 +52,19 @@ describe Rollbar::Truncation::FramesStrategy do
|
|
52
52
|
expect(new_frames2.last).to be_eql(frames2.last)
|
53
53
|
end
|
54
54
|
end
|
55
|
+
|
56
|
+
context 'without trace or trace_chain', :fixture => :payload do
|
57
|
+
let(:payload_fixture) { 'payloads/sample.trace.json' }
|
58
|
+
|
59
|
+
before do
|
60
|
+
payload['data']['body'].delete('trace')
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'returns the original payload' do
|
64
|
+
result = MultiJson.load(described_class.call(payload))
|
65
|
+
|
66
|
+
expect(result).to be_eql(payload)
|
67
|
+
end
|
68
|
+
end
|
55
69
|
end
|
56
70
|
end
|
data/spec/rollbar_spec.rb
CHANGED
@@ -1547,6 +1547,33 @@ describe Rollbar do
|
|
1547
1547
|
end
|
1548
1548
|
end
|
1549
1549
|
|
1550
|
+
describe '.process_payload' do
|
1551
|
+
context 'if there is an exception sending the payload' do
|
1552
|
+
let(:exception) { StandardError.new('error message') }
|
1553
|
+
let(:payload) { { :foo => :bar } }
|
1554
|
+
|
1555
|
+
it 'logs the error and the payload' do
|
1556
|
+
allow(Rollbar.notifier).to receive(:send_payload).and_raise(exception)
|
1557
|
+
expect(Rollbar.notifier).to receive(:log_error)
|
1558
|
+
|
1559
|
+
expect { Rollbar.notifier.process_payload(payload) }.to raise_error(exception)
|
1560
|
+
end
|
1561
|
+
end
|
1562
|
+
end
|
1563
|
+
|
1564
|
+
describe '.process_payload_safely' do
|
1565
|
+
context 'with errors' do
|
1566
|
+
let(:exception) { StandardError.new('the error') }
|
1567
|
+
|
1568
|
+
it 'doesnt raise anything and sends internal error' do
|
1569
|
+
allow(Rollbar.notifier).to receive(:process_payload).and_raise(exception)
|
1570
|
+
expect(Rollbar.notifier).to receive(:report_internal_error).with(exception)
|
1571
|
+
|
1572
|
+
Rollbar.notifier.process_payload_safely({})
|
1573
|
+
end
|
1574
|
+
end
|
1575
|
+
end
|
1576
|
+
|
1550
1577
|
# configure with some basic params
|
1551
1578
|
def configure
|
1552
1579
|
reconfigure_notifier
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rollbar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rollbar, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-12-
|
11
|
+
date: 2014-12-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multi_json
|
@@ -341,7 +341,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
341
341
|
version: '0'
|
342
342
|
requirements: []
|
343
343
|
rubyforge_project:
|
344
|
-
rubygems_version: 2.0.
|
344
|
+
rubygems_version: 2.0.14
|
345
345
|
signing_key:
|
346
346
|
specification_version: 4
|
347
347
|
summary: Reports exceptions to Rollbar
|