We only return `nil` when we know the person, but don't know the key or the key is invalid, so it doesn't make sense to retry in this case. When the person isn't known and can't be fetched we raise a DiscoveryError which will be retried. Also the errors were moved to the `Signable` module in the last release. closes #7717
37 lines
1.6 KiB
Ruby
37 lines
1.6 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Workers
|
|
class ReceiveBase < Base
|
|
sidekiq_options queue: :urgent
|
|
|
|
include Diaspora::Logging
|
|
|
|
# don't retry for errors that will fail again
|
|
def filter_errors_for_retry
|
|
yield
|
|
rescue DiasporaFederation::Entity::ValidationError,
|
|
DiasporaFederation::Parsers::BaseParser::InvalidRootNode,
|
|
DiasporaFederation::Entity::InvalidEntityName,
|
|
DiasporaFederation::Entity::UnknownEntity,
|
|
DiasporaFederation::Entities::Signable::PublicKeyNotFound,
|
|
DiasporaFederation::Entities::Signable::SignatureVerificationFailed,
|
|
DiasporaFederation::Entities::Participation::ParentNotLocal,
|
|
DiasporaFederation::Federation::Receiver::InvalidSender,
|
|
DiasporaFederation::Federation::Receiver::NotPublic,
|
|
DiasporaFederation::Salmon::SenderKeyNotFound,
|
|
DiasporaFederation::Salmon::InvalidEnvelope,
|
|
DiasporaFederation::Salmon::InvalidSignature,
|
|
DiasporaFederation::Salmon::InvalidDataType,
|
|
DiasporaFederation::Salmon::InvalidAlgorithm,
|
|
DiasporaFederation::Salmon::InvalidEncoding,
|
|
Diaspora::Federation::AuthorIgnored,
|
|
Diaspora::Federation::InvalidAuthor,
|
|
# TODO: deprecated
|
|
DiasporaFederation::Salmon::MissingMagicEnvelope,
|
|
DiasporaFederation::Salmon::MissingAuthor,
|
|
DiasporaFederation::Salmon::MissingHeader,
|
|
DiasporaFederation::Salmon::InvalidHeader => e
|
|
logger.warn "don't retry for error: #{e.class}"
|
|
end
|
|
end
|
|
end
|