pub enum NoteFate {
NoNote,
NoBracketForPid,
Unattributable {
untagged_entries: usize,
},
ArmedNotDisarmed {
outcome: Option<OutcomeRecord>,
outcome_unreadable: Option<String>,
},
Disarmed {
outcome: Option<OutcomeRecord>,
outcome_unreadable: Option<String>,
reason: String,
},
}Expand description
What the death note says about the server incarnation that wore pid.
Variants§
NoNote
No death note exists under this home — nothing was ever armed here (or the home predates the death-note era).
NoBracketForPid
A note exists, its entries carry pid frames, and none of them is an
ARMED for this pid.
Unattributable
The note holds entries this build cannot attribute to ANY pid: they
carry no pid= frame, which means a server older than the per-pid
framing wrote them.
Reported rather than guessed. The alternative — scanning the file for
a bracket and hoping the lines between belong to it — is exactly the
defect the framing replaced: a refused boot’s ARMED line landing
mid-bracket made aion server stop report the kill -9 shape about a
clean drain. Nothing is inferred from an unframed line; the note is on
disk and readable by eye, and this face says so.
ArmedNotDisarmed
The pid’s last bracket is ARMED with no DISARMED: the process was
destroyed without the run loop seeing it (SIGKILL class) — or is
still running. The caller knows which, from its own liveness probe.
Fields
outcome: Option<OutcomeRecord>The outcome record, if the drain got far enough to write one before the process was destroyed.
outcome_unreadable: Option<String>An OUTCOME line that is PRESENT in the bracket but that this
binary could not parse — a torn line, or a record written by a
build whose schema this one cannot read. Distinct from outcome: None because “the drain never wrote a record” and “the drain
wrote a record I cannot read” are different facts, and reporting
the second as the first sends the operator down the wrong path.
Disarmed
The bracket closed by ordinary control flow.
Fields
outcome: Option<OutcomeRecord>The drain’s recorded outcome; None when the exit wrote no
record (an error return before serving, or a pre-record binary),
reported as exactly that absence.
outcome_unreadable: Option<String>An unparseable OUTCOME line in the bracket — the unreadable
presence, kept distinct from the honest absence exactly as on
NoteFate::ArmedNotDisarmed.
Trait Implementations§
impl Eq for NoteFate
impl StructuralPartialEq for NoteFate
Auto Trait Implementations§
impl Freeze for NoteFate
impl RefUnwindSafe for NoteFate
impl Send for NoteFate
impl Sync for NoteFate
impl Unpin for NoteFate
impl UnsafeUnpin for NoteFate
impl UnwindSafe for NoteFate
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,
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.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoMaybeUndefined<T> for T
impl<T> IntoMaybeUndefined<T> for T
Source§fn into_maybe_undefined(self) -> MaybeUndefined<T>
fn into_maybe_undefined(self) -> MaybeUndefined<T>
Source§impl<T> IntoOption<T> for T
impl<T> IntoOption<T> for T
Source§fn into_option(self) -> Option<T>
fn into_option(self) -> Option<T>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request