mirror of
https://github.com/warpdotdev/warp.git
synced 2026-05-06 23:32:51 +08:00
## Description Two related fixes to the remote-server setup flow: ### 1. Gate remote-server install on a glibc preinstall check (APP-4281) The prebuilt remote-server binary is linked against glibc 2.31. On older Linux hosts (e.g. RHEL/Rocky/CentOS 8 with glibc 2.28) the binary downloads fine but fails at runtime, leaving users stuck. This PR adds a lightweight, fail-open preinstall probe that runs over the existing SSH `ControlMaster` socket *before* any user-visible install affordance. ### 2. Don't fail the install when staging-dir cleanup races `install_remote_server.sh` ran `trap 'rm -rf "$tmpdir"' EXIT` under `set -e`. When `rm -rf` hit a "Directory not empty" / `EBUSY` race after the binary had already been moved into place, the trap's non-zero exit replaced the script's success exit, surfacing as `install script failed (exit 1)` in the manager. The cleanup is now best-effort (`rm -rf "$tmpdir" 2>/dev/null || true`) so post-success races no longer break the install. Real install failures (curl, tar, missing binary, unsupported arch/OS) still propagate normally because they happen before the trap fires. Fixes APP-4281 ## Testing Tested locally with an RHEL 7 docker container (which uses glibc 2.28) ## Agent Mode - [x] Warp Agent Mode - This PR was created via Warp's AI Agent Mode [Conversation](https://staging.warp.dev/conversation/86cbc3ea-d9de-4b23-832a-fa8b23c0f295) · [Tech spec](https://staging.warp.dev/drive/notebook/oGmQYNHrHzuGx3FegfsEuQ) <!-- CHANGELOG-IMPROVEMENT: Warp now silently falls back to a regular SSH session on remote hosts where the prebuilt remote-server binary is incompatible (e.g. glibc < 2.31), instead of attempting an install that would fail at runtime. CHANGELOG-BUG-FIX: Remote-server installs no longer fail when the staging-directory cleanup hits a "Directory not empty" race after the binary has already been moved into place. --> Co-Authored-By: Oz <oz-agent@warp.dev>