aboutsummaryrefslogtreecommitdiffhomepage
path: root/Cargo.lock
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-08-06 20:50:24 +0900
committernsfisis <nsfisis@gmail.com>2026-08-06 20:50:24 +0900
commit14a8a474120ef4289625f05ba5d87fa9e9d19542 (patch)
treee4d810bda2808a5624b313846331b4888facee1f /Cargo.lock
parent91e7102d02cfcda0bf1b82ae1b3fb30900495360 (diff)
downloadphp-shirabe-14a8a474120ef4289625f05ba5d87fa9e9d19542.tar.gz
php-shirabe-14a8a474120ef4289625f05ba5d87fa9e9d19542.tar.zst
php-shirabe-14a8a474120ef4289625f05ba5d87fa9e9d19542.zip
fix(php-rpc): carry the worker channel over a socketpair
The transport bound an AF_UNIX path under TMPDIR and waited for the child to connect. That path has to fit in sun_path (108 bytes), so a deep TMPDIR made every worker spawn fail, and the bind(2) itself is denied under a sandbox. The parent now keeps one end of a socketpair and installs the other on descriptor 3 before exec, which the worker opens as php://fd/3. The pair is connected from the start, so the accept poll and its ten-second deadline are gone; a child that dies before reading surfaces as EOF on the first call, where worker_state already attaches its exit status. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'Cargo.lock')
-rw-r--r--Cargo.lock1
1 files changed, 1 insertions, 0 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 4b5c6817..91fc9a1c 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2146,6 +2146,7 @@ version = "0.0.1"
dependencies = [
"anyhow",
"indexmap",
+ "nix",
"shirabe-external-packages",
"shirabe-php-shim",
"shirabe-php-src",