You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/native-mariadb-runtime-service.md
+16-4Lines changed: 16 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,17 +4,18 @@
4
4
5
5
## Isolation Contract
6
6
7
-
- The provider resolves and validates `mariadbd`, `mariadb-install-db`, and `mariadb` identities before allocation.
7
+
- The provider rejects UID 0 and resolves and validates `mariadbd`, `mariadb-install-db`, `mariadb`, util-linux `prlimit`, `truncate`, `mkfs.ext4`, `fuse2fs`, and `fusermount3` identities before allocation.
8
8
- Every run gets a mode-`0700``mkdtemp` root. The data directory, temporary directory, socket, PID file, and error log are children of that root.
9
-
- Initialization, daemon, and client argument arrays begin with `--no-defaults`. No shell or default socket is used.
9
+
- Initialization, daemon, and administrative clients run through fixed hard rlimits; each database command itself begins with `--no-defaults`. No shell or default socket is used.
10
10
- Administration uses only the private Unix socket. Workloads receive a generated least-privilege `runtime` account over loopback TCP through the existing ephemeral connector-secret channel.
11
11
- Cleanup signals only the retained direct `ChildProcess`; the PID file is never trusted or read. Linux captures the owned process start-time token and revalidates it before every signal to reject PID reuse. Root device/inode identity and a symlink-free tree are revalidated before recursive removal.
12
12
- Failures, aborts, timeouts, startup crashes, and partial initialization all enter the same graceful-shutdown, forced-shutdown, wait, and verified-removal state machine. Cleanup failure is terminal and retained in bounded lifecycle evidence.
13
+
- Address space is capped at 2 GiB, CPU at 300 seconds, individual daemon files at 128 MiB, open files at 512, and processes/threads at 512. Core files and locked memory are disabled. The datadir is a provider-owned 256 MiB ext4 image formatted with 4,096 inodes and mounted through unprivileged FUSE; device, byte, and inode geometry must be proven before initialization. Hosts without this containment fail closed.
13
14
- Evidence contains service ID, engine/provider version, lifecycle state, and memory measurements only. It never contains credentials or private absolute paths.
14
15
15
16
## Daemon Arguments
16
17
17
-
The provider starts `mariadbd`directly with these fixed controls plus provider-owned absolute paths and a freshly allocated loopback port:
18
+
The provider starts `mariadbd`through `prlimit` with these fixed controls plus provider-owned absolute paths and a freshly allocated loopback port:
18
19
19
20
```text
20
21
--no-defaults
@@ -34,18 +35,29 @@ The provider starts `mariadbd` directly with these fixed controls plus provider-
The configured service budget is 128 MiB. Linux runs record the owned daemon's post-readiness RSS in evidence; the MariaDB 10.11 integration gate requires the observed value to remain within that budget.
60
+
The hard address-space ceiling is 2 GiB. Linux runs record the owned daemon's post-readiness RSS in evidence; the MariaDB 10.11 integration gate additionally requires observed RSS to remain at or below 128 MiB.
0 commit comments