From af82825bedfcd95cd8c82aa7faa5b454b087469f Mon Sep 17 00:00:00 2001 From: MasterPtato Date: Tue, 9 Sep 2025 14:07:46 -0700 Subject: [PATCH] chore: remove port name --- frontend/src/queries/actor-engine.ts | 1 - out/openapi.json | 72 ----- packages/common/config/src/config/db.rs | 1 + packages/common/types/src/runners.rs | 100 ------- packages/common/udb-util/src/keys.rs | 2 +- packages/core/guard/server/src/cache/actor.rs | 13 +- packages/core/guard/server/src/errors.rs | 3 +- .../server/src/routing/pegboard_gateway.rs | 24 +- packages/core/pegboard-gateway/src/lib.rs | 19 +- packages/core/pegboard-runner-ws/src/lib.rs | 7 - packages/core/pegboard-tunnel/src/lib.rs | 6 +- .../core/pegboard-tunnel/tests/integration.rs | 6 +- .../infra/engine/tests/actors_lifecycle.rs | 16 +- packages/infra/engine/tests/common/actors.rs | 24 +- packages/services/pegboard/src/keys/runner.rs | 72 ----- .../services/pegboard/src/ops/runner/get.rs | 40 --- .../services/pegboard/src/pubsub_subjects.rs | 14 +- .../services/pegboard/src/workflows/runner.rs | 37 +-- scripts/tests/actor_e2e.ts | 2 - scripts/tests/actor_e2e_multidc.ts | 5 +- sdks/rust/data/src/converted.rs | 54 ---- sdks/rust/data/src/versioned.rs | 34 --- sdks/rust/runner-protocol/src/protocol.rs | 22 -- sdks/rust/runner-protocol/src/versioned.rs | 39 --- .../data/pegboard.runner.address.v1.bare | 20 -- sdks/schemas/runner-protocol/v1.bare | 18 -- sdks/typescript/runner-protocol/src/index.ts | 255 ++++-------------- .../runner/benches/actor-lifecycle.bench.ts | 2 - sdks/typescript/runner/src/mod.ts | 3 - .../typescript/runner/tests/lifecycle.test.ts | 7 - tests/load/actor-lifecycle/actor.ts | 1 - tests/load/actor-lifecycle/types.ts | 6 - 32 files changed, 80 insertions(+), 845 deletions(-) delete mode 100644 sdks/schemas/data/pegboard.runner.address.v1.bare diff --git a/frontend/src/queries/actor-engine.ts b/frontend/src/queries/actor-engine.ts index 271635d8d6..020bf572eb 100644 --- a/frontend/src/queries/actor-engine.ts +++ b/frontend/src/queries/actor-engine.ts @@ -18,7 +18,6 @@ export const createEngineActorContext = ({ headers: { "x-rivet-actor": actorId, "x-rivet-target": "actor", - "x-rivet-port": "main", ...(token ? { authorization: `Bearer ${token}` } : {}), }, }; diff --git a/out/openapi.json b/out/openapi.json index 8a3df3d7c5..637d75cf88 100644 --- a/out/openapi.json +++ b/out/openapi.json @@ -1426,23 +1426,11 @@ "version", "total_slots", "remaining_slots", - "addresses_http", - "addresses_tcp", - "addresses_udp", "create_ts", "last_ping_ts", "last_rtt" ], "properties": { - "addresses_http": { - "$ref": "#/components/schemas/StringHttpAddressHashableMap" - }, - "addresses_tcp": { - "$ref": "#/components/schemas/StringTcpAddressHashableMap" - }, - "addresses_udp": { - "$ref": "#/components/schemas/StringUdpAddressHashableMap" - }, "create_ts": { "type": "integer", "format": "int64" @@ -1569,66 +1557,6 @@ } }, "additionalProperties": false - }, - "StringHttpAddressHashableMap": { - "type": "object", - "additionalProperties": { - "type": "object", - "required": [ - "hostname", - "port" - ], - "properties": { - "hostname": { - "type": "string" - }, - "port": { - "type": "integer", - "format": "int32", - "minimum": 0 - } - } - } - }, - "StringTcpAddressHashableMap": { - "type": "object", - "additionalProperties": { - "type": "object", - "required": [ - "hostname", - "port" - ], - "properties": { - "hostname": { - "type": "string" - }, - "port": { - "type": "integer", - "format": "int32", - "minimum": 0 - } - } - } - }, - "StringUdpAddressHashableMap": { - "type": "object", - "additionalProperties": { - "type": "object", - "required": [ - "hostname", - "port" - ], - "properties": { - "hostname": { - "type": "string" - }, - "port": { - "type": "integer", - "format": "int32", - "minimum": 0 - } - } - } } } } diff --git a/packages/common/config/src/config/db.rs b/packages/common/config/src/config/db.rs index 5303ec5c05..44179363f0 100644 --- a/packages/common/config/src/config/db.rs +++ b/packages/common/config/src/config/db.rs @@ -19,6 +19,7 @@ impl Default for Database { } #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema)] +#[serde(deny_unknown_fields)] pub struct Postgres { /// URL to connect to Postgres with /// diff --git a/packages/common/types/src/runners.rs b/packages/common/types/src/runners.rs index d70ed49eda..84db5e0b13 100644 --- a/packages/common/types/src/runners.rs +++ b/packages/common/types/src/runners.rs @@ -1,9 +1,6 @@ use gas::prelude::*; -use rivet_data::generated::pegboard_runner_address_v1; -use rivet_runner_protocol::protocol; use rivet_util::Id; use serde::{Deserialize, Serialize}; -use std::ops::Deref; use utoipa::ToSchema; #[derive(Debug, Clone, Serialize, Deserialize, ToSchema)] @@ -17,9 +14,6 @@ pub struct Runner { pub version: u32, pub total_slots: u32, pub remaining_slots: u32, - pub addresses_http: StringHttpAddressHashableMap, - pub addresses_tcp: StringTcpAddressHashableMap, - pub addresses_udp: StringUdpAddressHashableMap, pub create_ts: i64, pub drain_ts: Option, pub stop_ts: Option, @@ -28,97 +22,3 @@ pub struct Runner { pub last_rtt: u32, pub metadata: Option>, } - -// HACK: We can't define ToSchema on HashableMap directly, so we have to define concrete types -#[derive(Debug, Clone, Serialize, Deserialize)] -pub struct StringHttpAddressHashableMap( - util::serde::HashableMap, -); - -impl From> - for StringHttpAddressHashableMap -{ - fn from(value: util::serde::HashableMap) -> Self { - Self(value) - } -} - -impl Deref for StringHttpAddressHashableMap { - type Target = util::serde::HashableMap; - - fn deref(&self) -> &Self::Target { - &self.0 - } -} - -impl utoipa::ToSchema for StringHttpAddressHashableMap {} - -impl utoipa::PartialSchema for StringHttpAddressHashableMap { - fn schema() -> utoipa::openapi::RefOr { - utoipa::openapi::ObjectBuilder::new() - .additional_properties(Some(protocol::RunnerAddressHttp::schema())) - .into() - } -} - -#[derive(Debug, Clone, Serialize, Deserialize)] -pub struct StringTcpAddressHashableMap( - util::serde::HashableMap, -); - -impl From> - for StringTcpAddressHashableMap -{ - fn from(value: util::serde::HashableMap) -> Self { - Self(value) - } -} - -impl Deref for StringTcpAddressHashableMap { - type Target = util::serde::HashableMap; - - fn deref(&self) -> &Self::Target { - &self.0 - } -} - -impl utoipa::ToSchema for StringTcpAddressHashableMap {} - -impl utoipa::PartialSchema for StringTcpAddressHashableMap { - fn schema() -> utoipa::openapi::RefOr { - utoipa::openapi::ObjectBuilder::new() - .additional_properties(Some(protocol::RunnerAddressTcp::schema())) - .into() - } -} - -#[derive(Debug, Clone, Serialize, Deserialize)] -pub struct StringUdpAddressHashableMap( - util::serde::HashableMap, -); - -impl From> - for StringUdpAddressHashableMap -{ - fn from(value: util::serde::HashableMap) -> Self { - Self(value) - } -} - -impl Deref for StringUdpAddressHashableMap { - type Target = util::serde::HashableMap; - - fn deref(&self) -> &Self::Target { - &self.0 - } -} - -impl utoipa::ToSchema for StringUdpAddressHashableMap {} - -impl utoipa::PartialSchema for StringUdpAddressHashableMap { - fn schema() -> utoipa::openapi::RefOr { - utoipa::openapi::ObjectBuilder::new() - .additional_properties(Some(protocol::RunnerAddressUdp::schema())) - .into() - } -} diff --git a/packages/common/udb-util/src/keys.rs b/packages/common/udb-util/src/keys.rs index 177a4eb685..e267e80a88 100644 --- a/packages/common/udb-util/src/keys.rs +++ b/packages/common/udb-util/src/keys.rs @@ -65,7 +65,7 @@ define_keys! { (37, TOTAL_MEMORY, "total_memory"), (38, TOTAL_CPU, "total_cpu"), (39, NAMESPACE, "namespace"), - (40, ADDRESS, "address"), + // 40 (41, DISPLAY_NAME, "display_name"), (42, CONNECTABLE, "connectable"), (43, SLEEP_TS, "sleep_ts"), diff --git a/packages/core/guard/server/src/cache/actor.rs b/packages/core/guard/server/src/cache/actor.rs index 1a954cb6fb..7b30025890 100644 --- a/packages/core/guard/server/src/cache/actor.rs +++ b/packages/core/guard/server/src/cache/actor.rs @@ -6,7 +6,7 @@ use std::{ use anyhow::Result; use gas::prelude::*; -use crate::routing::pegboard_gateway::{X_RIVET_ACTOR, X_RIVET_PORT}; +use crate::routing::pegboard_gateway::X_RIVET_ACTOR; #[tracing::instrument(skip_all)] pub fn build_cache_key(target: &str, path: &str, headers: &hyper::HeaderMap) -> Result { @@ -22,19 +22,10 @@ pub fn build_cache_key(target: &str, path: &str, headers: &hyper::HeaderMap) -> })?; let actor_id = Id::parse(actor_id_str.to_str()?)?; - let port_name = headers.get(X_RIVET_PORT).ok_or_else(|| { - crate::errors::MissingHeader { - header: X_RIVET_PORT.to_string(), - } - .build() - })?; - let port_name = port_name.to_str()?; - - // Create a hash using target, actor_id and port_name + // Create a hash using target, actor_id, and path let mut hasher = DefaultHasher::new(); target.hash(&mut hasher); actor_id.hash(&mut hasher); - port_name.hash(&mut hasher); path.hash(&mut hasher); let hash = hasher.finish(); diff --git a/packages/core/guard/server/src/errors.rs b/packages/core/guard/server/src/errors.rs index abc94bcbdd..1e9f5270b0 100644 --- a/packages/core/guard/server/src/errors.rs +++ b/packages/core/guard/server/src/errors.rs @@ -43,11 +43,10 @@ pub struct WrongAddrProtocol { "guard", "actor_not_found", "Actor not found.", - "Actor with ID {actor_id} and port {port_name} not found." + "Actor with ID {actor_id} not found." )] pub struct ActorNotFound { pub actor_id: Id, - pub port_name: String, } #[derive(RivetError, Serialize)] diff --git a/packages/core/guard/server/src/routing/pegboard_gateway.rs b/packages/core/guard/server/src/routing/pegboard_gateway.rs index 58088a1ac4..7015a8a686 100644 --- a/packages/core/guard/server/src/routing/pegboard_gateway.rs +++ b/packages/core/guard/server/src/routing/pegboard_gateway.rs @@ -10,7 +10,6 @@ use crate::{errors, shared_state::SharedState}; const ACTOR_READY_TIMEOUT: Duration = Duration::from_secs(10); pub const X_RIVET_ACTOR: HeaderName = HeaderName::from_static("x-rivet-actor"); -pub const X_RIVET_PORT: HeaderName = HeaderName::from_static("x-rivet-port"); /// Route requests to actor services based on hostname and path #[tracing::instrument(skip_all)] @@ -65,16 +64,8 @@ pub async fn route_request( }))); } - let port_name = headers.get(X_RIVET_PORT).ok_or_else(|| { - crate::errors::MissingHeader { - header: X_RIVET_PORT.to_string(), - } - .build() - })?; - let port_name = port_name.to_str()?; - // Lookup actor - find_actor(ctx, shared_state, actor_id, port_name, path).await + find_actor(ctx, shared_state, actor_id, path).await } struct FoundActor { @@ -83,13 +74,12 @@ struct FoundActor { destroyed: bool, } -/// Find an actor by actor_id and port_name -#[tracing::instrument(skip_all, fields(%actor_id, %port_name, %path))] +/// Find an actor by actor_id +#[tracing::instrument(skip_all, fields(%actor_id, %path))] async fn find_actor( ctx: &StandaloneCtx, shared_state: &SharedState, actor_id: Id, - port_name: &str, path: &str, ) -> Result> { // TODO: Optimize this down to a single FDB call @@ -136,11 +126,7 @@ async fn find_actor( .await??; let Some(actor) = actor_res else { - return Err(errors::ActorNotFound { - actor_id, - port_name: port_name.to_string(), - } - .build()); + return Err(errors::ActorNotFound { actor_id }.build()); }; if actor.destroyed { @@ -187,6 +173,7 @@ async fn find_actor( tracing::debug!(?actor_id, ?runner_id, "actor ready"); + // TODO: Remove round trip, return key from get_runner op above // Get runner key from runner_id let runner_key = ctx .udb()? @@ -204,7 +191,6 @@ async fn find_actor( shared_state.pegboard_gateway.clone(), actor_id, runner_key, - port_name.to_string(), ); Ok(Some(RoutingOutput::CustomServe(std::sync::Arc::new( gateway, diff --git a/packages/core/pegboard-gateway/src/lib.rs b/packages/core/pegboard-gateway/src/lib.rs index 8d752eba42..67a23eff2a 100644 --- a/packages/core/pegboard-gateway/src/lib.rs +++ b/packages/core/pegboard-gateway/src/lib.rs @@ -30,7 +30,6 @@ pub struct PegboardGateway { shared_state: SharedState, actor_id: Id, runner_key: String, - port_name: String, } impl PegboardGateway { @@ -39,14 +38,12 @@ impl PegboardGateway { shared_state: SharedState, actor_id: Id, runner_key: String, - port_name: String, ) -> Self { Self { ctx, shared_state, actor_id, runner_key, - port_name, } } } @@ -139,11 +136,9 @@ impl PegboardGateway { .to_bytes(); // Build subject to publish to - let tunnel_subject = pegboard::pubsub_subjects::TunnelRunnerReceiverSubject::new( - &self.runner_key, - &self.port_name, - ) - .to_string(); + let tunnel_subject = + pegboard::pubsub_subjects::TunnelRunnerReceiverSubject::new(&self.runner_key) + .to_string(); // Start listening for request responses let (request_id, mut msg_rx) = self @@ -235,11 +230,9 @@ impl PegboardGateway { } // Build subject to publish to - let tunnel_subject = pegboard::pubsub_subjects::TunnelRunnerReceiverSubject::new( - &self.runner_key, - &self.port_name, - ) - .to_string(); + let tunnel_subject = + pegboard::pubsub_subjects::TunnelRunnerReceiverSubject::new(&self.runner_key) + .to_string(); // Start listening for WebSocket messages let (request_id, mut msg_rx) = self diff --git a/packages/core/pegboard-runner-ws/src/lib.rs b/packages/core/pegboard-runner-ws/src/lib.rs index 576c7d567e..334c140ff0 100644 --- a/packages/core/pegboard-runner-ws/src/lib.rs +++ b/packages/core/pegboard-runner-ws/src/lib.rs @@ -304,9 +304,6 @@ async fn build_connection( name, version, total_slots, - addresses_http, - addresses_tcp, - addresses_udp, .. } = &packet { @@ -360,10 +357,6 @@ async fn build_connection( key: runner_key.clone(), version: version.clone(), total_slots: *total_slots, - - addresses_http: addresses_http.clone().unwrap_or_default(), - addresses_tcp: addresses_tcp.clone().unwrap_or_default(), - addresses_udp: addresses_udp.clone().unwrap_or_default(), }) .tag("runner_id", runner_id) .unique() diff --git a/packages/core/pegboard-tunnel/src/lib.rs b/packages/core/pegboard-tunnel/src/lib.rs index a71d3dc62f..ea07758b75 100644 --- a/packages/core/pegboard-tunnel/src/lib.rs +++ b/packages/core/pegboard-tunnel/src/lib.rs @@ -91,11 +91,8 @@ impl CustomServeTrait for PegboardTunnelCustomServe { } }; - let port_name = "main".to_string(); // Use "main" as default port name - tracing::info!( ?runner_key, - ?port_name, ?protocol_version, ?path, "tunnel WebSocket connection established" @@ -104,8 +101,7 @@ impl CustomServeTrait for PegboardTunnelCustomServe { // Subscribe to pubsub topic for this runner before accepting the client websocket so // that failures can be retried by the proxy. let topic = - pegboard::pubsub_subjects::TunnelRunnerReceiverSubject::new(&runner_key, &port_name) - .to_string(); + pegboard::pubsub_subjects::TunnelRunnerReceiverSubject::new(&runner_key).to_string(); tracing::info!(%topic, ?runner_key, "subscribing to runner receiver topic"); let mut sub = match ups.subscribe(&topic).await { Result::Ok(s) => s, diff --git a/packages/core/pegboard-tunnel/tests/integration.rs b/packages/core/pegboard-tunnel/tests/integration.rs index 70051af60a..df5d1ecf8f 100644 --- a/packages/core/pegboard-tunnel/tests/integration.rs +++ b/packages/core/pegboard-tunnel/tests/integration.rs @@ -48,13 +48,12 @@ async fn test_tunnel_bidirectional_forwarding() -> Result<()> { // Use the same placeholders as the tunnel implementation // TODO: Update when tunnel properly extracts these from connection let runner_id = Id::nil(); - let port_name = "default"; // Give tunnel time to set up pubsub subscription after WebSocket connection sleep(Duration::from_secs(1)).await; // Test 1: pubsub to WebSocket forwarding - test_pubsub_to_websocket(&ups, &mut ws_stream, runner_id, port_name).await?; + test_pubsub_to_websocket(&ups, &mut ws_stream, runner_id).await?; // Test 2: WebSocket to pubsub forwarding test_websocket_to_pubsub(&ups, &mut ws_stream, runner_id).await?; @@ -69,7 +68,6 @@ async fn test_pubsub_to_websocket( ups: &PubSub, ws_stream: &mut WebSocketStream>, runner_id: Id, - port_name: &str, ) -> Result<()> { // Create a test request message let request_id = rand::random::(); @@ -96,7 +94,7 @@ async fn test_pubsub_to_websocket( )?; // Publish to pubsub topic using proper subject - let topic = TunnelHttpRunnerSubject::new(&runner_id.to_string(), port_name).to_string(); + let topic = TunnelHttpRunnerSubject::new(&runner_id.to_string()).to_string(); ups.request(&topic, &serialized).await?; // Wait for message on WebSocket diff --git a/packages/infra/engine/tests/actors_lifecycle.rs b/packages/infra/engine/tests/actors_lifecycle.rs index 46aeff7e9d..d98d831bfd 100644 --- a/packages/infra/engine/tests/actors_lifecycle.rs +++ b/packages/infra/engine/tests/actors_lifecycle.rs @@ -30,14 +30,12 @@ async fn actor_lifecycle_inner(ctx: &common::TestCtx, multi_dc: bool) { let actor_id = common::create_actor(&namespace, target_dc.guard_port()).await; // Test ping via guard - let ping_response = - common::ping_actor_via_guard(ctx.leader_dc().guard_port(), &actor_id, "main").await; + let ping_response = common::ping_actor_via_guard(ctx.leader_dc().guard_port(), &actor_id).await; assert_eq!(ping_response["status"], "ok"); // Test websocket via guard let ws_response = - common::ping_actor_websocket_via_guard(ctx.leader_dc().guard_port(), &actor_id, "main") - .await; + common::ping_actor_websocket_via_guard(ctx.leader_dc().guard_port(), &actor_id).await; assert_eq!(ws_response["status"], "ok"); // Validate runner state @@ -115,13 +113,12 @@ async fn actor_lifecycle_with_same_key_inner(ctx: &common::TestCtx, dc_choice: D // Test ping via guard let ping_response = - common::ping_actor_via_guard(ctx.leader_dc().guard_port(), &actor_id1, "main").await; + common::ping_actor_via_guard(ctx.leader_dc().guard_port(), &actor_id1).await; assert_eq!(ping_response["status"], "ok"); // Test websocket via guard let ws_response = - common::ping_actor_websocket_via_guard(ctx.leader_dc().guard_port(), &actor_id1, "main") - .await; + common::ping_actor_websocket_via_guard(ctx.leader_dc().guard_port(), &actor_id1).await; assert_eq!(ws_response["status"], "ok"); // Destroy @@ -150,13 +147,12 @@ async fn actor_lifecycle_with_same_key_inner(ctx: &common::TestCtx, dc_choice: D // Test ping via guard let ping_response = - common::ping_actor_via_guard(ctx.leader_dc().guard_port(), &actor_id2, "main").await; + common::ping_actor_via_guard(ctx.leader_dc().guard_port(), &actor_id2).await; assert_eq!(ping_response["status"], "ok"); // Test websocket via guard let ws_response = - common::ping_actor_websocket_via_guard(ctx.leader_dc().guard_port(), &actor_id2, "main") - .await; + common::ping_actor_websocket_via_guard(ctx.leader_dc().guard_port(), &actor_id2).await; assert_eq!(ws_response["status"], "ok"); // Destroy diff --git a/packages/infra/engine/tests/common/actors.rs b/packages/infra/engine/tests/common/actors.rs index 9108a1ef23..d3495c6dc5 100644 --- a/packages/infra/engine/tests/common/actors.rs +++ b/packages/infra/engine/tests/common/actors.rs @@ -94,24 +94,14 @@ pub async fn create_actor(namespace_name: &str, guard_port: u16) -> String { } /// Pings actor via Guard. -pub async fn ping_actor_via_guard( - guard_port: u16, - actor_id: &str, - addr_name: &str, -) -> serde_json::Value { - tracing::info!( - ?guard_port, - ?actor_id, - ?addr_name, - "sending request to actor via guard" - ); +pub async fn ping_actor_via_guard(guard_port: u16, actor_id: &str) -> serde_json::Value { + tracing::info!(?guard_port, ?actor_id, "sending request to actor via guard"); let client = reqwest::Client::new(); let response = client .get(format!("http://127.0.0.1:{}/ping", guard_port)) .header("X-Rivet-Target", "actor") .header("X-Rivet-Actor", actor_id) - .header("X-Rivet-Port", addr_name) .send() .await .expect("Failed to send ping request through guard"); @@ -425,11 +415,7 @@ pub async fn bulk_create_actors( } /// Tests WebSocket connection to actor via Guard using a simple ping pong. -pub async fn ping_actor_websocket_via_guard( - guard_port: u16, - actor_id: &str, - addr_name: &str, -) -> serde_json::Value { +pub async fn ping_actor_websocket_via_guard(guard_port: u16, actor_id: &str) -> serde_json::Value { use tokio_tungstenite::{ connect_async, tungstenite::{Message, client::IntoClientRequest}, @@ -438,7 +424,6 @@ pub async fn ping_actor_websocket_via_guard( tracing::info!( ?guard_port, ?actor_id, - ?addr_name, "testing websocket connection to actor via guard" ); @@ -456,9 +441,6 @@ pub async fn ping_actor_websocket_via_guard( request .headers_mut() .insert("X-Rivet-Actor", actor_id.parse().unwrap()); - request - .headers_mut() - .insert("X-Rivet-Port", addr_name.parse().unwrap()); // Connect to WebSocket let (ws_stream, response) = connect_async(request) diff --git a/packages/services/pegboard/src/keys/runner.rs b/packages/services/pegboard/src/keys/runner.rs index 528ba2f6b4..9c20248557 100644 --- a/packages/services/pegboard/src/keys/runner.rs +++ b/packages/services/pegboard/src/keys/runner.rs @@ -507,78 +507,6 @@ impl<'de> TupleUnpack<'de> for VersionKey { } } -#[derive(Debug)] -pub struct AddressKey { - pub runner_id: Id, - pub name: String, -} - -impl AddressKey { - pub fn new(runner_id: Id, name: String) -> Self { - AddressKey { runner_id, name } - } - - pub fn subspace(runner_id: Id) -> AddressSubspaceKey { - AddressSubspaceKey::new(runner_id) - } -} - -impl FormalKey for AddressKey { - type Value = ::Latest; - - fn deserialize(&self, raw: &[u8]) -> Result { - rivet_data::versioned::AddressKeyData::deserialize_with_embedded_version(raw) - } - - fn serialize(&self, value: Self::Value) -> Result> { - rivet_data::versioned::AddressKeyData::latest(value) - .serialize_with_embedded_version(rivet_data::PEGBOARD_RUNNER_ADDRESS_VERSION) - } -} - -impl TuplePack for AddressKey { - fn pack( - &self, - w: &mut W, - tuple_depth: TupleDepth, - ) -> std::io::Result { - let t = (RUNNER, DATA, self.runner_id, ADDRESS, &self.name); - t.pack(w, tuple_depth) - } -} - -impl<'de> TupleUnpack<'de> for AddressKey { - fn unpack(input: &[u8], tuple_depth: TupleDepth) -> PackResult<(&[u8], Self)> { - let (input, (_, _, runner_id, _, name)) = - <(usize, usize, Id, usize, String)>::unpack(input, tuple_depth)?; - - let v = AddressKey { runner_id, name }; - - Ok((input, v)) - } -} - -pub struct AddressSubspaceKey { - runner_id: Id, -} - -impl AddressSubspaceKey { - pub fn new(runner_id: Id) -> Self { - AddressSubspaceKey { runner_id } - } -} - -impl TuplePack for AddressSubspaceKey { - fn pack( - &self, - w: &mut W, - tuple_depth: TupleDepth, - ) -> std::io::Result { - let t = (RUNNER, DATA, self.runner_id, ADDRESS); - t.pack(w, tuple_depth) - } -} - #[derive(Debug)] pub struct StopTsKey { runner_id: Id, diff --git a/packages/services/pegboard/src/ops/runner/get.rs b/packages/services/pegboard/src/ops/runner/get.rs index 22cbbcc6e4..484eb8e0de 100644 --- a/packages/services/pegboard/src/ops/runner/get.rs +++ b/packages/services/pegboard/src/ops/runner/get.rs @@ -1,7 +1,6 @@ use anyhow::Result; use futures_util::TryStreamExt; use gas::prelude::*; -use rivet_data::generated::pegboard_runner_address_v1::Data as AddressKeyData; use rivet_types::runners::Runner; use udb_util::{FormalChunkedKey, SERIALIZABLE, SNAPSHOT, TxnExt}; use universaldb::{self as udb, options::StreamingMode}; @@ -87,7 +86,6 @@ pub(crate) async fn get_inner( stop_ts, last_ping_ts, last_rtt, - (addresses_http, addresses_tcp, addresses_udp), metadata_chunks, ) = tokio::try_join!( // NOTE: These are not SERIALIZABLE because this op is meant for basic information (i.e. data for the @@ -104,41 +102,6 @@ pub(crate) async fn get_inner( txs.read_opt(&stop_ts_key, SNAPSHOT), txs.read_opt(&last_ping_ts_key, SNAPSHOT), txs.read_opt(&last_rtt_key, SNAPSHOT), - async { - // Get addresses by scanning all address keys for this runner - let mut addresses_http = util::serde::HashableMap::new(); - let mut addresses_tcp = util::serde::HashableMap::new(); - let mut addresses_udp = util::serde::HashableMap::new(); - - let address_subspace = txs.subspace(&keys::runner::AddressKey::subspace(runner_id)); - - let mut stream = txs.get_ranges_keyvalues( - udb::RangeOption { - mode: StreamingMode::Iterator, - ..(&address_subspace).into() - }, - SNAPSHOT, - ); - - while let Some(entry) = stream.try_next().await? { - let (address_key, address_data) = - txs.read_entry::(&entry)?; - - match address_data { - AddressKeyData::Http(addr) => { - addresses_http.insert(address_key.name.clone(), addr); - } - AddressKeyData::Tcp(addr) => { - addresses_tcp.insert(address_key.name.clone(), addr); - } - AddressKeyData::Udp(addr) => { - addresses_udp.insert(address_key.name.clone(), addr); - } - } - } - - Ok((addresses_http, addresses_tcp, addresses_udp)) - }, async { txs.get_ranges_keyvalues( udb::RangeOption { @@ -173,9 +136,6 @@ pub(crate) async fn get_inner( version, total_slots, remaining_slots, - addresses_http: addresses_http.into(), - addresses_tcp: addresses_tcp.into(), - addresses_udp: addresses_udp.into(), create_ts, last_connected_ts: connected_ts, drain_ts, diff --git a/packages/services/pegboard/src/pubsub_subjects.rs b/packages/services/pegboard/src/pubsub_subjects.rs index ae9e9438b6..d51f2c47c9 100644 --- a/packages/services/pegboard/src/pubsub_subjects.rs +++ b/packages/services/pegboard/src/pubsub_subjects.rs @@ -2,25 +2,17 @@ use gas::prelude::*; pub struct TunnelRunnerReceiverSubject<'a> { runner_key: &'a str, - port_name: &'a str, } impl<'a> TunnelRunnerReceiverSubject<'a> { - pub fn new(runner_key: &'a str, port_name: &'a str) -> Self { - Self { - runner_key, - port_name, - } + pub fn new(runner_key: &'a str) -> Self { + Self { runner_key } } } impl std::fmt::Display for TunnelRunnerReceiverSubject<'_> { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!( - f, - "pegboard.tunnel.runner_receiver.{}.{}", - self.runner_key, self.port_name - ) + write!(f, "pegboard.tunnel.runner_receiver.{}", self.runner_key) } } diff --git a/packages/services/pegboard/src/workflows/runner.rs b/packages/services/pegboard/src/workflows/runner.rs index e5d64f17d6..b88cc019c2 100644 --- a/packages/services/pegboard/src/workflows/runner.rs +++ b/packages/services/pegboard/src/workflows/runner.rs @@ -1,9 +1,6 @@ use futures_util::{FutureExt, StreamExt, TryStreamExt}; use gas::prelude::*; -use rivet_data::{ - converted::{ActorNameKeyData, MetadataKeyData, RunnerByKeyKeyData}, - generated::pegboard_runner_address_v1::Data as AddressKeyData, -}; +use rivet_data::converted::{ActorNameKeyData, MetadataKeyData, RunnerByKeyKeyData}; use rivet_runner_protocol::protocol; use udb_util::{FormalChunkedKey, SERIALIZABLE, SNAPSHOT, TxnExt}; use universaldb::{ @@ -27,10 +24,6 @@ pub struct Input { pub key: String, pub version: u32, pub total_slots: u32, - - pub addresses_http: util::serde::HashableMap, - pub addresses_tcp: util::serde::HashableMap, - pub addresses_udp: util::serde::HashableMap, } #[derive(Debug, Serialize, Deserialize)] @@ -72,9 +65,6 @@ pub async fn pegboard_runner(ctx: &mut WorkflowCtx, input: &Input) -> Result<()> key: input.key.clone(), namespace_id: input.namespace_id, create_ts: ctx.create_ts(), - addresses_http: input.addresses_http.clone(), - addresses_tcp: input.addresses_tcp.clone(), - addresses_udp: input.addresses_udp.clone(), }) .await?; @@ -437,10 +427,6 @@ struct InitInput { key: String, namespace_id: Id, create_ts: i64, - - addresses_http: util::serde::HashableMap, - addresses_tcp: util::serde::HashableMap, - addresses_udp: util::serde::HashableMap, } #[derive(Debug, Serialize, Deserialize)] @@ -460,27 +446,6 @@ async fn init(ctx: &ActivityCtx, input: &InitInput) -> Result { .run(|tx, _mc| async move { let txs = tx.subspace(keys::subspace()); - for (name, port_http) in &input.addresses_http { - txs.write( - &keys::runner::AddressKey::new(input.runner_id, name.into()), - AddressKeyData::Http(port_http.clone().into()), - )?; - } - - for (name, port_tcp) in &input.addresses_tcp { - txs.write( - &keys::runner::AddressKey::new(input.runner_id, name.into()), - AddressKeyData::Tcp(port_tcp.clone().into()), - )?; - } - - for (name, port_udp) in &input.addresses_udp { - txs.write( - &keys::runner::AddressKey::new(input.runner_id, name.into()), - AddressKeyData::Udp(port_udp.clone().into()), - )?; - } - let runner_by_key_key = keys::ns::RunnerByKeyKey::new( input.namespace_id, input.name.clone(), diff --git a/scripts/tests/actor_e2e.ts b/scripts/tests/actor_e2e.ts index 070ac21fab..0290460e2f 100755 --- a/scripts/tests/actor_e2e.ts +++ b/scripts/tests/actor_e2e.ts @@ -19,7 +19,6 @@ async function main() { headers: { "X-Rivet-Target": "actor", "X-Rivet-Actor": actorResponse.actor.actor_id, - "X-Rivet-Port": "main", }, }); @@ -65,7 +64,6 @@ function testWebSocket(actorId: string): Promise { headers: { "X-Rivet-Target": "actor", "X-Rivet-Actor": actorId, - "X-Rivet-Port": "main", }, }); diff --git a/scripts/tests/actor_e2e_multidc.ts b/scripts/tests/actor_e2e_multidc.ts index f2caca24ec..6e1f4c9802 100755 --- a/scripts/tests/actor_e2e_multidc.ts +++ b/scripts/tests/actor_e2e_multidc.ts @@ -37,7 +37,7 @@ async function createActorInDc( async function testActorInDc(dc: string) { console.log(`\n=== Testing actor in ${dc} ===`); - + try { // Create an actor in the specified datacenter console.log(`Creating actor in ${dc}...`); @@ -55,7 +55,6 @@ async function testActorInDc(dc: string) { headers: { "x-rivet-target": "actor", "x-rivet-actor": actorResponse.actor.actor_id, - "x-rivet-addr": "main", }, }); @@ -83,7 +82,7 @@ async function testActorInDc(dc: string) { async function main() { const datacenters = ["dc-a", "dc-b", "dc-c"]; const results: Record = {}; - + console.log("Starting multi-datacenter actor E2E test..."); console.log(`Testing datacenters: ${datacenters.join(", ")}`); diff --git a/sdks/rust/data/src/converted.rs b/sdks/rust/data/src/converted.rs index 859682e546..4c956ffda9 100644 --- a/sdks/rust/data/src/converted.rs +++ b/sdks/rust/data/src/converted.rs @@ -33,60 +33,6 @@ impl TryFrom for pegboard_namespace_runner_alloc_idx_v1:: } } -impl From for rivet_runner_protocol::protocol::RunnerAddressHttp { - fn from(value: pegboard_runner_address_v1::Http) -> Self { - rivet_runner_protocol::protocol::RunnerAddressHttp { - hostname: value.hostname, - port: value.port, - } - } -} - -impl From for pegboard_runner_address_v1::Http { - fn from(value: rivet_runner_protocol::protocol::RunnerAddressHttp) -> Self { - pegboard_runner_address_v1::Http { - hostname: value.hostname, - port: value.port, - } - } -} - -impl From for rivet_runner_protocol::protocol::RunnerAddressTcp { - fn from(value: pegboard_runner_address_v1::Tcp) -> Self { - rivet_runner_protocol::protocol::RunnerAddressTcp { - hostname: value.hostname, - port: value.port, - } - } -} - -impl From for pegboard_runner_address_v1::Tcp { - fn from(value: rivet_runner_protocol::protocol::RunnerAddressTcp) -> Self { - pegboard_runner_address_v1::Tcp { - hostname: value.hostname, - port: value.port, - } - } -} - -impl From for rivet_runner_protocol::protocol::RunnerAddressUdp { - fn from(value: pegboard_runner_address_v1::Udp) -> Self { - rivet_runner_protocol::protocol::RunnerAddressUdp { - hostname: value.hostname, - port: value.port, - } - } -} - -impl From for pegboard_runner_address_v1::Udp { - fn from(value: rivet_runner_protocol::protocol::RunnerAddressUdp) -> Self { - pegboard_runner_address_v1::Udp { - hostname: value.hostname, - port: value.port, - } - } -} - pub struct MetadataKeyData { pub metadata: serde_json::Map, } diff --git a/sdks/rust/data/src/versioned.rs b/sdks/rust/data/src/versioned.rs index 551e518158..b898f38096 100644 --- a/sdks/rust/data/src/versioned.rs +++ b/sdks/rust/data/src/versioned.rs @@ -37,40 +37,6 @@ impl OwnedVersionedData for RunnerAllocIdxKeyData { } } -pub enum AddressKeyData { - V1(pegboard_runner_address_v1::Data), -} - -impl OwnedVersionedData for AddressKeyData { - type Latest = pegboard_runner_address_v1::Data; - - fn latest(latest: pegboard_runner_address_v1::Data) -> Self { - AddressKeyData::V1(latest) - } - - fn into_latest(self) -> Result { - #[allow(irrefutable_let_patterns)] - if let AddressKeyData::V1(data) = self { - Ok(data) - } else { - bail!("version not latest"); - } - } - - fn deserialize_version(payload: &[u8], version: u16) -> Result { - match version { - 1 => Ok(AddressKeyData::V1(serde_bare::from_slice(payload)?)), - _ => bail!("invalid version: {version}"), - } - } - - fn serialize_version(self, _version: u16) -> Result> { - match self { - AddressKeyData::V1(data) => serde_bare::to_vec(&data).map_err(Into::into), - } - } -} - pub enum MetadataKeyData { V1(pegboard_runner_metadata_v1::Data), } diff --git a/sdks/rust/runner-protocol/src/protocol.rs b/sdks/rust/runner-protocol/src/protocol.rs index a037941e2a..67d7644a18 100644 --- a/sdks/rust/runner-protocol/src/protocol.rs +++ b/sdks/rust/runner-protocol/src/protocol.rs @@ -24,10 +24,6 @@ pub enum ToServer { version: u32, total_slots: u32, - addresses_http: Option>, - addresses_tcp: Option>, - addresses_udp: Option>, - last_command_idx: Option, prepopulate_actor_names: Option>, metadata: Option, @@ -156,24 +152,6 @@ pub enum StopCode { Error, } -#[derive(Debug, Clone, Serialize, Deserialize, Hash, utoipa::ToSchema)] -pub struct RunnerAddressHttp { - pub hostname: String, - pub port: u16, -} - -#[derive(Debug, Clone, Serialize, Deserialize, Hash, utoipa::ToSchema)] -pub struct RunnerAddressTcp { - pub hostname: String, - pub port: u16, -} - -#[derive(Debug, Clone, Serialize, Deserialize, Hash, utoipa::ToSchema)] -pub struct RunnerAddressUdp { - pub hostname: String, - pub port: u16, -} - #[derive(Debug, Clone, Copy, Serialize, Deserialize, Hash)] #[serde(rename_all = "snake_case")] pub enum WebsocketCloseReason { diff --git a/sdks/rust/runner-protocol/src/versioned.rs b/sdks/rust/runner-protocol/src/versioned.rs index 34c54168b6..954338905c 100644 --- a/sdks/rust/runner-protocol/src/versioned.rs +++ b/sdks/rust/runner-protocol/src/versioned.rs @@ -252,33 +252,6 @@ impl TryFrom for protocol::StopCode { } } -impl From for protocol::RunnerAddressHttp { - fn from(value: v1::RunnerAddressHttp) -> Self { - protocol::RunnerAddressHttp { - hostname: value.hostname, - port: value.port, - } - } -} - -impl From for protocol::RunnerAddressTcp { - fn from(value: v1::RunnerAddressTcp) -> Self { - protocol::RunnerAddressTcp { - hostname: value.hostname, - port: value.port, - } - } -} - -impl From for protocol::RunnerAddressUdp { - fn from(value: v1::RunnerAddressUdp) -> Self { - protocol::RunnerAddressUdp { - hostname: value.hostname, - port: value.port, - } - } -} - impl TryFrom for protocol::ToServer { type Error = anyhow::Error; @@ -288,18 +261,6 @@ impl TryFrom for protocol::ToServer { name: init.name, version: init.version, total_slots: init.total_slots, - addresses_http: init - .addresses_http - .map(|addrs| Ok(addrs.into_iter().map(|(k, v)| (k, v.into())).collect())) - .transpose()?, - addresses_tcp: init - .addresses_tcp - .map(|addrs| Ok(addrs.into_iter().map(|(k, v)| (k, v.into())).collect())) - .transpose()?, - addresses_udp: init - .addresses_udp - .map(|addrs| Ok(addrs.into_iter().map(|(k, v)| (k, v.into())).collect())) - .transpose()?, last_command_idx: init.last_command_idx, prepopulate_actor_names: init .prepopulate_actor_names diff --git a/sdks/schemas/data/pegboard.runner.address.v1.bare b/sdks/schemas/data/pegboard.runner.address.v1.bare deleted file mode 100644 index 620ee155aa..0000000000 --- a/sdks/schemas/data/pegboard.runner.address.v1.bare +++ /dev/null @@ -1,20 +0,0 @@ -type Http struct { - hostname: str - port: u16 -} - -type Tcp struct { - hostname: str - port: u16 -} - -type Udp struct { - hostname: str - port: u16 -} - -type Data union { - Http | - Tcp | - Udp -} diff --git a/sdks/schemas/runner-protocol/v1.bare b/sdks/schemas/runner-protocol/v1.bare index 5db5afcea4..e04ca50e24 100644 --- a/sdks/schemas/runner-protocol/v1.bare +++ b/sdks/schemas/runner-protocol/v1.bare @@ -34,21 +34,6 @@ type ActorName struct { metadata: Json } -type RunnerAddressHttp struct { - hostname: str - port: u16 -} - -type RunnerAddressTcp struct { - hostname: str - port: u16 -} - -type RunnerAddressUdp struct { - hostname: str - port: u16 -} - type StopCode enum { OK ERROR @@ -136,9 +121,6 @@ type ToServerInit struct { name: str version: u32 totalSlots: u32 - addressesHttp: optional> - addressesTcp: optional> - addressesUdp: optional> lastCommandIdx: optional prepopulateActorNames: optional> metadata: optional diff --git a/sdks/typescript/runner-protocol/src/index.ts b/sdks/typescript/runner-protocol/src/index.ts index 96c00212c6..84a6c9463d 100644 --- a/sdks/typescript/runner-protocol/src/index.ts +++ b/sdks/typescript/runner-protocol/src/index.ts @@ -3,7 +3,6 @@ import * as bare from "@bare-ts/lib" const DEFAULT_CONFIG = /* @__PURE__ */ bare.Config({}) export type i64 = bigint -export type u16 = number export type u32 = number export type u64 = bigint @@ -155,57 +154,6 @@ export function writeActorName(bc: bare.ByteCursor, x: ActorName): void { writeJson(bc, x.metadata) } -export type RunnerAddressHttp = { - readonly hostname: string - readonly port: u16 -} - -export function readRunnerAddressHttp(bc: bare.ByteCursor): RunnerAddressHttp { - return { - hostname: bare.readString(bc), - port: bare.readU16(bc), - } -} - -export function writeRunnerAddressHttp(bc: bare.ByteCursor, x: RunnerAddressHttp): void { - bare.writeString(bc, x.hostname) - bare.writeU16(bc, x.port) -} - -export type RunnerAddressTcp = { - readonly hostname: string - readonly port: u16 -} - -export function readRunnerAddressTcp(bc: bare.ByteCursor): RunnerAddressTcp { - return { - hostname: bare.readString(bc), - port: bare.readU16(bc), - } -} - -export function writeRunnerAddressTcp(bc: bare.ByteCursor, x: RunnerAddressTcp): void { - bare.writeString(bc, x.hostname) - bare.writeU16(bc, x.port) -} - -export type RunnerAddressUdp = { - readonly hostname: string - readonly port: u16 -} - -export function readRunnerAddressUdp(bc: bare.ByteCursor): RunnerAddressUdp { - return { - hostname: bare.readString(bc), - port: bare.readU16(bc), - } -} - -export function writeRunnerAddressUdp(bc: bare.ByteCursor, x: RunnerAddressUdp): void { - bare.writeString(bc, x.hostname) - bare.writeU16(bc, x.port) -} - export enum StopCode { Ok = "Ok", Error = "Error", @@ -590,109 +538,7 @@ export function writeCommandWrapper(bc: bare.ByteCursor, x: CommandWrapper): voi writeCommand(bc, x.inner) } -function read3(bc: bare.ByteCursor): ReadonlyMap { - const len = bare.readUintSafe(bc) - const result = new Map() - for (let i = 0; i < len; i++) { - const offset = bc.offset - const key = bare.readString(bc) - if (result.has(key)) { - bc.offset = offset - throw new bare.BareError(offset, "duplicated key") - } - result.set(key, readRunnerAddressHttp(bc)) - } - return result -} - -function write3(bc: bare.ByteCursor, x: ReadonlyMap): void { - bare.writeUintSafe(bc, x.size) - for (const kv of x) { - bare.writeString(bc, kv[0]) - writeRunnerAddressHttp(bc, kv[1]) - } -} - -function read4(bc: bare.ByteCursor): ReadonlyMap | null { - return bare.readBool(bc) ? read3(bc) : null -} - -function write4(bc: bare.ByteCursor, x: ReadonlyMap | null): void { - bare.writeBool(bc, x != null) - if (x != null) { - write3(bc, x) - } -} - -function read5(bc: bare.ByteCursor): ReadonlyMap { - const len = bare.readUintSafe(bc) - const result = new Map() - for (let i = 0; i < len; i++) { - const offset = bc.offset - const key = bare.readString(bc) - if (result.has(key)) { - bc.offset = offset - throw new bare.BareError(offset, "duplicated key") - } - result.set(key, readRunnerAddressTcp(bc)) - } - return result -} - -function write5(bc: bare.ByteCursor, x: ReadonlyMap): void { - bare.writeUintSafe(bc, x.size) - for (const kv of x) { - bare.writeString(bc, kv[0]) - writeRunnerAddressTcp(bc, kv[1]) - } -} - -function read6(bc: bare.ByteCursor): ReadonlyMap | null { - return bare.readBool(bc) ? read5(bc) : null -} - -function write6(bc: bare.ByteCursor, x: ReadonlyMap | null): void { - bare.writeBool(bc, x != null) - if (x != null) { - write5(bc, x) - } -} - -function read7(bc: bare.ByteCursor): ReadonlyMap { - const len = bare.readUintSafe(bc) - const result = new Map() - for (let i = 0; i < len; i++) { - const offset = bc.offset - const key = bare.readString(bc) - if (result.has(key)) { - bc.offset = offset - throw new bare.BareError(offset, "duplicated key") - } - result.set(key, readRunnerAddressUdp(bc)) - } - return result -} - -function write7(bc: bare.ByteCursor, x: ReadonlyMap): void { - bare.writeUintSafe(bc, x.size) - for (const kv of x) { - bare.writeString(bc, kv[0]) - writeRunnerAddressUdp(bc, kv[1]) - } -} - -function read8(bc: bare.ByteCursor): ReadonlyMap | null { - return bare.readBool(bc) ? read7(bc) : null -} - -function write8(bc: bare.ByteCursor, x: ReadonlyMap | null): void { - bare.writeBool(bc, x != null) - if (x != null) { - write7(bc, x) - } -} - -function read9(bc: bare.ByteCursor): ReadonlyMap { +function read3(bc: bare.ByteCursor): ReadonlyMap { const len = bare.readUintSafe(bc) const result = new Map() for (let i = 0; i < len; i++) { @@ -707,7 +553,7 @@ function read9(bc: bare.ByteCursor): ReadonlyMap { return result } -function write9(bc: bare.ByteCursor, x: ReadonlyMap): void { +function write3(bc: bare.ByteCursor, x: ReadonlyMap): void { bare.writeUintSafe(bc, x.size) for (const kv of x) { bare.writeString(bc, kv[0]) @@ -715,22 +561,22 @@ function write9(bc: bare.ByteCursor, x: ReadonlyMap): void { } } -function read10(bc: bare.ByteCursor): ReadonlyMap | null { - return bare.readBool(bc) ? read9(bc) : null +function read4(bc: bare.ByteCursor): ReadonlyMap | null { + return bare.readBool(bc) ? read3(bc) : null } -function write10(bc: bare.ByteCursor, x: ReadonlyMap | null): void { +function write4(bc: bare.ByteCursor, x: ReadonlyMap | null): void { bare.writeBool(bc, x != null) if (x != null) { - write9(bc, x) + write3(bc, x) } } -function read11(bc: bare.ByteCursor): Json | null { +function read5(bc: bare.ByteCursor): Json | null { return bare.readBool(bc) ? readJson(bc) : null } -function write11(bc: bare.ByteCursor, x: Json | null): void { +function write5(bc: bare.ByteCursor, x: Json | null): void { bare.writeBool(bc, x != null) if (x != null) { writeJson(bc, x) @@ -741,9 +587,6 @@ export type ToServerInit = { readonly name: string readonly version: u32 readonly totalSlots: u32 - readonly addressesHttp: ReadonlyMap | null - readonly addressesTcp: ReadonlyMap | null - readonly addressesUdp: ReadonlyMap | null readonly lastCommandIdx: i64 | null readonly prepopulateActorNames: ReadonlyMap | null readonly metadata: Json | null @@ -754,12 +597,9 @@ export function readToServerInit(bc: bare.ByteCursor): ToServerInit { name: bare.readString(bc), version: bare.readU32(bc), totalSlots: bare.readU32(bc), - addressesHttp: read4(bc), - addressesTcp: read6(bc), - addressesUdp: read8(bc), lastCommandIdx: read1(bc), - prepopulateActorNames: read10(bc), - metadata: read11(bc), + prepopulateActorNames: read4(bc), + metadata: read5(bc), } } @@ -767,12 +607,9 @@ export function writeToServerInit(bc: bare.ByteCursor, x: ToServerInit): void { bare.writeString(bc, x.name) bare.writeU32(bc, x.version) bare.writeU32(bc, x.totalSlots) - write4(bc, x.addressesHttp) - write6(bc, x.addressesTcp) - write8(bc, x.addressesUdp) write1(bc, x.lastCommandIdx) - write10(bc, x.prepopulateActorNames) - write11(bc, x.metadata) + write4(bc, x.prepopulateActorNames) + write5(bc, x.metadata) } export type ToServerEvents = readonly EventWrapper[] @@ -826,7 +663,7 @@ export function writeToServerPing(bc: bare.ByteCursor, x: ToServerPing): void { bare.writeI64(bc, x.ts) } -function read12(bc: bare.ByteCursor): readonly KvKey[] { +function read6(bc: bare.ByteCursor): readonly KvKey[] { const len = bare.readUintSafe(bc) if (len === 0) { return [] @@ -838,7 +675,7 @@ function read12(bc: bare.ByteCursor): readonly KvKey[] { return result } -function write12(bc: bare.ByteCursor, x: readonly KvKey[]): void { +function write6(bc: bare.ByteCursor, x: readonly KvKey[]): void { bare.writeUintSafe(bc, x.length) for (let i = 0; i < x.length; i++) { writeKvKey(bc, x[i]) @@ -851,30 +688,30 @@ export type KvGetRequest = { export function readKvGetRequest(bc: bare.ByteCursor): KvGetRequest { return { - keys: read12(bc), + keys: read6(bc), } } export function writeKvGetRequest(bc: bare.ByteCursor, x: KvGetRequest): void { - write12(bc, x.keys) + write6(bc, x.keys) } -function read13(bc: bare.ByteCursor): boolean | null { +function read7(bc: bare.ByteCursor): boolean | null { return bare.readBool(bc) ? bare.readBool(bc) : null } -function write13(bc: bare.ByteCursor, x: boolean | null): void { +function write7(bc: bare.ByteCursor, x: boolean | null): void { bare.writeBool(bc, x != null) if (x != null) { bare.writeBool(bc, x) } } -function read14(bc: bare.ByteCursor): u64 | null { +function read8(bc: bare.ByteCursor): u64 | null { return bare.readBool(bc) ? bare.readU64(bc) : null } -function write14(bc: bare.ByteCursor, x: u64 | null): void { +function write8(bc: bare.ByteCursor, x: u64 | null): void { bare.writeBool(bc, x != null) if (x != null) { bare.writeU64(bc, x) @@ -890,18 +727,18 @@ export type KvListRequest = { export function readKvListRequest(bc: bare.ByteCursor): KvListRequest { return { query: readKvListQuery(bc), - reverse: read13(bc), - limit: read14(bc), + reverse: read7(bc), + limit: read8(bc), } } export function writeKvListRequest(bc: bare.ByteCursor, x: KvListRequest): void { writeKvListQuery(bc, x.query) - write13(bc, x.reverse) - write14(bc, x.limit) + write7(bc, x.reverse) + write8(bc, x.limit) } -function read15(bc: bare.ByteCursor): readonly KvValue[] { +function read9(bc: bare.ByteCursor): readonly KvValue[] { const len = bare.readUintSafe(bc) if (len === 0) { return [] @@ -913,7 +750,7 @@ function read15(bc: bare.ByteCursor): readonly KvValue[] { return result } -function write15(bc: bare.ByteCursor, x: readonly KvValue[]): void { +function write9(bc: bare.ByteCursor, x: readonly KvValue[]): void { bare.writeUintSafe(bc, x.length) for (let i = 0; i < x.length; i++) { writeKvValue(bc, x[i]) @@ -927,14 +764,14 @@ export type KvPutRequest = { export function readKvPutRequest(bc: bare.ByteCursor): KvPutRequest { return { - keys: read12(bc), - values: read15(bc), + keys: read6(bc), + values: read9(bc), } } export function writeKvPutRequest(bc: bare.ByteCursor, x: KvPutRequest): void { - write12(bc, x.keys) - write15(bc, x.values) + write6(bc, x.keys) + write9(bc, x.values) } export type KvDeleteRequest = { @@ -943,12 +780,12 @@ export type KvDeleteRequest = { export function readKvDeleteRequest(bc: bare.ByteCursor): KvDeleteRequest { return { - keys: read12(bc), + keys: read6(bc), } } export function writeKvDeleteRequest(bc: bare.ByteCursor, x: KvDeleteRequest): void { - write12(bc, x.keys) + write6(bc, x.keys) } export type KvDropRequest = null @@ -1197,7 +1034,7 @@ export function writeKvErrorResponse(bc: bare.ByteCursor, x: KvErrorResponse): v bare.writeString(bc, x.message) } -function read16(bc: bare.ByteCursor): readonly KvMetadata[] { +function read10(bc: bare.ByteCursor): readonly KvMetadata[] { const len = bare.readUintSafe(bc) if (len === 0) { return [] @@ -1209,7 +1046,7 @@ function read16(bc: bare.ByteCursor): readonly KvMetadata[] { return result } -function write16(bc: bare.ByteCursor, x: readonly KvMetadata[]): void { +function write10(bc: bare.ByteCursor, x: readonly KvMetadata[]): void { bare.writeUintSafe(bc, x.length) for (let i = 0; i < x.length; i++) { writeKvMetadata(bc, x[i]) @@ -1224,16 +1061,16 @@ export type KvGetResponse = { export function readKvGetResponse(bc: bare.ByteCursor): KvGetResponse { return { - keys: read12(bc), - values: read15(bc), - metadata: read16(bc), + keys: read6(bc), + values: read9(bc), + metadata: read10(bc), } } export function writeKvGetResponse(bc: bare.ByteCursor, x: KvGetResponse): void { - write12(bc, x.keys) - write15(bc, x.values) - write16(bc, x.metadata) + write6(bc, x.keys) + write9(bc, x.values) + write10(bc, x.metadata) } export type KvListResponse = { @@ -1244,16 +1081,16 @@ export type KvListResponse = { export function readKvListResponse(bc: bare.ByteCursor): KvListResponse { return { - keys: read12(bc), - values: read15(bc), - metadata: read16(bc), + keys: read6(bc), + values: read9(bc), + metadata: read10(bc), } } export function writeKvListResponse(bc: bare.ByteCursor, x: KvListResponse): void { - write12(bc, x.keys) - write15(bc, x.values) - write16(bc, x.metadata) + write6(bc, x.keys) + write9(bc, x.values) + write10(bc, x.metadata) } export type KvPutResponse = null diff --git a/sdks/typescript/runner/benches/actor-lifecycle.bench.ts b/sdks/typescript/runner/benches/actor-lifecycle.bench.ts index e9a73a8f4a..e4853feb0d 100644 --- a/sdks/typescript/runner/benches/actor-lifecycle.bench.ts +++ b/sdks/typescript/runner/benches/actor-lifecycle.bench.ts @@ -93,7 +93,6 @@ // headers: { // "x-rivet-target": "actor", // "x-rivet-actor": actorId, -// "x-rivet-addr": "main", // }, // }); // if (!pingResponse.ok) throw "Request failed"; @@ -110,7 +109,6 @@ // // headers: { // // "x-rivet-target": "actor", // // "x-rivet-actor": wakeActorId, -// // "x-rivet-addr": "main", // // }, // // }); // // diff --git a/sdks/typescript/runner/src/mod.ts b/sdks/typescript/runner/src/mod.ts index 611f2bbcf0..c7a7ce1a8c 100644 --- a/sdks/typescript/runner/src/mod.ts +++ b/sdks/typescript/runner/src/mod.ts @@ -450,9 +450,6 @@ export class Runner { name: this.#config.runnerName, version: this.#config.version, totalSlots: this.#config.totalSlots, - addressesHttp: new Map(), // No addresses needed with tunnel - addressesTcp: null, - addressesUdp: null, lastCommandIdx: this.#lastCommandIdx >= 0 ? BigInt(this.#lastCommandIdx) diff --git a/sdks/typescript/runner/tests/lifecycle.test.ts b/sdks/typescript/runner/tests/lifecycle.test.ts index 347c8d6a49..c84976890b 100644 --- a/sdks/typescript/runner/tests/lifecycle.test.ts +++ b/sdks/typescript/runner/tests/lifecycle.test.ts @@ -242,7 +242,6 @@ // headers: { // "x-rivet-target": "actor", // "x-rivet-actor": actorId, -// "x-rivet-addr": "main", // }, // }); // expect(actorPingResponse.ok).toBe(true); @@ -255,7 +254,6 @@ // headers: { // "x-rivet-target": "actor", // "x-rivet-actor": actorId, -// "x-rivet-addr": "main", // }, // }); // @@ -305,7 +303,6 @@ // headers: { // "x-rivet-target": "actor", // "x-rivet-actor": actorId, -// "x-rivet-addr": "main", // }, // }); // console.log(`Wake response status: ${wakeResponse.status}`); @@ -340,7 +337,6 @@ // headers: { // "x-rivet-target": "actor", // "x-rivet-actor": actorId, -// "x-rivet-addr": "main", // }, // }); // @@ -367,7 +363,6 @@ // headers: { // "x-rivet-target": "actor", // "x-rivet-actor": actorId, -// "x-rivet-addr": "main", // }, // }); // @@ -413,7 +408,6 @@ // headers: { // "x-rivet-target": "actor", // "x-rivet-actor": actorId, -// "x-rivet-addr": "main", // }, // }); // expect(destroyedPingResponse.status).toBe(404); @@ -424,7 +418,6 @@ // headers: { // "x-rivet-target": "actor", // "x-rivet-actor": actorId, -// "x-rivet-addr": "main", // }, // }); // diff --git a/tests/load/actor-lifecycle/actor.ts b/tests/load/actor-lifecycle/actor.ts index 7132978d5c..8181df1cfa 100644 --- a/tests/load/actor-lifecycle/actor.ts +++ b/tests/load/actor-lifecycle/actor.ts @@ -28,7 +28,6 @@ export function waitForHealth(url: string, actorId: string): boolean { headers: { "x-rivet-target": "actor", "x-rivet-actor": actorId, - "x-rivet-addr": "main", } }); if (response.status === 200) { diff --git a/tests/load/actor-lifecycle/types.ts b/tests/load/actor-lifecycle/types.ts index 9160e758c7..dafde22396 100644 --- a/tests/load/actor-lifecycle/types.ts +++ b/tests/load/actor-lifecycle/types.ts @@ -10,12 +10,6 @@ export interface Config { export interface Actor { actor_id: string; - addresses_http: { - main: { - hostname: string; - port: number; - }; - }; } export interface CreateActorResponse {