feat(pb): rewrite serverless handlers#4463
feat(pb): rewrite serverless handlers#4463MasterPtato wants to merge 1 commit into03-23-fix_ups_implement_queue_subsfrom
Conversation
|
🚅 Deployed to the rivet-pr-4463 environment in rivet-frontend
|
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
PR Review: feat(pb): actors v3This is a large, ambitious draft PR introducing actor v3 infrastructure. Since it's a draft, I'm flagging issues to address before it's ready for merge. Critical Issues (must fix before merge)1. Package name mismatch in 2. Literal
These will fail to compile and need to be resolved before this can be tested. 3. Undefined type 4. Missing 5. Wrong struct name in 6. Mismatched input type: Dependency Issues7. Code Quality8. Commented-out dead code 9. Metrics label change is a breaking change 10. Duplicated Design / Architecture Questions11. Naming: envoy vs runner 12. Epoxy key reservation failure modes 13. Unresolved TODO comments in production paths
These should be resolved or tracked as follow-up issues before merge. Minor
Overall this is a substantial architectural improvement with sleep/wake support, the envoy protocol rename, and Epoxy-based key reservation. The main blockers are compile errors from placeholder TODO tokens and naming inconsistencies. Happy to re-review once those are addressed. |
Design / Logic Issues5. Double-counted eviction metrics 6. Silent JSON deserialization errors in conn.rs 7. Wrong field mapping in Mk1 KV metadata 8. Unverified abort safety in demuxer GC |
Code Quality9. Significant KV code duplication 10. Unimplemented module 11. TODOs indicating known gaps Minor / Style12. Workflow rename is a breaking change |
|
PR Review: feat(pb): rewrite serverless handlers. This PR introduces three new packages (pegboard-envoy, pegboard-gateway2, pegboard-outbound) to implement serverless handler infrastructure. Critical compile errors: (1) Undefined variable eviction_topic2 in pegboard-envoy/src/lib.rs:78 - only topic and eviction_topic are defined, but %eviction_topic2 is referenced in tracing::debug!. (2) Wrong variable name init_packet in pegboard-envoy/src/conn.rs:81 - line 77 binds to init but line 81 matches on init_packet. (3) Unresolved ctx in pegboard-outbound/src/lib.rs:86 - handle() uses ctx but does not receive it as a parameter. (4) term_signal not in scope in outbound/lib.rs:319 - local to start() but used in serverless_outbound_req(). High priority: (5) Uncompilable TODO; stubs in outbound/lib.rs:144,147 - replace with bail! or unimplemented!(). (6) Unresolved task-abort safety TODO in envoy/actor_event_demuxer.rs - resolve before merging. Medium: (7) Timing-vulnerable token comparison in guard/routing/envoy.rs:109 - use constant-time comparison. (8) No length validation on namespace in envoy/utils.rs. (9) Silent metadata loss via .unwrap_or_default() in envoy/conn.rs. (10) Non-workspace hyper/hyper-util deps in pegboard-envoy/Cargo.toml. Minor: (11) Panics not propagated from join_all in outbound/lib.rs:52 - prefer JoinSet. (12) Logging convention - use structured tracing fields per CLAUDE.md. |
b395fae to
ec32bdf
Compare
3f2996f to
9d9049a
Compare
ec32bdf to
ae0f886
Compare
9d9049a to
7da9651
Compare
7da9651 to
dc6bd10
Compare
ae0f886 to
4e8c22e
Compare
dc6bd10 to
8a1d9d6
Compare

Description
Please include a summary of the changes and the related issue. Please also include relevant motivation and context.
Type of change
How Has This Been Tested?
Please describe the tests that you ran to verify your changes.
Checklist: