diff options
author | Clworld <clworld@ggtea.org> | 2017-07-27 07:38:20 +0900 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2017-07-27 00:38:20 +0200 |
commit | 994d948c3947b75140c2a2a7de5b81713c7b8ea3 (patch) | |
tree | 525360503ce6a7db4ac7b522c58d2de8046d8a97 | |
parent | f5e228ad2e2503d7cbe3da975e7d2b473e60712b (diff) |
Add callback_url/acct information for Sidekiq PuSH workers Exception. (#4281)
* Add destination informations to exception on SubscribeWorker and DeliveryWorker. * Simplify delivery error message. * Prevent changing Exception type... * fix typo.
-rw-r--r-- | app/lib/exceptions.rb | 10 | ||||
-rw-r--r-- | app/workers/pubsubhubbub/delivery_worker.rb | 2 | ||||
-rw-r--r-- | app/workers/pubsubhubbub/subscribe_worker.rb | 2 |
3 files changed, 9 insertions, 5 deletions
diff --git a/app/lib/exceptions.rb b/app/lib/exceptions.rb index 34d84a34f..b2489711d 100644 --- a/app/lib/exceptions.rb +++ b/app/lib/exceptions.rb @@ -8,11 +8,11 @@ module Mastodon class UnexpectedResponseError < Error def initialize(response = nil) - @response = response - end - - def to_s - "#{@response.uri} returned code #{@response.code}" + if response.respond_to? :uri + super("#{response.uri} returned code #{response.code}") + else + super + end end end end diff --git a/app/workers/pubsubhubbub/delivery_worker.rb b/app/workers/pubsubhubbub/delivery_worker.rb index 035a59048..88645cf33 100644 --- a/app/workers/pubsubhubbub/delivery_worker.rb +++ b/app/workers/pubsubhubbub/delivery_worker.rb @@ -16,6 +16,8 @@ class Pubsubhubbub::DeliveryWorker @subscription = Subscription.find(subscription_id) @payload = payload process_delivery unless blocked_domain? + rescue => e + raise e.class, "Delivery failed for #{subscription&.callback_url}: #{e.message}" end private diff --git a/app/workers/pubsubhubbub/subscribe_worker.rb b/app/workers/pubsubhubbub/subscribe_worker.rb index 6865e7136..9178079d4 100644 --- a/app/workers/pubsubhubbub/subscribe_worker.rb +++ b/app/workers/pubsubhubbub/subscribe_worker.rb @@ -22,5 +22,7 @@ class Pubsubhubbub::SubscribeWorker account = Account.find(account_id) logger.debug "PuSH re-subscribing to #{account.acct}" ::SubscribeService.new.call(account) + rescue => e + raise e.class, "Subscribe failed for #{account&.acct}: #{e.message}" end end |