Enum StorageError

Source
pub enum StorageError {
    StorageInternalError,
    MissingTrieValue(MissingTrieValue),
    UnexpectedTrieValue,
    StorageInconsistentState(String),
    FlatStorageBlockNotSupported(String),
    MemTrieLoadingError(String),
}
Expand description

Errors which may occur during working with trie storages, storing trie values (trie nodes and state values) by their hashes.

JSON schema
{
 "description": "Errors which may occur during working with trie storages, storing\ntrie values (trie nodes and state values) by their hashes.",
 "oneOf": [
   {
     "description": "Key-value db internal failure",
     "type": "string",
     "enum": [
       "StorageInternalError"
     ]
   },
   {
     "description": "Requested trie value by its hash which is missing in storage.",
     "type": "object",
     "required": [
       "MissingTrieValue"
     ],
     "properties": {
       "MissingTrieValue": {
         "$ref": "#/components/schemas/MissingTrieValue"
       }
     },
     "additionalProperties": false
   },
   {
     "description": "Found trie node which shouldn't be part of state. Raised during\nvalidation of state sync parts where incorrect node was passed.\nTODO (#8997): consider including hash of trie node.",
     "type": "string",
     "enum": [
       "UnexpectedTrieValue"
     ]
   },
   {
     "description": "Either invalid state or key-value db is corrupted.\nFor PartialStorage it cannot be corrupted.\nError message is unreliable and for debugging purposes only. It's also probably ok to\npanic in every place that produces this error.\nWe can check if db is corrupted by verifying everything in the state trie.",
     "type": "object",
     "required": [
       "StorageInconsistentState"
     ],
     "properties": {
       "StorageInconsistentState": {
         "type": "string"
       }
     },
     "additionalProperties": false
   },
   {
     "description": "Flat storage error, meaning that it doesn't support some block anymore.\nWe guarantee that such block cannot become final, thus block processing\nmust resume normally.",
     "type": "object",
     "required": [
       "FlatStorageBlockNotSupported"
     ],
     "properties": {
       "FlatStorageBlockNotSupported": {
         "type": "string"
       }
     },
     "additionalProperties": false
   },
   {
     "description": "In-memory trie could not be loaded for some reason.",
     "type": "object",
     "required": [
       "MemTrieLoadingError"
     ],
     "properties": {
       "MemTrieLoadingError": {
         "type": "string"
       }
     },
     "additionalProperties": false
   }
 ]
}

Variants§

§

StorageInternalError

Key-value db internal failure

§

MissingTrieValue(MissingTrieValue)

Requested trie value by its hash which is missing in storage.

§

UnexpectedTrieValue

Found trie node which shouldn’t be part of state. Raised during validation of state sync parts where incorrect node was passed. TODO (#8997): consider including hash of trie node.

§

StorageInconsistentState(String)

Either invalid state or key-value db is corrupted. For PartialStorage it cannot be corrupted. Error message is unreliable and for debugging purposes only. It’s also probably ok to panic in every place that produces this error. We can check if db is corrupted by verifying everything in the state trie.

§

FlatStorageBlockNotSupported(String)

Flat storage error, meaning that it doesn’t support some block anymore. We guarantee that such block cannot become final, thus block processing must resume normally.

§

MemTrieLoadingError(String)

In-memory trie could not be loaded for some reason.

Trait Implementations§

Source§

impl Clone for StorageError

Source§

fn clone(&self) -> StorageError

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for StorageError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for StorageError

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl From<&StorageError> for StorageError

Source§

fn from(value: &StorageError) -> Self

Converts to this type from the input type.
Source§

impl From<MissingTrieValue> for StorageError

Source§

fn from(value: MissingTrieValue) -> Self

Converts to this type from the input type.
Source§

impl From<StorageError> for InvalidTxError

Source§

fn from(value: StorageError) -> Self

Converts to this type from the input type.
Source§

impl Serialize for StorageError

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> ErasedDestructor for T
where T: 'static,