!FBuJyWXTGcGtHTPphC:nixos.org

Nix Rust

697 Members
Rust156 Servers

Load older messages


SenderMessageTime
31 Mar 2025
@antifuchs:asf.computerantifuchs huh, I have a rust program that uses the compio runtime backed by io-uring on linux, failing tests when nix build'ing because the runtime can't be created with this error: cannot create runtime: Os { code: 38, kind: Unsupported, message: "Function not implemented" }. It can be compiled and passes tests when I run cargo test on the commandline. is this a sandbox issue? 17:01:14
@k900:0upti.meK900Yes17:01:45
@k900:0upti.meK900The sandbox bans io_uring17:01:48
@k900:0upti.meK900Because there's no good way to actually sandbox the thing17:01:56
@antifuchs:asf.computerantifuchshaha, that would do it17:01:57
@antifuchs:asf.computerantifuchsguess I'll just disable checks, then17:02:36
@lassulus:lassul.uslassulus joined the room.18:45:30
@federicodschonborn:matrix.org@federicodschonborn:matrix.org joined the room.19:54:18
@r522:matrix.org@r522:matrix.orghow does the sandbox work, eBPF filter?20:30:57
@niko:nrab.lolniko ⚡️seccomp and namespaces20:35:24
@r522:matrix.org@r522:matrix.orgah, seems to be namespacing? i... don't think that breaks under io_uring?20:35:28
@r522:matrix.org@r522:matrix.orgseccomp would20:35:30
@niko:nrab.lolniko ⚡️Nix has an explicit allow-list of syscalls20:35:49
@niko:nrab.lolniko ⚡️nothing from io_uring family is on that list20:35:59
@niko:nrab.lolniko ⚡️By design20:36:02
@r522:matrix.org@r522:matrix.orgi'm looking at https://github.com/NixOS/nix/blob/5a8dedc45cc04a207917316c245e4993234bfbe0/src/libstore/unix/build/local-derivation-goal.cc and i don't see an allow list? ... i also don't see where io_uring is blocked though20:38:17
@r522:matrix.org@r522:matrix.org * i'm looking at https://github.com/NixOS/nix/blob/5a8dedc45cc04a207917316c245e4993234bfbe0/src/libstore/unix/build/local-derivation-goal.cc#L1774 and i don't see an allow list? ... i also don't see where io_uring is blocked though 20:39:05
@r522:matrix.org@r522:matrix.orgso i guess that's not what sets up the build sandbox20:39:17
@niko:nrab.lolniko ⚡️No, you're right, I'm too Lix-brained, Lix has an explicit syscall list, CppNix uses (for the most part) the default seccomp profile 20:45:13
@r522:matrix.org@r522:matrix.orgmhm i will go look in lix to see where they do it then20:46:48
@r522:matrix.org@r522:matrix.orgright, yeah, they do 20:47:22
@r522:matrix.org@r522:matrix.org that being said, they don't seem to care about the exact path used for opens 20:48:08
@r522:matrix.org@r522:matrix.orgso it's seccomp but not in a way that inspects paths actually, you can't do that anyways20:48:35
@r522:matrix.org@r522:matrix.org* so it's seccomp but not in a way that inspects paths actually, you can't do that anyways with seccomp20:48:38
@r522:matrix.org@r522:matrix.org so allowing io_uring operations that are equal to syscalls that are already allowed would be fine 20:48:57
@r522:matrix.org@r522:matrix.org unsure if you can set global io_uring restrictions though 20:50:59
@r522:matrix.org@r522:matrix.orgmhm yeah it's per-ring20:51:42
1 Apr 2025
@aloisw:julia0815.de@aloisw:julia0815.de
In reply to @r522:matrix.org
so allowing io_uring operations that are equal to syscalls that are already allowed would be fine
The problem is that seccomp cannot do that.
04:38:41
@leona:leona.isleona joined the room.08:42:50
@r522:matrix.org@r522:matrix.orgyeah it wouldn't be hard to make it do that, kernel-wise (or maybe LD_PRELOAD some shim that goes and asks for an already created ring that has syscall restrictions applied already) but i guess ultimately it doesn't Particularly matter since all you lose is the ability to run tests in the sandbox10:42:38

Show newer messages


Back to Room ListRoom Version: 6