-
Notifications
You must be signed in to change notification settings - Fork 6
fix: eliminate nested bash layer in chroot command execution for Java/.NET #715
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot wasn't able to review any files in this pull request.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
🎬 THE END — Smoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨ |
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
Smoke Test ResultsLast 2 Merged PRs:
✅ GitHub MCP: Fetched recent PRs Overall Status: PASS
|
C++ Build Test Results
Overall: PASS ✅ All C++ projects built successfully.
|
Build Test: Bun - ✅ PASSTest Results
Overall: PASS ✅ All Bun projects built and tested successfully.
|
|
✅ GitHub MCP: PR #197 (release highlights), PR #706 (hide mcp-logs) Status: PASS cc @Mossaka
|
Go Build Test Results
Overall: PASS ✅ All Go projects successfully downloaded dependencies and passed their tests.
|
Deno Build Test Results
Overall: ✅ PASS All Deno tests completed successfully.
|
Build Test: Node.js - Results
Overall: PASS ✅ All Node.js projects built and tested successfully.
|
Rust Build Test Results
Overall: PASS All Rust projects built and tested successfully.
|
Java Build Test Results
Overall: PASS ✅ All Java projects successfully compiled and passed their test suites through the AWF firewall with Maven proxy configuration.
|
3f662c1 to
de8882d
Compare
|
Chroot tests passed! Smoke Chroot - All security and functionality tests succeeded. |
|
🎬 THE END — Smoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨ |
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤 |
|
✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟 |
Bun Build Test Results
Overall: PASS ✅ All Bun build tests completed successfully.
|
Smoke Test Results - ClaudeLast 2 Merged PRs:
Test Results:
Overall Status: PASS
|
C++ Build Test Results
Overall: PASS ✅ All C++ projects built successfully.
|
Node.js Build Test Results
Overall: PASS ✅ All three Node.js projects successfully installed dependencies and passed their test suites.
|
Rust Build Test Results
Overall: PASS ✅ All Rust projects built and tested successfully.
|
Go Build Test Results
Overall: PASS ✅ All Go projects successfully downloaded dependencies and passed their test suites.
|
.NET Build Test Results
Overall: PASS Test Outputhello-world:
json-parse:
|
Deno Build Test Results
Overall: ✅ PASS All Deno tests completed successfully.
|
|
PR titles: fix: hide workDir from agent container to prevent secrets exposure | fix(chroot): detect cargo binaries when CARGO_HOME unset
|
Java Build Test Results
Overall: PASS ✅ All Java projects compiled and tested successfully through AWF firewall with Maven proxy configuration.
|
Chroot Version Comparison Test Results
Overall Result: Tests FAILED (not all versions match) The chroot environment successfully accessed host binaries, but version mismatches were detected for Python and Node.js. Go versions matched correctly.
|
Smoke Test ResultsLast 2 Merged PRs:
Test Results:
Overall Status: PASS 🎉 cc @Mossaka
|
Java and .NET runtimes fail inside AWF chroot mode because
/proc/self/exeresolves to/bin/bashinstead of the actual runtime binary. .NET CLR rejects execution with "cannot execute dotnet when renamed to bash" (exit 132); JVM misidentifies itself and outputs bash version info.Root cause: Docker CMD
['/bin/bash', '-c', 'command']is passed to the entrypoint as$@, then written to the chroot script file viaprintf '%q ' "$@", producing:This nested
bash -ccreates an intermediate process whose/proc/self/exeis/bin/bash, which propagates to runtimes checking their process identity.Fix in
entrypoint.sh:$1=/bin/bash,$2=-c,$#=3)$3(the command string) directly into the script file, eliminating the nested bash layerprintf '%q'behavior for non-standard invocationsdocs/chroot-mode.mdto document the direct-write approach as part of the procfs resolution chainOriginal prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.