-
-
Notifications
You must be signed in to change notification settings - Fork 14.2k
Closed
Labels
C-bugCategory: This is a bug.Category: This is a bug.S-needs-infoStatus: The issue lacks details necessary to triage or act on it.Status: The issue lacks details necessary to triage or act on it.
Description
I have a custom jobserver implementation that shares a token pool across processes. That's exposed as a socket to the build system. E.g.
MAKEFLAGS="--jobserver-auth=5,5"
That doesn't work because of this snippet
let mut s_ififo = stat.st_mode;
s_ififo = libc::S_IFIFO as _;
if stat.st_mode & s_ififo == s_ififo {
return Ok(());
}My socket (S_IFSOCK) based jobserver works fine against all other uses that I've looked at, but not in Rust.
The GNU Jobserver Interaction spec says that R,W are file descriptors, but doesn't appear to mandate that they be pipes specifically.
auth option will have the form --jobserver-auth=R,W where ‘R’ and ‘W’ are non-negative integers representing file descriptors: ‘R’ is the read file descriptor and ‘W’ is the write file descriptor
Meta
rustc --version --verbose:
rustc 1.91.0-nightly (f8297e351 2025-10-28)
binary: rustc
commit-hash: f8297e351a40c1439a467bbbb6879088047f50b3
commit-date: 2025-10-28
host: x86_64-unknown-linux-gnu
release: 1.91.0-nightly
LLVM version: 21.1.2
Metadata
Metadata
Assignees
Labels
C-bugCategory: This is a bug.Category: This is a bug.S-needs-infoStatus: The issue lacks details necessary to triage or act on it.Status: The issue lacks details necessary to triage or act on it.