pub enum StallReason {
ProviderMissing,
PoolFull,
ProviderCircuitOpen,
}Expand description
Why a dispatch system declined to start work for an agent this tick.
The two cases look identical from the outside - the agent keeps its
ReadyToInfer marker either way - but they are opposites in kind, which is
what the watchdog acts on.
Variants§
ProviderMissing
The stage names a provider that is not in the registry. Nothing the
runtime does will change that: no work is in flight to finish, no permit
will free up. Only editing the config and restarting the daemon (or
dropping in the matching .rhai script) can.
PoolFull
The model’s inference pool is full. This is ordinary backpressure and resolves itself: every permit is held by a job that the job timeout bounds, and releasing one wakes the driver.
ProviderCircuitOpen
Every provider this stage could use has an open circuit: they have each failed enough consecutive times to be taken out of service, and the stage has no candidate left to move to (issue #201).
Unlike PoolFull this will not clear on its own within a tick or two -
somebody has to top up an account or fix a key - so the watchdog fails
it like ProviderMissing. Unlike ProviderMissing it can recover
without a restart, which is what the grace period is for.
Trait Implementations§
Source§impl Clone for StallReason
impl Clone for StallReason
Source§fn clone(&self) -> StallReason
fn clone(&self) -> StallReason
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for StallReason
Source§impl Debug for StallReason
impl Debug for StallReason
impl Eq for StallReason
Source§impl PartialEq for StallReason
impl PartialEq for StallReason
impl StructuralPartialEq for StallReason
Auto Trait Implementations§
impl Freeze for StallReason
impl RefUnwindSafe for StallReason
impl Send for StallReason
impl Sync for StallReason
impl Unpin for StallReason
impl UnsafeUnpin for StallReason
impl UnwindSafe for StallReason
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ConditionalSend for Twhere
T: Send,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.