airbrake 6.0.0 → 6.1.0.rc.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/lib/airbrake.rb +8 -14
  3. data/lib/airbrake/delayed_job.rb +49 -0
  4. data/lib/airbrake/delayed_job/plugin.rb +4 -50
  5. data/lib/airbrake/logger.rb +102 -0
  6. data/lib/airbrake/logger/airbrake_logger.rb +4 -105
  7. data/lib/airbrake/rack.rb +7 -0
  8. data/lib/airbrake/rack/context_filter.rb +5 -0
  9. data/lib/airbrake/rack/http_headers_filter.rb +9 -1
  10. data/lib/airbrake/rack/http_params_filter.rb +9 -1
  11. data/lib/airbrake/rack/request_body_filter.rb +5 -0
  12. data/lib/airbrake/rack/session_filter.rb +8 -0
  13. data/lib/airbrake/rails.rb +79 -0
  14. data/lib/airbrake/rails/active_record.rb +1 -1
  15. data/lib/airbrake/rails/railtie.rb +4 -78
  16. data/lib/airbrake/rake.rb +64 -0
  17. data/lib/airbrake/rake/task_ext.rb +4 -65
  18. data/lib/airbrake/rake/tasks.rb +12 -1
  19. data/lib/airbrake/resque.rb +17 -0
  20. data/lib/airbrake/resque/failure.rb +4 -17
  21. data/lib/airbrake/shoryuken.rb +41 -0
  22. data/lib/airbrake/shoryuken/error_handler.rb +4 -43
  23. data/lib/airbrake/sidekiq.rb +37 -0
  24. data/lib/airbrake/sidekiq/error_handler.rb +4 -37
  25. data/lib/airbrake/version.rb +1 -1
  26. data/spec/apps/rack/dummy_app.rb +1 -1
  27. data/spec/apps/rails/dummy_app.rb +30 -1
  28. data/spec/apps/rails/logs/40.log +4 -895
  29. data/spec/apps/rails/logs/42.log +19 -5438
  30. data/spec/apps/rails/logs/50.log +6611 -10
  31. data/spec/apps/rails/logs/51.log +743 -0
  32. data/spec/apps/rails/logs/52.log +249 -0
  33. data/spec/integration/rails/rails_spec.rb +16 -12
  34. data/spec/integration/shared_examples/rack_examples.rb +14 -20
  35. data/spec/spec_helper.rb +3 -3
  36. data/spec/unit/{logger/airbrake_logger_spec.rb → logger_spec.rb} +0 -0
  37. data/spec/unit/rack/context_filter_spec.rb +2 -2
  38. data/spec/unit/rack/http_headers_filter_spec.rb +7 -7
  39. data/spec/unit/rack/http_params_filter_spec.rb +8 -2
  40. data/spec/unit/rake/tasks_spec.rb +5 -5
  41. data/spec/unit/{shoryuken/error_handler_spec.rb → shoryuken_spec.rb} +12 -7
  42. data/spec/unit/{sidekiq/error_handler_spec.rb → sidekiq_spec.rb} +12 -8
  43. metadata +32 -18
  44. data/spec/apps/rails/logs/32.log +0 -852
  45. data/spec/apps/rails/logs/41.log +0 -453
@@ -0,0 +1,249 @@
1
+ # Logfile created on 2017-05-10 15:35:58 +0300 by logger.rb/56815
2
+ D, [2017-05-10T15:35:59.069053 #94487] DEBUG -- :  (0.7ms) SELECT sqlite_version(*)
3
+ D, [2017-05-10T15:35:59.069400 #94487] DEBUG -- :  (0.2ms) CREATE TABLE "books" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar)
4
+ D, [2017-05-10T15:35:59.071306 #94487] DEBUG -- :  (0.0ms) DROP TABLE IF EXISTS "delayed_jobs"
5
+ D, [2017-05-10T15:35:59.071721 #94487] DEBUG -- :  (0.1ms) CREATE TABLE "delayed_jobs" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "priority" integer DEFAULT 0 NOT NULL, "attempts" integer DEFAULT 0 NOT NULL, "handler" text NOT NULL, "last_error" text, "run_at" datetime, "locked_at" datetime, "failed_at" datetime, "locked_by" varchar, "queue" varchar, "created_at" datetime, "updated_at" datetime)
6
+ D, [2017-05-10T15:35:59.072134 #94487] DEBUG -- :  (0.1ms) CREATE INDEX "delayed_jobs_priority" ON "delayed_jobs" ("priority", "run_at")
7
+ D, [2017-05-10T15:35:59.075835 #94487] DEBUG -- :  (0.1ms) CREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)
8
+ D, [2017-05-10T15:35:59.083209 #94487] DEBUG -- : ActiveRecord::InternalMetadata Load (0.1ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ? [["key", "environment"], ["LIMIT", 1]]
9
+ D, [2017-05-10T15:35:59.085960 #94487] DEBUG -- :  (0.0ms) begin transaction
10
+ D, [2017-05-10T15:35:59.086885 #94487] DEBUG -- : SQL (0.1ms) INSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?) [["key", "environment"], ["value", "test"], ["created_at", "2017-05-10 12:35:59.086211"], ["updated_at", "2017-05-10 12:35:59.086211"]]
11
+ D, [2017-05-10T15:35:59.087096 #94487] DEBUG -- :  (0.0ms) commit transaction
12
+ I, [2017-05-10T15:35:59.136945 #94487] INFO -- : Started GET "/active_job" for 127.0.0.1 at 2017-05-10 15:35:59 +0300
13
+ I, [2017-05-10T15:35:59.138773 #94487] INFO -- : Processing by DummyController#active_job as HTML
14
+ I, [2017-05-10T15:35:59.146934 #94487] INFO -- : Rendering dummy/active_job.html.erb within layouts/application
15
+ I, [2017-05-10T15:35:59.147551 #94487] INFO -- : Rendered dummy/active_job.html.erb within layouts/application (0.5ms)
16
+ I, [2017-05-10T15:35:59.147868 #94487] INFO -- : Completed 200 OK in 9ms (Views: 2.6ms | ActiveRecord: 0.0ms)
17
+ I, [2017-05-10T15:36:01.158452 #94487] INFO -- : Started GET "/active_job" for 127.0.0.1 at 2017-05-10 15:36:01 +0300
18
+ I, [2017-05-10T15:36:01.159420 #94487] INFO -- : Processing by DummyController#active_job as HTML
19
+ I, [2017-05-10T15:36:01.160480 #94487] INFO -- : Rendering dummy/active_job.html.erb within layouts/application
20
+ I, [2017-05-10T15:36:01.160817 #94487] INFO -- : Rendered dummy/active_job.html.erb within layouts/application (0.3ms)
21
+ I, [2017-05-10T15:36:01.161194 #94487] INFO -- : Completed 200 OK in 2ms (Views: 1.1ms | ActiveRecord: 0.0ms)
22
+ I, [2017-05-10T15:36:03.170976 #94487] INFO -- : Started GET "/active_job" for 127.0.0.1 at 2017-05-10 15:36:03 +0300
23
+ I, [2017-05-10T15:36:03.172004 #94487] INFO -- : Processing by DummyController#active_job as HTML
24
+ I, [2017-05-10T15:36:03.173112 #94487] INFO -- : Rendering dummy/active_job.html.erb within layouts/application
25
+ I, [2017-05-10T15:36:03.173609 #94487] INFO -- : Rendered dummy/active_job.html.erb within layouts/application (0.3ms)
26
+ I, [2017-05-10T15:36:03.173941 #94487] INFO -- : Completed 200 OK in 2ms (Views: 1.3ms | ActiveRecord: 0.0ms)
27
+ I, [2017-05-10T15:36:05.183123 #94487] INFO -- : Started GET "/resque" for 127.0.0.1 at 2017-05-10 15:36:05 +0300
28
+ I, [2017-05-10T15:36:05.183970 #94487] INFO -- : Processing by DummyController#resque as HTML
29
+ I, [2017-05-10T15:36:05.185150 #94487] INFO -- : Rendering dummy/resque.html.erb within layouts/application
30
+ I, [2017-05-10T15:36:05.185411 #94487] INFO -- : Rendered dummy/resque.html.erb within layouts/application (0.2ms)
31
+ I, [2017-05-10T15:36:05.185694 #94487] INFO -- : Completed 200 OK in 2ms (Views: 0.8ms | ActiveRecord: 0.0ms)
32
+ I, [2017-05-10T15:36:05.189835 #94487] INFO -- : Started GET "/resque" for 127.0.0.1 at 2017-05-10 15:36:05 +0300
33
+ I, [2017-05-10T15:36:05.190757 #94487] INFO -- : Processing by DummyController#resque as HTML
34
+ I, [2017-05-10T15:36:05.206111 #94487] INFO -- : Rendering dummy/resque.html.erb within layouts/application
35
+ I, [2017-05-10T15:36:05.206370 #94487] INFO -- : Rendered dummy/resque.html.erb within layouts/application (0.2ms)
36
+ I, [2017-05-10T15:36:05.206641 #94487] INFO -- : Completed 200 OK in 16ms (Views: 0.9ms | ActiveRecord: 0.0ms)
37
+ I, [2017-05-10T15:36:05.210664 #94487] INFO -- : Started GET "/" for 127.0.0.1 at 2017-05-10 15:36:05 +0300
38
+ I, [2017-05-10T15:36:05.211448 #94487] INFO -- : Processing by DummyController#index as HTML
39
+ I, [2017-05-10T15:36:05.212045 #94487] INFO -- : Rendering dummy/index.html.erb within layouts/application
40
+ I, [2017-05-10T15:36:05.212235 #94487] INFO -- : Rendered dummy/index.html.erb within layouts/application (0.1ms)
41
+ I, [2017-05-10T15:36:05.212475 #94487] INFO -- : Completed 200 OK in 1ms (Views: 0.7ms | ActiveRecord: 0.0ms)
42
+ I, [2017-05-10T15:36:05.214730 #94487] INFO -- : Started GET "/crash" for 127.0.0.1 at 2017-05-10 15:36:05 +0300
43
+ I, [2017-05-10T15:36:05.215581 #94487] INFO -- : Processing by DummyController#crash as HTML
44
+ I, [2017-05-10T15:36:05.215879 #94487] INFO -- : Completed 500 Internal Server Error in 0ms (ActiveRecord: 0.0ms)
45
+ F, [2017-05-10T15:36:05.224557 #94487] FATAL -- :
46
+ F, [2017-05-10T15:36:05.231070 #94487] FATAL -- : AirbrakeTestError (AirbrakeTestError):
47
+ F, [2017-05-10T15:36:05.231104 #94487] FATAL -- :
48
+ F, [2017-05-10T15:36:05.231122 #94487] FATAL -- : lib/airbrake/rack/middleware.rb:52:in `call'
49
+ I, [2017-05-10T15:36:05.235975 #94487] INFO -- : Started GET "/active_record_after_commit" for 127.0.0.1 at 2017-05-10 15:36:05 +0300
50
+ I, [2017-05-10T15:36:05.236875 #94487] INFO -- : Processing by DummyController#active_record_after_commit as HTML
51
+ D, [2017-05-10T15:36:05.239652 #94487] DEBUG -- :  (0.0ms) begin transaction
52
+ D, [2017-05-10T15:36:05.240364 #94487] DEBUG -- : SQL (0.1ms) INSERT INTO "books" ("title") VALUES (?) [["title", "Bingo"]]
53
+ D, [2017-05-10T15:36:05.240615 #94487] DEBUG -- :  (0.0ms) commit transaction
54
+ I, [2017-05-10T15:36:05.244438 #94487] INFO -- : Completed 500 Internal Server Error in 7ms (ActiveRecord: 0.5ms)
55
+ F, [2017-05-10T15:36:05.248772 #94487] FATAL -- :
56
+ F, [2017-05-10T15:36:05.248834 #94487] FATAL -- : AirbrakeTestError (after_commit):
57
+ F, [2017-05-10T15:36:05.248873 #94487] FATAL -- :
58
+ F, [2017-05-10T15:36:05.248891 #94487] FATAL -- : lib/airbrake/rails/active_record.rb:27:in `run_callbacks'
59
+ lib/airbrake/rack/middleware.rb:52:in `call'
60
+ I, [2017-05-10T15:36:05.364100 #94487] INFO -- : Started GET "/active_record_after_rollback" for 127.0.0.1 at 2017-05-10 15:36:05 +0300
61
+ I, [2017-05-10T15:36:05.365064 #94487] INFO -- : Processing by DummyController#active_record_after_rollback as HTML
62
+ D, [2017-05-10T15:36:05.365359 #94487] DEBUG -- :  (0.1ms) begin transaction
63
+ D, [2017-05-10T15:36:05.366101 #94487] DEBUG -- : SQL (0.1ms) INSERT INTO "books" ("title") VALUES (?) [["title", "Bango"]]
64
+ D, [2017-05-10T15:36:05.366342 #94487] DEBUG -- :  (0.0ms) rollback transaction
65
+ I, [2017-05-10T15:36:05.373392 #94487] INFO -- : Completed 500 Internal Server Error in 8ms (ActiveRecord: 0.2ms)
66
+ F, [2017-05-10T15:36:05.379978 #94487] FATAL -- :
67
+ F, [2017-05-10T15:36:05.400878 #94487] FATAL -- : AirbrakeTestError (after_rollback):
68
+ F, [2017-05-10T15:36:05.400943 #94487] FATAL -- :
69
+ F, [2017-05-10T15:36:05.401013 #94487] FATAL -- : lib/airbrake/rails/active_record.rb:27:in `run_callbacks'
70
+ lib/airbrake/rack/middleware.rb:52:in `call'
71
+ I, [2017-05-10T15:36:05.406018 #94487] INFO -- : Started GET "/notify_airbrake_helper?foo=bar" for 127.0.0.1 at 2017-05-10 15:36:05 +0300
72
+ I, [2017-05-10T15:36:05.407054 #94487] INFO -- : Processing by DummyController#notify_airbrake_helper as HTML
73
+ I, [2017-05-10T15:36:05.407085 #94487] INFO -- : Parameters: {"foo"=>"bar"}
74
+ I, [2017-05-10T15:36:05.410931 #94487] INFO -- : Rendering dummy/notify_airbrake_helper.html.erb within layouts/application
75
+ I, [2017-05-10T15:36:05.411223 #94487] INFO -- : Rendered dummy/notify_airbrake_helper.html.erb within layouts/application (0.2ms)
76
+ I, [2017-05-10T15:36:05.411525 #94487] INFO -- : Completed 200 OK in 4ms (Views: 0.9ms | ActiveRecord: 0.0ms)
77
+ I, [2017-05-10T15:36:05.519724 #94487] INFO -- : Started GET "/notify_airbrake_helper?foo=bar" for 127.0.0.1 at 2017-05-10 15:36:05 +0300
78
+ I, [2017-05-10T15:36:05.520725 #94487] INFO -- : Processing by DummyController#notify_airbrake_helper as HTML
79
+ I, [2017-05-10T15:36:05.520759 #94487] INFO -- : Parameters: {"foo"=>"bar"}
80
+ I, [2017-05-10T15:36:05.541482 #94487] INFO -- : Rendering dummy/notify_airbrake_helper.html.erb within layouts/application
81
+ I, [2017-05-10T15:36:05.541855 #94487] INFO -- : Rendered dummy/notify_airbrake_helper.html.erb within layouts/application (0.3ms)
82
+ I, [2017-05-10T15:36:05.542161 #94487] INFO -- : Completed 200 OK in 21ms (Views: 1.0ms | ActiveRecord: 0.0ms)
83
+ I, [2017-05-10T15:36:05.546793 #94487] INFO -- : Started GET "/notify_airbrake_helper?foo=bar" for 127.0.0.1 at 2017-05-10 15:36:05 +0300
84
+ I, [2017-05-10T15:36:05.547999 #94487] INFO -- : Processing by DummyController#notify_airbrake_helper as HTML
85
+ I, [2017-05-10T15:36:05.548035 #94487] INFO -- : Parameters: {"foo"=>"bar"}
86
+ I, [2017-05-10T15:36:05.551986 #94487] INFO -- : Rendering dummy/notify_airbrake_helper.html.erb within layouts/application
87
+ I, [2017-05-10T15:36:05.552277 #94487] INFO -- : Rendered dummy/notify_airbrake_helper.html.erb within layouts/application (0.2ms)
88
+ I, [2017-05-10T15:36:05.552614 #94487] INFO -- : Completed 200 OK in 5ms (Views: 1.0ms | ActiveRecord: 0.0ms)
89
+ I, [2017-05-10T15:36:05.662173 #94487] INFO -- : Started GET "/notify_airbrake_helper?foo=bar" for 127.0.0.1 at 2017-05-10 15:36:05 +0300
90
+ I, [2017-05-10T15:36:05.663103 #94487] INFO -- : Processing by DummyController#notify_airbrake_helper as HTML
91
+ I, [2017-05-10T15:36:05.663133 #94487] INFO -- : Parameters: {"foo"=>"bar"}
92
+ I, [2017-05-10T15:36:05.683255 #94487] INFO -- : Rendering dummy/notify_airbrake_helper.html.erb within layouts/application
93
+ I, [2017-05-10T15:36:05.683596 #94487] INFO -- : Rendered dummy/notify_airbrake_helper.html.erb within layouts/application (0.3ms)
94
+ I, [2017-05-10T15:36:05.683919 #94487] INFO -- : Completed 200 OK in 21ms (Views: 1.1ms | ActiveRecord: 0.0ms)
95
+ I, [2017-05-10T15:36:05.689994 #94487] INFO -- : Started GET "/notify_airbrake_helper?foo=bar" for 127.0.0.1 at 2017-05-10 15:36:05 +0300
96
+ I, [2017-05-10T15:36:05.691022 #94487] INFO -- : Processing by DummyController#notify_airbrake_helper as HTML
97
+ I, [2017-05-10T15:36:05.691051 #94487] INFO -- : Parameters: {"foo"=>"bar"}
98
+ I, [2017-05-10T15:36:05.694949 #94487] INFO -- : Rendering dummy/notify_airbrake_helper.html.erb within layouts/application
99
+ I, [2017-05-10T15:36:05.695250 #94487] INFO -- : Rendered dummy/notify_airbrake_helper.html.erb within layouts/application (0.2ms)
100
+ I, [2017-05-10T15:36:05.695560 #94487] INFO -- : Completed 200 OK in 4ms (Views: 0.9ms | ActiveRecord: 0.0ms)
101
+ I, [2017-05-10T15:36:05.801448 #94487] INFO -- : Started GET "/crash?foo=bar" for 127.0.0.1 at 2017-05-10 15:36:05 +0300
102
+ I, [2017-05-10T15:36:05.802450 #94487] INFO -- : Processing by DummyController#crash as HTML
103
+ I, [2017-05-10T15:36:05.802480 #94487] INFO -- : Parameters: {"foo"=>"bar"}
104
+ I, [2017-05-10T15:36:05.802726 #94487] INFO -- : Completed 500 Internal Server Error in 0ms (ActiveRecord: 0.0ms)
105
+ F, [2017-05-10T15:36:05.812437 #94487] FATAL -- :
106
+ F, [2017-05-10T15:36:05.812472 #94487] FATAL -- : AirbrakeTestError (AirbrakeTestError):
107
+ F, [2017-05-10T15:36:05.812500 #94487] FATAL -- :
108
+ F, [2017-05-10T15:36:05.812514 #94487] FATAL -- : lib/airbrake/rack/middleware.rb:52:in `call'
109
+ I, [2017-05-10T15:36:05.817366 #94487] INFO -- : Started GET "/crash?foo=bar" for 127.0.0.1 at 2017-05-10 15:36:05 +0300
110
+ I, [2017-05-10T15:36:05.818353 #94487] INFO -- : Processing by DummyController#crash as HTML
111
+ I, [2017-05-10T15:36:05.818394 #94487] INFO -- : Parameters: {"foo"=>"bar"}
112
+ I, [2017-05-10T15:36:05.818646 #94487] INFO -- : Completed 500 Internal Server Error in 0ms (ActiveRecord: 0.0ms)
113
+ F, [2017-05-10T15:36:05.822286 #94487] FATAL -- :
114
+ F, [2017-05-10T15:36:05.822341 #94487] FATAL -- : AirbrakeTestError (AirbrakeTestError):
115
+ F, [2017-05-10T15:36:05.822369 #94487] FATAL -- :
116
+ F, [2017-05-10T15:36:05.822395 #94487] FATAL -- : lib/airbrake/rack/middleware.rb:52:in `call'
117
+ I, [2017-05-10T15:36:05.928981 #94487] INFO -- : Started GET "/crash?foo=bar" for 127.0.0.1 at 2017-05-10 15:36:05 +0300
118
+ I, [2017-05-10T15:36:05.930119 #94487] INFO -- : Processing by DummyController#crash as HTML
119
+ I, [2017-05-10T15:36:05.930150 #94487] INFO -- : Parameters: {"foo"=>"bar"}
120
+ I, [2017-05-10T15:36:05.930404 #94487] INFO -- : Completed 500 Internal Server Error in 0ms (ActiveRecord: 0.0ms)
121
+ F, [2017-05-10T15:36:05.940139 #94487] FATAL -- :
122
+ F, [2017-05-10T15:36:05.940177 #94487] FATAL -- : AirbrakeTestError (AirbrakeTestError):
123
+ F, [2017-05-10T15:36:05.940191 #94487] FATAL -- :
124
+ F, [2017-05-10T15:36:05.940203 #94487] FATAL -- : lib/airbrake/rack/middleware.rb:52:in `call'
125
+ I, [2017-05-10T15:36:05.943973 #94487] INFO -- : Started GET "/crash?foo=bar" for 127.0.0.1 at 2017-05-10 15:36:05 +0300
126
+ I, [2017-05-10T15:36:05.944925 #94487] INFO -- : Processing by DummyController#crash as HTML
127
+ I, [2017-05-10T15:36:05.944957 #94487] INFO -- : Parameters: {"foo"=>"bar"}
128
+ I, [2017-05-10T15:36:05.945192 #94487] INFO -- : Completed 500 Internal Server Error in 0ms (ActiveRecord: 0.0ms)
129
+ F, [2017-05-10T15:36:05.948759 #94487] FATAL -- :
130
+ F, [2017-05-10T15:36:05.948794 #94487] FATAL -- : AirbrakeTestError (AirbrakeTestError):
131
+ F, [2017-05-10T15:36:05.948810 #94487] FATAL -- :
132
+ F, [2017-05-10T15:36:05.948826 #94487] FATAL -- : lib/airbrake/rack/middleware.rb:52:in `call'
133
+ I, [2017-05-10T15:36:06.057060 #94487] INFO -- : Started GET "/crash?foo=bar" for 127.0.0.1 at 2017-05-10 15:36:06 +0300
134
+ I, [2017-05-10T15:36:06.058049 #94487] INFO -- : Processing by DummyController#crash as HTML
135
+ I, [2017-05-10T15:36:06.058089 #94487] INFO -- : Parameters: {"foo"=>"bar"}
136
+ I, [2017-05-10T15:36:06.058364 #94487] INFO -- : Completed 500 Internal Server Error in 0ms (ActiveRecord: 0.0ms)
137
+ F, [2017-05-10T15:36:06.068246 #94487] FATAL -- :
138
+ F, [2017-05-10T15:36:06.068279 #94487] FATAL -- : AirbrakeTestError (AirbrakeTestError):
139
+ F, [2017-05-10T15:36:06.068292 #94487] FATAL -- :
140
+ F, [2017-05-10T15:36:06.068304 #94487] FATAL -- : lib/airbrake/rack/middleware.rb:52:in `call'
141
+ I, [2017-05-10T15:36:06.072478 #94487] INFO -- : Started GET "/notify_airbrake_sync_helper?foo=bar" for 127.0.0.1 at 2017-05-10 15:36:06 +0300
142
+ I, [2017-05-10T15:36:06.073512 #94487] INFO -- : Processing by DummyController#notify_airbrake_sync_helper as HTML
143
+ I, [2017-05-10T15:36:06.073543 #94487] INFO -- : Parameters: {"foo"=>"bar"}
144
+ I, [2017-05-10T15:36:06.093948 #94487] INFO -- : Rendering dummy/notify_airbrake_sync_helper.html.erb within layouts/application
145
+ I, [2017-05-10T15:36:06.094282 #94487] INFO -- : Rendered dummy/notify_airbrake_sync_helper.html.erb within layouts/application (0.2ms)
146
+ I, [2017-05-10T15:36:06.094636 #94487] INFO -- : Completed 200 OK in 21ms (Views: 1.1ms | ActiveRecord: 0.0ms)
147
+ I, [2017-05-10T15:36:06.100060 #94487] INFO -- : Started GET "/notify_airbrake_sync_helper?foo=bar" for 127.0.0.1 at 2017-05-10 15:36:06 +0300
148
+ I, [2017-05-10T15:36:06.101100 #94487] INFO -- : Processing by DummyController#notify_airbrake_sync_helper as HTML
149
+ I, [2017-05-10T15:36:06.101139 #94487] INFO -- : Parameters: {"foo"=>"bar"}
150
+ I, [2017-05-10T15:36:06.124800 #94487] INFO -- : Rendering dummy/notify_airbrake_sync_helper.html.erb within layouts/application
151
+ I, [2017-05-10T15:36:06.125127 #94487] INFO -- : Rendered dummy/notify_airbrake_sync_helper.html.erb within layouts/application (0.2ms)
152
+ I, [2017-05-10T15:36:06.125447 #94487] INFO -- : Completed 200 OK in 24ms (Views: 1.0ms | ActiveRecord: 0.0ms)
153
+ I, [2017-05-10T15:36:06.129802 #94487] INFO -- : Started GET "/notify_airbrake_sync_helper?foo=bar" for 127.0.0.1 at 2017-05-10 15:36:06 +0300
154
+ I, [2017-05-10T15:36:06.130748 #94487] INFO -- : Processing by DummyController#notify_airbrake_sync_helper as HTML
155
+ I, [2017-05-10T15:36:06.130779 #94487] INFO -- : Parameters: {"foo"=>"bar"}
156
+ I, [2017-05-10T15:36:06.150028 #94487] INFO -- : Rendering dummy/notify_airbrake_sync_helper.html.erb within layouts/application
157
+ I, [2017-05-10T15:36:06.150320 #94487] INFO -- : Rendered dummy/notify_airbrake_sync_helper.html.erb within layouts/application (0.2ms)
158
+ I, [2017-05-10T15:36:06.150625 #94487] INFO -- : Completed 200 OK in 20ms (Views: 0.9ms | ActiveRecord: 0.0ms)
159
+ I, [2017-05-10T15:36:06.155593 #94487] INFO -- : Started GET "/notify_airbrake_sync_helper?foo=bar" for 127.0.0.1 at 2017-05-10 15:36:06 +0300
160
+ I, [2017-05-10T15:36:06.156668 #94487] INFO -- : Processing by DummyController#notify_airbrake_sync_helper as HTML
161
+ I, [2017-05-10T15:36:06.156705 #94487] INFO -- : Parameters: {"foo"=>"bar"}
162
+ I, [2017-05-10T15:36:06.179932 #94487] INFO -- : Rendering dummy/notify_airbrake_sync_helper.html.erb within layouts/application
163
+ I, [2017-05-10T15:36:06.180290 #94487] INFO -- : Rendered dummy/notify_airbrake_sync_helper.html.erb within layouts/application (0.3ms)
164
+ I, [2017-05-10T15:36:06.180641 #94487] INFO -- : Completed 200 OK in 24ms (Views: 1.1ms | ActiveRecord: 0.0ms)
165
+ I, [2017-05-10T15:36:06.185756 #94487] INFO -- : Started GET "/notify_airbrake_sync_helper?foo=bar" for 127.0.0.1 at 2017-05-10 15:36:06 +0300
166
+ I, [2017-05-10T15:36:06.186755 #94487] INFO -- : Processing by DummyController#notify_airbrake_sync_helper as HTML
167
+ I, [2017-05-10T15:36:06.186787 #94487] INFO -- : Parameters: {"foo"=>"bar"}
168
+ I, [2017-05-10T15:36:06.207771 #94487] INFO -- : Rendering dummy/notify_airbrake_sync_helper.html.erb within layouts/application
169
+ I, [2017-05-10T15:36:06.208044 #94487] INFO -- : Rendered dummy/notify_airbrake_sync_helper.html.erb within layouts/application (0.2ms)
170
+ I, [2017-05-10T15:36:06.208293 #94487] INFO -- : Completed 200 OK in 21ms (Views: 0.8ms | ActiveRecord: 0.0ms)
171
+ I, [2017-05-10T15:36:06.212867 #94487] INFO -- : Started GET "/crash" for 127.0.0.1 at 2017-05-10 15:36:06 +0300
172
+ I, [2017-05-10T15:36:06.213825 #94487] INFO -- : Processing by DummyController#crash as HTML
173
+ I, [2017-05-10T15:36:06.214066 #94487] INFO -- : Completed 500 Internal Server Error in 0ms (ActiveRecord: 0.0ms)
174
+ F, [2017-05-10T15:36:06.218481 #94487] FATAL -- :
175
+ F, [2017-05-10T15:36:06.218540 #94487] FATAL -- : AirbrakeTestError (AirbrakeTestError):
176
+ F, [2017-05-10T15:36:06.218579 #94487] FATAL -- :
177
+ F, [2017-05-10T15:36:06.218594 #94487] FATAL -- : lib/airbrake/rack/middleware.rb:52:in `call'
178
+ I, [2017-05-10T15:36:06.323152 #94487] INFO -- : Started GET "/delayed_job" for 127.0.0.1 at 2017-05-10 15:36:06 +0300
179
+ I, [2017-05-10T15:36:06.324069 #94487] INFO -- : Processing by DummyController#delayed_job as HTML
180
+ I, [2017-05-10T15:36:06.355846 #94487] INFO -- : Completed 500 Internal Server Error in 32ms (ActiveRecord: 0.3ms)
181
+ F, [2017-05-10T15:36:06.359348 #94487] FATAL -- :
182
+ F, [2017-05-10T15:36:06.359387 #94487] FATAL -- : AirbrakeTestError (delayed_job error):
183
+ F, [2017-05-10T15:36:06.359412 #94487] FATAL -- :
184
+ F, [2017-05-10T15:36:06.359435 #94487] FATAL -- : lib/airbrake/delayed_job.rb:11:in `block (2 levels) in <class:Airbrake>'
185
+ lib/airbrake/rack/middleware.rb:52:in `call'
186
+ I, [2017-05-10T15:36:10.371298 #94487] INFO -- : Started GET "/delayed_job" for 127.0.0.1 at 2017-05-10 15:36:10 +0300
187
+ I, [2017-05-10T15:36:10.372391 #94487] INFO -- : Processing by DummyController#delayed_job as HTML
188
+ I, [2017-05-10T15:36:10.373320 #94487] INFO -- : Completed 500 Internal Server Error in 1ms (ActiveRecord: 0.0ms)
189
+ F, [2017-05-10T15:36:10.374347 #94487] FATAL -- :
190
+ F, [2017-05-10T15:36:10.374379 #94487] FATAL -- : AirbrakeTestError (delayed_job error):
191
+ F, [2017-05-10T15:36:10.374394 #94487] FATAL -- :
192
+ F, [2017-05-10T15:36:10.374408 #94487] FATAL -- : lib/airbrake/delayed_job.rb:11:in `block (2 levels) in <class:Airbrake>'
193
+ lib/airbrake/rack/middleware.rb:52:in `call'
194
+ I, [2017-05-10T15:36:12.383836 #94487] INFO -- : Started GET "/crash" for 127.0.0.1 at 2017-05-10 15:36:12 +0300
195
+ I, [2017-05-10T15:36:12.385304 #94487] INFO -- : Processing by DummyController#crash as HTML
196
+ I, [2017-05-10T15:36:12.385611 #94487] INFO -- : Completed 500 Internal Server Error in 0ms (ActiveRecord: 0.0ms)
197
+ F, [2017-05-10T15:36:12.397588 #94487] FATAL -- :
198
+ F, [2017-05-10T15:36:12.397621 #94487] FATAL -- : AirbrakeTestError (AirbrakeTestError):
199
+ F, [2017-05-10T15:36:12.397634 #94487] FATAL -- :
200
+ F, [2017-05-10T15:36:12.397645 #94487] FATAL -- : lib/airbrake/rack/middleware.rb:52:in `call'
201
+ I, [2017-05-10T15:36:12.401679 #94487] INFO -- : Started GET "/crash" for 127.0.0.1 at 2017-05-10 15:36:12 +0300
202
+ I, [2017-05-10T15:36:12.402599 #94487] INFO -- : Processing by DummyController#crash as HTML
203
+ I, [2017-05-10T15:36:12.402924 #94487] INFO -- : Completed 500 Internal Server Error in 0ms (ActiveRecord: 0.0ms)
204
+ F, [2017-05-10T15:36:12.407169 #94487] FATAL -- :
205
+ F, [2017-05-10T15:36:12.407207 #94487] FATAL -- : AirbrakeTestError (AirbrakeTestError):
206
+ F, [2017-05-10T15:36:12.407234 #94487] FATAL -- :
207
+ F, [2017-05-10T15:36:12.407249 #94487] FATAL -- : lib/airbrake/rack/middleware.rb:52:in `call'
208
+ I, [2017-05-10T15:36:12.513558 #94487] INFO -- : Started GET "/crash" for 127.0.0.1 at 2017-05-10 15:36:12 +0300
209
+ I, [2017-05-10T15:36:12.514506 #94487] INFO -- : Processing by DummyController#crash as HTML
210
+ I, [2017-05-10T15:36:12.514805 #94487] INFO -- : Completed 500 Internal Server Error in 0ms (ActiveRecord: 0.0ms)
211
+ F, [2017-05-10T15:36:12.526530 #94487] FATAL -- :
212
+ F, [2017-05-10T15:36:12.526564 #94487] FATAL -- : AirbrakeTestError (AirbrakeTestError):
213
+ F, [2017-05-10T15:36:12.526577 #94487] FATAL -- :
214
+ F, [2017-05-10T15:36:12.526588 #94487] FATAL -- : lib/airbrake/rack/middleware.rb:52:in `call'
215
+ I, [2017-05-10T15:36:12.530386 #94487] INFO -- : Started GET "/crash" for 127.0.0.1 at 2017-05-10 15:36:12 +0300
216
+ I, [2017-05-10T15:36:12.531211 #94487] INFO -- : Processing by DummyController#crash as HTML
217
+ I, [2017-05-10T15:36:12.531452 #94487] INFO -- : Completed 500 Internal Server Error in 0ms (ActiveRecord: 0.0ms)
218
+ F, [2017-05-10T15:36:12.534731 #94487] FATAL -- :
219
+ F, [2017-05-10T15:36:12.540741 #94487] FATAL -- : AirbrakeTestError (AirbrakeTestError):
220
+ F, [2017-05-10T15:36:12.540771 #94487] FATAL -- :
221
+ F, [2017-05-10T15:36:12.540788 #94487] FATAL -- : lib/airbrake/rack/middleware.rb:52:in `call'
222
+ I, [2017-05-10T15:36:12.544686 #94487] INFO -- : Started GET "/crash" for 127.0.0.1 at 2017-05-10 15:36:12 +0300
223
+ I, [2017-05-10T15:36:12.545519 #94487] INFO -- : Processing by DummyController#crash as HTML
224
+ I, [2017-05-10T15:36:12.545751 #94487] INFO -- : Completed 500 Internal Server Error in 0ms (ActiveRecord: 0.0ms)
225
+ F, [2017-05-10T15:36:12.549271 #94487] FATAL -- :
226
+ F, [2017-05-10T15:36:12.549309 #94487] FATAL -- : AirbrakeTestError (AirbrakeTestError):
227
+ F, [2017-05-10T15:36:12.549323 #94487] FATAL -- :
228
+ F, [2017-05-10T15:36:12.549337 #94487] FATAL -- : lib/airbrake/rack/middleware.rb:52:in `call'
229
+ I, [2017-05-10T15:36:12.655761 #94487] INFO -- : Started GET "/crash" for 127.0.0.1 at 2017-05-10 15:36:12 +0300
230
+ I, [2017-05-10T15:36:12.656718 #94487] INFO -- : Processing by DummyController#crash as HTML
231
+ I, [2017-05-10T15:36:12.657063 #94487] INFO -- : Completed 500 Internal Server Error in 0ms (ActiveRecord: 0.0ms)
232
+ F, [2017-05-10T15:36:12.667820 #94487] FATAL -- :
233
+ F, [2017-05-10T15:36:12.667847 #94487] FATAL -- : AirbrakeTestError (AirbrakeTestError):
234
+ F, [2017-05-10T15:36:12.667859 #94487] FATAL -- :
235
+ F, [2017-05-10T15:36:12.667870 #94487] FATAL -- : lib/airbrake/rack/middleware.rb:52:in `call'
236
+ I, [2017-05-10T15:36:12.671991 #94487] INFO -- : Started GET "/crash" for 127.0.0.1 at 2017-05-10 15:36:12 +0300
237
+ I, [2017-05-10T15:36:12.672771 #94487] INFO -- : Processing by DummyController#crash as HTML
238
+ I, [2017-05-10T15:36:12.673013 #94487] INFO -- : Completed 500 Internal Server Error in 0ms (ActiveRecord: 0.0ms)
239
+ F, [2017-05-10T15:36:12.677606 #94487] FATAL -- :
240
+ F, [2017-05-10T15:36:12.677644 #94487] FATAL -- : AirbrakeTestError (AirbrakeTestError):
241
+ F, [2017-05-10T15:36:12.677680 #94487] FATAL -- :
242
+ F, [2017-05-10T15:36:12.677724 #94487] FATAL -- : lib/airbrake/rack/middleware.rb:52:in `call'
243
+ I, [2017-05-10T15:36:12.688309 #94487] INFO -- : Started GET "/crash" for 127.0.0.1 at 2017-05-10 15:36:12 +0300
244
+ I, [2017-05-10T15:36:12.689076 #94487] INFO -- : Processing by DummyController#crash as HTML
245
+ I, [2017-05-10T15:36:12.689329 #94487] INFO -- : Completed 500 Internal Server Error in 0ms (ActiveRecord: 0.0ms)
246
+ F, [2017-05-10T15:36:12.695078 #94487] FATAL -- :
247
+ F, [2017-05-10T15:36:12.695114 #94487] FATAL -- : AirbrakeTestError (AirbrakeTestError):
248
+ F, [2017-05-10T15:36:12.695129 #94487] FATAL -- :
249
+ F, [2017-05-10T15:36:12.695142 #94487] FATAL -- : lib/airbrake/rack/middleware.rb:52:in `call'
@@ -186,19 +186,22 @@ RSpec.describe "Rails integration specs" do
186
186
  end
187
187
 
188
188
  context "when Airbrake is not configured" do
189
- it "doesn't report errors" do
190
- allow(Airbrake).to receive(:build_notice).and_return(nil)
191
- allow(Airbrake).to receive(:notify)
189
+ before do
190
+ @notifiers = Airbrake.instance_variable_get(:@notifiers)
191
+ @default_notifier = @notifiers.delete(:default)
192
+ end
192
193
 
194
+ after do
195
+ @notifiers[:default] = @default_notifier
196
+ end
197
+
198
+ it "doesn't report errors" do
193
199
  with_resque { get '/resque' }
194
200
 
195
201
  wait_for(
196
202
  a_request(:post, endpoint).
197
203
  with(body: /"message":"resque error"/)
198
204
  ).not_to have_been_made
199
-
200
- expect(Airbrake).to have_received(:build_notice)
201
- expect(Airbrake).not_to have_received(:notify)
202
205
  end
203
206
  end
204
207
  end
@@ -224,12 +227,16 @@ RSpec.describe "Rails integration specs" do
224
227
  before do
225
228
  # Make sure the Logger intergration doesn't get in the way.
226
229
  allow_any_instance_of(Logger).to receive(:airbrake_notifier).and_return(nil)
230
+
231
+ @notifiers = Airbrake.instance_variable_get(:@notifiers)
232
+ @default_notifier = @notifiers.delete(:default)
227
233
  end
228
234
 
229
- it "doesn't report errors" do
230
- allow(Airbrake).to receive(:build_notice).and_return(nil)
231
- allow(Airbrake).to receive(:notify)
235
+ after do
236
+ @notifiers[:default] = @default_notifier
237
+ end
232
238
 
239
+ it "doesn't report errors" do
233
240
  # Make sure we don't call `build_notice` more than 1 time. Rack
234
241
  # integration will try to handle error 500 and we want to prevent
235
242
  # that: https://github.com/airbrake/airbrake/pull/583
@@ -245,9 +252,6 @@ RSpec.describe "Rails integration specs" do
245
252
  a_request(:post, endpoint).
246
253
  with(body: /"message":"delayed_job error"/)
247
254
  ).not_to have_been_made
248
-
249
- expect(Airbrake).to have_received(:build_notice)
250
- expect(Airbrake).not_to have_received(:notify)
251
255
  end
252
256
  end
253
257
  end
@@ -91,39 +91,33 @@ RSpec.shared_examples 'rack examples' do
91
91
  get '/crash', nil, 'HTTP_USER_AGENT' => 'Bot', 'HTTP_REFERER' => 'bingo.com'
92
92
  end
93
93
 
94
- it "features url" do
94
+ it "contains url" do
95
95
  wait_for_a_request_with_body(
96
96
  %r("context":{.*"url":"http://example\.org/crash".*})
97
97
  )
98
98
  end
99
99
 
100
- it "features hostname" do
100
+ it "contains hostname" do
101
101
  wait_for_a_request_with_body(/"context":{.*"hostname":".+".*}/)
102
102
  end
103
103
 
104
- it "features userAgent" do
104
+ it "contains userAgent" do
105
105
  wait_for_a_request_with_body(/"context":{.*"userAgent":"Bot".*}/)
106
106
  end
107
- end
108
- end
109
-
110
- describe "environment payload" do
111
- before do
112
- get '/crash', nil, 'HTTP_REFERER' => 'bingo.com'
113
- end
114
107
 
115
- it "features referer" do
116
- wait_for_a_request_with_body(/"environment":{.*"referer":"bingo.com".*}/)
117
- end
108
+ it "contains referer" do
109
+ wait_for_a_request_with_body(/"context":{.*"referer":"bingo.com".*}/)
110
+ end
118
111
 
119
- it "contains HTTP headers" do
120
- wait_for_a_request_with_body(
121
- /"environment":{.*"headers":{.*"CONTENT_LENGTH":"0".*}/
122
- )
123
- end
112
+ it "contains HTTP headers" do
113
+ wait_for_a_request_with_body(
114
+ /"context":{.*"headers":{.*"CONTENT_LENGTH":"0".*}/
115
+ )
116
+ end
124
117
 
125
- it "contains HTTP method" do
126
- wait_for_a_request_with_body(/"environment":{.*"httpMethod":"GET".*}/)
118
+ it "contains HTTP method" do
119
+ wait_for_a_request_with_body(/"context":{.*"httpMethod":"GET".*}/)
120
+ end
127
121
  end
128
122
  end
129
123
  end
@@ -65,15 +65,15 @@ if ENV['APPRAISAL_INITIALIZED']
65
65
 
66
66
  require 'resque'
67
67
  require 'resque_spec'
68
- require 'airbrake/resque/failure'
68
+ require 'airbrake/resque'
69
69
  Resque::Failure.backend = Resque::Failure::Airbrake
70
70
 
71
71
  require 'delayed_job'
72
72
  require 'delayed_job_active_record'
73
- require 'airbrake/delayed_job/plugin'
73
+ require 'airbrake/delayed_job'
74
74
  Delayed::Worker.delay_jobs = false
75
75
 
76
- require 'airbrake/rails/railtie'
76
+ require 'airbrake/rails'
77
77
 
78
78
  load 'apps/rails/dummy_task.rake'
79
79
  require 'apps/rails/dummy_app'
@@ -14,7 +14,7 @@ RSpec.describe Airbrake::Rack::ContextFilter do
14
14
  end
15
15
 
16
16
  let(:uri) { '/' }
17
- let(:opts) { Hash.new }
17
+ let(:opts) { {} }
18
18
 
19
19
  it "adds framework version to the context" do
20
20
  subject.call(notice)
@@ -24,7 +24,7 @@ RSpec.describe Airbrake::Rack::ContextFilter do
24
24
 
25
25
  context "when URL is present" do
26
26
  let(:uri) { '/bingo' }
27
- let(:opts) { Hash.new }
27
+ let(:opts) { {} }
28
28
 
29
29
  it "adds URL to the context" do
30
30
  subject.call(notice)
@@ -24,25 +24,25 @@ RSpec.describe Airbrake::Rack::HttpHeadersFilter do
24
24
  let(:uri) { '/' }
25
25
  let(:opts) { headers.dup }
26
26
 
27
- it "preserves data that already has been added to the environment" do
28
- notice[:environment]['SOME_KEY'] = 'SOME_VALUE'
27
+ it "preserves data that already has been added to the context" do
28
+ notice[:context]['SOME_KEY'] = 'SOME_VALUE'
29
29
  subject.call(notice)
30
- expect(notice[:environment]['SOME_KEY']).to eq('SOME_VALUE')
30
+ expect(notice[:context]['SOME_KEY']).to eq('SOME_VALUE')
31
31
  end
32
32
 
33
33
  context "when CONTENT_TYPE, CONTENT_LENGTH and HTTP_* headers are present" do
34
- it "adds them to the environment hash" do
34
+ it "adds them to the context hash" do
35
35
  subject.call(notice)
36
- expect(notice[:environment][:headers]).to eq(headers)
36
+ expect(notice[:context][:headers]).to eq(headers)
37
37
  end
38
38
  end
39
39
 
40
40
  context "when unexpected headers are present" do
41
41
  let(:opts) { headers.dup.merge('X-SOME-HEADER' => 'value') }
42
42
 
43
- it "adds them to the environment hash" do
43
+ it "adds them to the context hash" do
44
44
  subject.call(notice)
45
- expect(notice[:environment][:headers]).to eq(headers)
45
+ expect(notice[:context][:headers]).to eq(headers)
46
46
  end
47
47
  end
48
48
  end
@@ -15,7 +15,7 @@ RSpec.describe Airbrake::Rack::HttpParamsFilter do
15
15
 
16
16
  context "when rack params is nil" do
17
17
  let(:uri) { '/' }
18
- let(:opts) { Hash.new }
18
+ let(:opts) { {} }
19
19
 
20
20
  it "doesn't overwrite the params key with nil" do
21
21
  subject.call(notice)
@@ -42,11 +42,17 @@ RSpec.describe Airbrake::Rack::HttpParamsFilter do
42
42
  subject.call(notice)
43
43
  expect(notice[:params]).to eq(params)
44
44
  end
45
+
46
+ it "merges given params with existing params" do
47
+ notice[:params] = { bingo: :bango }
48
+ subject.call(notice)
49
+ expect(notice[:params]).to eq(bingo: :bango, a: 1, b: 2)
50
+ end
45
51
  end
46
52
 
47
53
  context "when query string params are present" do
48
54
  let(:uri) { '/?bingo=bango&bongo=bish' }
49
- let(:opts) { Hash.new }
55
+ let(:opts) { {} }
50
56
 
51
57
  it "sets the params hash" do
52
58
  subject.call(notice)