Repository navigation
fix: install each node without replacing the others - #7
Merged
Merged
Conversation
Console install commands shared one service name, config path, and Docker container, so a second node on the same machine replaced the first. Scope each command to its node id and leave older fixed-name installs in place.
serveTCP only noticed a closed session when Accept timed out. The reconnect test dials continuously, so under the race detector Accept never idled and the visitor never redialed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
摘要
同一台机器执行第二条节点安装命令时,会盖掉前一个
umbra-node:Linux / macOS / Windows 的服务名和配置路径、以及 Docker 容器名都是固定的。现在每条命令只安装或替换自己的节点。身份来自节点 ID(
nde_ab12→nde-ab12)。多个节点共用一份umbra-node程序,各自有服务名、凭证和 CA。再执行同一个节点的命令(含轮换凭证)只替换该节点。新命令不会停止旧的固定名安装(umbra-node、io.umbra.node、UmbraNode、容器umbra-node);装好后需要手动停掉那一份,避免两个进程同时占用同一次登记。镜像标签仍是
chenow9/umbra-node:latest。与入口版本对齐是下一项,不在这个 PR。改动
internal/control/enroll.go、src/lib/umbra/units.ts:安装命令按节点分开 systemd、launchd、Windows 服务和 Docker 容器cmd/umbra-node/service_windows.go:服务进程用--service-name对接 SCM;省略时仍是UmbraNode,已有的单节点服务可以继续启动NODE的名字,并写明如何停掉旧的固定名服务验证
go test ./internal/control/ -run 'Enroll|NodeInstance'node --experimental-strip-types --test src/lib/umbra/units.test.tstsc --noEmitGOOS=windows go test -c ./cmd/umbra-node/检查
systemctl restart umbra-node、launchctl … io.umbra.node、sc.exe delete UmbraNode或docker rm -f umbra-node这种固定名操作umbra-node程序路径;Windows 上程序文件被占用且已存在时继续安装,不停止其他节点CI
go test -race上次失败在TestVisitorReconnectKeepsLocalPort,与安装命令无关。访问端只有在 Accept 空闲超时时才发现会话已断;这个测试会连续拨号,竞态下 Accept 一直不空闲,于是 12 秒内都不重连。现在会话一关闭就放开 Accept,本地端口仍在忙也会重连。