diff --git a/Cargo.lock b/Cargo.lock index 2b4637b299..2ad41b9776 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4094,7 +4094,7 @@ dependencies = [ [[package]] name = "postgres" version = "0.19.4" -source = "git+https://github.com/neondatabase/rust-postgres.git?branch=neon#20031d7a9ee1addeae6e0968e3899ae6bf01cee2" +source = "git+https://github.com/neondatabase/rust-postgres.git?branch=socket-config#539ce321bbe1d2cb1c64c2c405c9afa1bb9f6366" dependencies = [ "bytes", "fallible-iterator", @@ -4107,7 +4107,7 @@ dependencies = [ [[package]] name = "postgres-native-tls" version = "0.5.0" -source = "git+https://github.com/neondatabase/rust-postgres.git?branch=neon#20031d7a9ee1addeae6e0968e3899ae6bf01cee2" +source = "git+https://github.com/neondatabase/rust-postgres.git?branch=socket-config#539ce321bbe1d2cb1c64c2c405c9afa1bb9f6366" dependencies = [ "native-tls", "tokio", @@ -4118,7 +4118,7 @@ dependencies = [ [[package]] name = "postgres-protocol" version = "0.6.4" -source = "git+https://github.com/neondatabase/rust-postgres.git?branch=neon#20031d7a9ee1addeae6e0968e3899ae6bf01cee2" +source = "git+https://github.com/neondatabase/rust-postgres.git?branch=socket-config#539ce321bbe1d2cb1c64c2c405c9afa1bb9f6366" dependencies = [ "base64 0.20.0", "byteorder", @@ -4137,7 +4137,7 @@ dependencies = [ [[package]] name = "postgres-types" version = "0.2.4" -source = "git+https://github.com/neondatabase/rust-postgres.git?branch=neon#20031d7a9ee1addeae6e0968e3899ae6bf01cee2" +source = "git+https://github.com/neondatabase/rust-postgres.git?branch=socket-config#539ce321bbe1d2cb1c64c2c405c9afa1bb9f6366" dependencies = [ "bytes", "fallible-iterator", @@ -6276,7 +6276,7 @@ dependencies = [ [[package]] name = "tokio-postgres" version = "0.7.7" -source = "git+https://github.com/neondatabase/rust-postgres.git?branch=neon#20031d7a9ee1addeae6e0968e3899ae6bf01cee2" +source = "git+https://github.com/neondatabase/rust-postgres.git?branch=socket-config#539ce321bbe1d2cb1c64c2c405c9afa1bb9f6366" dependencies = [ "async-trait", "byteorder", diff --git a/Cargo.toml b/Cargo.toml index 677eaa9ce4..a7a277bf98 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -194,11 +194,11 @@ env_logger = "0.10" log = "0.4" ## Libraries from neondatabase/ git forks, ideally with changes to be upstreamed -postgres = { git = "https://github.com/neondatabase/rust-postgres.git", branch="neon" } -postgres-native-tls = { git = "https://github.com/neondatabase/rust-postgres.git", branch="neon" } -postgres-protocol = { git = "https://github.com/neondatabase/rust-postgres.git", branch="neon" } -postgres-types = { git = "https://github.com/neondatabase/rust-postgres.git", branch="neon" } -tokio-postgres = { git = "https://github.com/neondatabase/rust-postgres.git", branch="neon" } +postgres = { git = "https://github.com/neondatabase/rust-postgres.git", branch="socket-config" } +postgres-native-tls = { git = "https://github.com/neondatabase/rust-postgres.git", branch="socket-config" } +postgres-protocol = { git = "https://github.com/neondatabase/rust-postgres.git", branch="socket-config" } +postgres-types = { git = "https://github.com/neondatabase/rust-postgres.git", branch="socket-config" } +tokio-postgres = { git = "https://github.com/neondatabase/rust-postgres.git", branch="socket-config" } ## Other git libraries heapless = { default-features=false, features=[], git = "https://github.com/japaric/heapless.git", rev = "644653bf3b831c6bb4963be2de24804acf5e5001" } # upstream release pending @@ -238,7 +238,7 @@ tonic-build = "0.9" # This is only needed for proxy's tests. # TODO: we should probably fork `tokio-postgres-rustls` instead. -tokio-postgres = { git = "https://github.com/neondatabase/rust-postgres.git", branch="neon" } +tokio-postgres = { git = "https://github.com/neondatabase/rust-postgres.git", branch="socket-config" } # bug fixes for UUID parquet = { git = "https://github.com/neondatabase/arrow-rs", branch = "neon-fix-bugs" } diff --git a/proxy/src/compute.rs b/proxy/src/compute.rs index 47e7dd68a8..3af561d232 100644 --- a/proxy/src/compute.rs +++ b/proxy/src/compute.rs @@ -16,7 +16,7 @@ use thiserror::Error; use tokio::net::TcpStream; use tokio_postgres::{ tls::{MakeTlsConnect, NoTlsError}, - Connection, + Connection, SocketConfig, }; use tracing::{error, info, warn}; @@ -304,9 +304,16 @@ impl ConnCfg { let tls = MakeTlsConnect::::make_tls_connect(&mut tls, host)?; // connect_raw() will not use TLS if sslmode is "disable" - let (client, connection) = self.0.connect_raw(stream, tls).await?; + let (mut client, connection) = self.0.connect_raw(stream, tls).await?; tracing::Span::current().record("pid", &tracing::field::display(client.get_process_id())); + client.set_socket_config(SocketConfig { + host: tokio_postgres::config::Host::Tcp(host.to_owned()), + socket_addr, + connect_timeout: None, + keepalive: None, + }); + info!( cold_start_info = ctx.cold_start_info.as_str(), "connected to compute node at {host} ({socket_addr}) sslmode={:?}",