libcontainer/process/init/
error.rs1use crate::namespaces::NamespaceError;
2use crate::process::channel;
3use crate::process::memory_policy::MemoryPolicyError;
4use crate::rootfs::device::DeviceError;
5#[cfg(feature = "libseccomp")]
6use crate::seccomp;
7use crate::syscall::SyscallError;
8use crate::workload::{ExecutorSetEnvsError, ExecutorValidationError};
9use crate::{apparmor, hooks, notify_socket, rootfs, tty, workload};
10
11#[derive(Debug, thiserror::Error)]
12pub enum InitProcessError {
13 #[error("failed to set sysctl")]
14 Sysctl(#[source] std::io::Error),
15 #[error("failed to mount path as readonly")]
16 MountPathReadonly(#[source] SyscallError),
17 #[error("failed to mount path as masked")]
18 MountPathMasked(#[source] SyscallError),
19 #[error(transparent)]
20 Namespaces(#[from] NamespaceError),
21 #[error("failed to set hostname")]
22 SetHostname(#[source] SyscallError),
23 #[error("failed to set domainname")]
24 SetDomainname(#[source] SyscallError),
25 #[error("failed to reopen /dev/null")]
26 ReopenDevNull(#[source] std::io::Error),
27 #[error("failed to unix syscall")]
28 NixOther(#[source] nix::Error),
29 #[error(transparent)]
30 MissingSpec(#[from] crate::error::MissingSpecError),
31 #[error("failed to setup tty")]
32 Tty(#[source] tty::TTYError),
33 #[error("failed to run hooks")]
34 Hooks(#[from] hooks::HookError),
35 #[error("failed to prepare rootfs")]
36 RootFS(#[source] rootfs::RootfsError),
37 #[error("failed syscall")]
38 SyscallOther(#[source] SyscallError),
39 #[error("failed apparmor")]
40 AppArmor(#[source] apparmor::AppArmorError),
41 #[error(transparent)]
42 Pathrs(#[from] pathrs::error::Error),
43 #[error("invalid umask")]
44 InvalidUmask(u32),
45 #[error(transparent)]
46 #[cfg(feature = "libseccomp")]
47 Seccomp(#[from] seccomp::SeccompError),
48 #[error("invalid executable: {0}")]
49 InvalidExecutable(String),
50 #[error("io error")]
51 Io(#[source] std::io::Error),
52 #[error(transparent)]
53 Channel(#[from] channel::ChannelError),
54 #[error("setgroup is disabled")]
55 SetGroupDisabled,
56 #[error(transparent)]
57 NotifyListener(#[from] notify_socket::NotifyListenerError),
58 #[error(transparent)]
59 Workload(#[from] workload::ExecutorError),
60 #[error(transparent)]
61 WorkloadValidation(#[from] ExecutorValidationError),
62 #[error(transparent)]
63 WorkloadSetEnvs(#[from] ExecutorSetEnvsError),
64 #[error("invalid io priority class: {0}")]
65 IoPriorityClass(String),
66 #[error("call exec sched_setattr error: {0}")]
67 SchedSetattr(String),
68 #[error(transparent)]
69 MemoryPolicy(#[from] MemoryPolicyError),
70 #[error(transparent)]
71 Network(#[from] crate::network::NetworkError),
72 #[error("failed to verify if current working directory is safe")]
73 InvalidCwd(#[source] nix::Error),
74 #[error("missing linux section in spec")]
75 NoLinux,
76 #[error("missing process section in spec")]
77 NoProcess,
78 #[error("device error")]
79 Device(#[source] DeviceError),
80 #[error("personality flag has not supported at this time")]
81 UnsupportedPersonalityFlag,
82}