lib/errors.rb (6 lines of code) (raw):
#
# Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
# or more contributor license agreements. Licensed under the Elastic License 2.0;
# you may not use this file except in compliance with the Elastic License 2.0.
#
# frozen_string_literal: true
class Errors
# Raised only if the queue item added somehow overflows the queue threshold.
# The queue threshold is checked before an item is added so this error shouldn't occur.
# If this error occurs, something is wrong with the interaction between the Elasticsearch sink and BulkQueue.
class BulkQueueOverflowError < StandardError; end
# Raised when attempting to add a crawl result to the sink, but it is currently locked.
# This is specific for Elasticsearch sink. Basically the sink is single-threaded but
# receives crawl results from multi-threaded processes. This error is raised to prevent
# overloading the queue if Elasticsearch indexing is failing repeatedly and performing
# exponential backoff. This error should be treated as retryable.
class SinkLockedError < StandardError; end
# Raised when there is a connection error to Elasticsearch. Specific for Elasticsearch sink.
# During initialization of the Elasticsearch sink, it will attempt to make contact to
# the host provided in the configuration. If contact cannot be established, a system exit will occur.
class ExitIfESConnectionError < SystemExit; end
# Raised when the desired output index does not exist. This is specific for Elasticsearch
# sink. During initialization of the Elasticsearch sink, it will call indices.exists()
# against the output_index value, and will continue if the index is found.
# If it is not found, this error will be raised, which causes a system exit to occur.
class ExitIfUnableToCreateIndex < SystemExit; end
end