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
{{ message }}
Repository navigation
Safe-output integrity checks block indefinitely when a captured artifact becomes a FIFO #68786
Review of #68732 at commit 40c71f95ad05d3f2da56bc19e38e3f041495f7e9 found a P2 behavior issue: replacing an already-captured regular transport file with a FIFO can hang the safe-output handler instead of producing an integrity error.
Create a regular patch file and capture it with createTransportIntegrity().captureOptional(path).
Unlink the file and create a FIFO at the same path, with no writer attached.
Call assertUnchanged().
The synchronous openSync(O_RDONLY | O_NOFOLLOW) blocks before fstatSync() can reject the nonregular file. A bounded child-process reproduction timed out and required termination.
Expected behavior
Reject the replaced artifact promptly with a transport-integrity failure, without blocking the Node.js event loop until the job timeout.
Suggested fix and coverage
Use a nonblocking descriptor open followed by descriptor-based regular-file validation, preserving no-follow and identity checks. Add bounded child-process tests for FIFO inputs both at capture and after capture. Ensure cleanup still runs after rejection.
Found during behavioral review of #68732; no fix was applied.
Activity
Fix safe-output transport guard regressions
Bind safe-output patch and bundle application to validated bytes (#68732