Repository navigation
fix(sandbox): release broker-owned listening sockets - #4444
Conversation
Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>
|
Label |
PR Review StatusThe independent review found no blocking issues in the listener ownership fix, close-on-exec handling, or added Linux and CLI regression coverage. The required E2E workflow has been rerun as instructed by E2E Label Help and is running on the current head. Blocking findings: None. Gator metadata
|
Monitoring CompleteMonitoring is complete because this PR has merged. The last Gator state was I am removing the active Gator metadata
|
Summary
Release the network broker's descriptor after a successful
listenso a listener disappears when its last workload descriptor closes or its owning process exits. Keep broker source sockets close-on-exec while preserving the workload's requested inheritance flags.Related Issue
Closes #4407. Related duplicate: #4331.
Changes
Listeningregistry entries metadata-only; preserve native repeatedlistenand Linux errors for bind/connect attempts on a listener.SOCK_CLOEXEC, including the descriptor-exhaustion retry, independently of injected descriptor flags.Testing
LISTENassertion.EAFNOSUPPORT, but Docker's outer seccomp filter returnsEPERM; an unmediated native AF_ALG socket probe returns the sameEPERM.ContainerExited; targeted reruns pass on both the original and fixed runtime images. The initial aggregate E2E command therefore exited nonzero before its focused Rust test stage; the new CLI tests were run separately and pass.Checklist
The user's running docker-dev sandbox was left on its existing runtime. Validation used temporary gateways and sandboxes, which were cleaned up.