#[non_exhaustive]pub enum PipelineError {
IoUringSyscall {
syscall: &'static str,
errno: i32,
fix: &'static str,
},
QueueFull {
queue: &'static str,
fix: &'static str,
},
NotLinux,
NvmePassthroughDisabled,
Backend(String),
DrainIncomplete {
descriptor: &'static str,
claimed: u32,
expected: u32,
unit: &'static str,
},
}Expand description
Errors surfaced by the runtime layer. Every variant carries a
Fix:-bearing message so a reviewer can act on the failure.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
IoUringSyscall
Raw io_uring / libc syscall failed with an errno.
Fields
QueueFull
io_uring submission or completion queue was full / overflowed.
NotLinux
Attempted to use io_uring on a non-Linux platform.
NvmePassthroughDisabled
Feature required for NVMe passthrough is not enabled.
Backend(String)
Backend error bubbled up from compile or dispatch.
DrainIncomplete
A megakernel dispatch ended before its work queue drained: only
claimed of expected unit were claimed, so the rest went unscanned
and this dispatch’s hit set is INCOMPLETE — never a silent partial
(Law 10). A first-class variant (not a Backend string) so callers such
as the seg_len calibrator can EXCLUDE a too-fine geometry by matching
the type, never by substring-scanning the message text.
Implementations§
Source§impl PipelineError
impl PipelineError
Sourcepub fn is_drain_incomplete(&self) -> bool
pub fn is_drain_incomplete(&self) -> bool
True iff this is a PipelineError::DrainIncomplete: a dispatch that
could not exhaust its work queue within the timeout.
Distinct from a hard backend failure — the seg_len calibrator
EXCLUDES a geometry that drains incompletely (too fine to drain in the
configured timeout) rather than aborting the whole calibration, while it
must still PROPAGATE any other PipelineError. Match on this predicate
instead of substring-scanning the Display message, which is fragile to
wording changes.
Trait Implementations§
Source§impl Clone for PipelineError
impl Clone for PipelineError
Source§fn clone(&self) -> PipelineError
fn clone(&self) -> PipelineError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PipelineError
impl Debug for PipelineError
Source§impl Display for PipelineError
impl Display for PipelineError
Source§impl Error for PipelineError
impl Error for PipelineError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<BackendError> for PipelineError
impl From<BackendError> for PipelineError
Source§fn from(err: BackendError) -> Self
fn from(err: BackendError) -> Self
Source§impl From<PipelineError> for TenantError
impl From<PipelineError> for TenantError
Source§fn from(source: PipelineError) -> Self
fn from(source: PipelineError) -> Self
Source§impl From<ReplayLogError> for PipelineError
Let callers bridge ReplayLogError into the unified PipelineError
surface when driving the log from the megakernel pump loop.
impl From<ReplayLogError> for PipelineError
Let callers bridge ReplayLogError into the unified PipelineError surface when driving the log from the megakernel pump loop.