Repository navigation
fix(edgebound): restore edge RPC forwarding after reconnect - #109
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
singchia
approved these changes
Sep 24, 2026
singchia
left a comment
Owner
There was a problem hiding this comment.
按维护者确认合并。此次会话隔离和非阻塞重连修复方向合理。仍需后续跟踪上下线通知乱序,以及新增回归测试接入 CI;当前 CI 仅验证构建,本次批准不表示已完成生产验收。
1 task done
This branch was successfully deployed
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.
Problem
The incident and local edge 72 logs show repeated
edge online, old end exists/edge online same time, old end existstogether withno such rpc: register_edge. In v1.2.4, overlapping reconnects share a SyncHub key: an earlier waiter can be rejected withplease connect later, while the latest waiter remains blocked on the old session's offline callback. RPC forwarding is installed only after this wait succeeds.The logs establish that reconnect loop; they do not prove the report's inference that each RPC was delivered to the dead connection.
Changes
VERSIONto 1.2.6. This PR does not publish a release tag or registry image.Verification
-race, covering blocked close, successive replacements, late callbacks, address reuse, early offline, streams, RPC inventory and concurrent edge-count updates. The count regression first reproduced an incorrect count of 1 with 2 active edges, then passed after restoring update order.go veton the changed packages and E2E package, plusmake frontier, passed.4651964passed 20/20 race-enabled runs. Permanent regressions cover these cases on the current head. The old image was not deployed to Kubernetes.v1.2.6-rc.6(sourceb7dce8a, before the count-order follow-up) was built and deployed. After Frontier restarted, the Kubernetes controller automatically re-registered and edges 71/72/73 were online with fresh timestamps. An earlier image revision also built and started on AMD64 under emulation.Existing test limitations
Hijackhandler read/write in dependencygeminio v1.3.0-rc.2. The same race reproduces with the originalTestEdgeCallServiceon unchanged main01f158c; this PR does not fix it.