mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-13 21:01:05 +00:00
fatality based errors (#4448)
* seed commit for fatality based errors * fatality * first draft of fatality * cleanup * differnt approach * simplify * first working version for enums, with documentation * add split * fix simple split test case * extend README.md * update fatality impl * make tests passed * apply fatality to first subsystem * fatality fixes * use fatality in a subsystem * fix subsystemg * fixup proc macro * fix/test: log::*! do not execute when log handler is missing * fix spelling * rename Runtime2 to something sane * allow nested split with `forward` annotations * add free license * enable and fixup all tests * use external fatality Makes this more reviewable. * bump fatality dep Avoid duplicate expander compilations. * migrate availability distribution * more fatality usage * chore: bump fatality to 0.0.6 * fixup remaining subsystems * chore: fmt * make cargo spellcheck happy * remove single instance of `#[fatal(false)]` * last quality sweep * fixup
This commit is contained in:
committed by
GitHub
parent
85fa087405
commit
d946582707
@@ -36,13 +36,14 @@ use futures::{
|
||||
use lru::LruCache;
|
||||
use rand::seq::SliceRandom;
|
||||
|
||||
use fatality::Nested;
|
||||
use polkadot_erasure_coding::{branch_hash, branches, obtain_chunks_v1, recovery_threshold};
|
||||
#[cfg(not(test))]
|
||||
use polkadot_node_network_protocol::request_response::CHUNK_REQUEST_TIMEOUT;
|
||||
use polkadot_node_network_protocol::{
|
||||
request_response::{
|
||||
self as req_res, incoming, outgoing::RequestError, v1 as request_v1,
|
||||
IncomingRequestReceiver, OutgoingRequest, Recipient, Requests,
|
||||
self as req_res, outgoing::RequestError, v1 as request_v1, IncomingRequestReceiver,
|
||||
OutgoingRequest, Recipient, Requests,
|
||||
},
|
||||
IfDisconnected, UnifiedReputationChange as Rep,
|
||||
};
|
||||
@@ -992,7 +993,7 @@ impl AvailabilityRecoverySubsystem {
|
||||
}
|
||||
}
|
||||
in_req = recv_req => {
|
||||
match in_req {
|
||||
match in_req.into_nested().map_err(|fatal| SubsystemError::with_origin("availability-recovery", fatal))? {
|
||||
Ok(req) => {
|
||||
match query_full_data(&mut ctx, req.payload.candidate_hash).await {
|
||||
Ok(res) => {
|
||||
@@ -1009,11 +1010,10 @@ impl AvailabilityRecoverySubsystem {
|
||||
}
|
||||
}
|
||||
}
|
||||
Err(incoming::Error::Fatal(f)) => return Err(SubsystemError::with_origin("availability-recovery", f)),
|
||||
Err(incoming::Error::NonFatal(err)) => {
|
||||
Err(jfyi) => {
|
||||
tracing::debug!(
|
||||
target: LOG_TARGET,
|
||||
?err,
|
||||
error = ?jfyi,
|
||||
"Decoding incoming request failed"
|
||||
);
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user