tawasuyu

tawasuyu/brahman

Rust 212TOML 64JSON 13HTML 12666 Sutichaykuna

⎇ c22d2480b93b7802be8e8ea5a0075b8175c4fedc crates/shared/ente-incarnate/src/error.rs Rust · 44 siq'ikuna · 1.4 KB Ñawpa willay Pi imata llamkarqan ch'uya

shell c22d2480b · sergio ·

1use std::path::PathBuf;
2
3#[derive(Debug, thiserror::Error)]
4pub enum IncarnateError {
5    #[error("namespace `{ns}` requires CAP_SYS_ADMIN or CLONE_NEWUSER (neither available)")]
6    NamespaceCapMissing { ns: &'static str },
7
8    #[error("user namespaces blocked by sysctl kernel.unprivileged_userns_clone=0")]
9    UserNsDisabledBySysctl,
10
11    #[error("user namespaces restricted by LSM (apparmor/selinux)")]
12    UserNsRestrictedByLsm,
13
14    #[error("cgroup path `{path}` is not writable (delegation missing?)")]
15    CgroupNotWritable { path: PathBuf },
16
17    #[error("payload is not executable in this incarnation path (Wasm/Virtual not supported here)")]
18    NonExecutablePayload,
19
20    #[error("clone(2) failed: {0}")]
21    Clone(#[source] nix::errno::Errno),
22
23    #[error("pipe2(2) failed: {0}")]
24    Pipe(#[source] nix::errno::Errno),
25
26    #[error("post-clone setup: {0}")]
27    PostClone(#[source] anyhow::Error),
28
29    #[error(transparent)]
30    Io(#[from] std::io::Error),
31
32    #[error("invalid argv: contains NUL byte")]
33    InvalidArgv,
34}
35
36/// Cuando `strict_caps = false`, errores no-fatales se reportan como
37/// `Degradation` y la encarnación continúa con menos aislamiento del pedido.
38#[derive(Debug, Clone)]
39pub enum Degradation {
40    NamespaceSkipped { ns: &'static str },
41    CgroupSkipped { path: PathBuf, reason: String },
42    CpuAffinitySkipped { reason: String },
43    UidMapFailed { reason: String },
44}