Refs #22628 Mark problems parsing response (partial message, network error without exception etc - hello testing), as "malformed_response_error", and promote this as well as general "service_error" to recoverable exceptions (don't isolate node on error). This to better handle intermittent network issues as well as making error-testing more deterministic.
56 lines
1.2 KiB
C++
56 lines
1.2 KiB
C++
/*
|
|
* Copyright (C) 2024 ScyllaDB
|
|
*
|
|
*/
|
|
|
|
/*
|
|
* SPDX-License-Identifier: LicenseRef-ScyllaDB-Source-Available-1.0
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "db/extensions.hh"
|
|
|
|
namespace encryption {
|
|
|
|
using base_error = db::extension_storage_exception;
|
|
|
|
class permission_error : public db::extension_storage_permission_error {
|
|
public:
|
|
using mybase = db::extension_storage_permission_error;
|
|
using mybase::mybase;
|
|
};
|
|
|
|
class configuration_error : public db::extension_storage_misconfigured {
|
|
public:
|
|
using mybase = db::extension_storage_misconfigured;
|
|
using mybase::mybase;
|
|
};
|
|
|
|
class service_error : public db::extension_storage_resource_unavailable {
|
|
public:
|
|
using mybase = db::extension_storage_resource_unavailable;
|
|
using mybase::mybase;
|
|
};
|
|
|
|
class missing_resource_error : public service_error {
|
|
public:
|
|
using service_error::service_error;
|
|
};
|
|
|
|
// #4970 - not 100% correct, but network errors are
|
|
// generally intermittent/recoverable. Mark as a non-isolating
|
|
// error.
|
|
class network_error : public missing_resource_error {
|
|
public:
|
|
using missing_resource_error::missing_resource_error;
|
|
};
|
|
|
|
class malformed_response_error : public service_error {
|
|
public:
|
|
using service_error::service_error;
|
|
};
|
|
|
|
}
|
|
|