Version aware daemon socket#10782
Conversation
|
I ran into an unexpected error while working on this. Powered by Oz |
|
/oz-review |
|
I'm re-reviewing this pull request in response to a review request. You can view the conversation on Warp. I completed the review and no human review was requested for this pull request. Comment Powered by Oz |
There was a problem hiding this comment.
Overview
This PR versions the remote-server daemon socket and PID filenames by release version and adds proxy-side cleanup for non-current daemon artifacts.
Concerns
- The cleanup path treats every non-current
server*.pidas stale and sendsSIGTERM, which can terminate an active daemon still serving another running Warp/proxy version.
Verdict
Found: 0 critical, 1 important, 0 suggestions
Request changes
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
| // SAFETY: sending SIGTERM is safe — it requests graceful | ||
| // shutdown. If the process doesn't exist, kill returns -1 | ||
| // with ESRCH which we ignore. | ||
| let ret = unsafe { libc::kill(pid, libc::SIGTERM) }; |
There was a problem hiding this comment.
There was a problem hiding this comment.
This is good feedback. I think we could avoid eagerly SIGTERMing the connection and just remove the socket / pid file to be safe. This will prevent new connections to that daemon but not interrupt its active connections. The daemon will self-shutdown when its connection drops
| /// - Local / Oss: `server.sock` | ||
| pub fn daemon_socket_name() -> String { | ||
| match ChannelState::channel() { | ||
| Channel::Local | Channel::Oss => "server.sock".to_string(), |
There was a problem hiding this comment.
If the daemon has a version set for Local / Oss, I think we should use it. Otherwise you can't really test the versioned flow locally

Description
This creates a version aware daemon socket. There are two main components:
Testing
I tested the versioned socket creation and clean up separately
Versioned socket:
v0.2026.05.12.09.10.dev_00GIT_RELEASE_TAG=v0.2026.05.12.09.10.dev_00 cargo run --bin devClean up:
server-old-X.pidandserver-old-X.socketGIT_RELEASE_TAG=v0.2026.05.12.09.10.dev_00 cargo run --bin dev