diff --git a/Cargo.lock b/Cargo.lock index c8b69e0a7a..afc2fbbc71 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,5 +1,7 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +version = 3 + [[package]] name = "ahash" version = "0.4.7" @@ -1230,24 +1232,6 @@ dependencies = [ "tokio-postgres 0.7.1", ] -[[package]] -name = "postgres-protocol" -version = "0.6.1" -source = "git+https://github.com/zenithdb/rust-postgres.git?rev=9eb0dbfbeb6a6c1b79099b9f7ae4a8c021877858#9eb0dbfbeb6a6c1b79099b9f7ae4a8c021877858" -dependencies = [ - "base64", - "byteorder", - "bytes", - "fallible-iterator", - "hmac", - "lazy_static", - "md-5", - "memchr", - "rand", - "sha2", - "stringprep", -] - [[package]] name = "postgres-protocol" version = "0.6.1" @@ -1267,13 +1251,21 @@ dependencies = [ ] [[package]] -name = "postgres-types" -version = "0.2.1" +name = "postgres-protocol" +version = "0.6.1" source = "git+https://github.com/zenithdb/rust-postgres.git?rev=9eb0dbfbeb6a6c1b79099b9f7ae4a8c021877858#9eb0dbfbeb6a6c1b79099b9f7ae4a8c021877858" dependencies = [ + "base64", + "byteorder", "bytes", "fallible-iterator", - "postgres-protocol 0.6.1 (git+https://github.com/zenithdb/rust-postgres.git?rev=9eb0dbfbeb6a6c1b79099b9f7ae4a8c021877858)", + "hmac", + "lazy_static", + "md-5", + "memchr", + "rand", + "sha2", + "stringprep", ] [[package]] @@ -1287,6 +1279,16 @@ dependencies = [ "postgres-protocol 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "postgres-types" +version = "0.2.1" +source = "git+https://github.com/zenithdb/rust-postgres.git?rev=9eb0dbfbeb6a6c1b79099b9f7ae4a8c021877858#9eb0dbfbeb6a6c1b79099b9f7ae4a8c021877858" +dependencies = [ + "bytes", + "fallible-iterator", + "postgres-protocol 0.6.1 (git+https://github.com/zenithdb/rust-postgres.git?rev=9eb0dbfbeb6a6c1b79099b9f7ae4a8c021877858)", +] + [[package]] name = "postgres_ffi" version = "0.1.0" diff --git a/control_plane/src/compute.rs b/control_plane/src/compute.rs index fee3e4b2e3..9bcacb88e7 100644 --- a/control_plane/src/compute.rs +++ b/control_plane/src/compute.rs @@ -20,7 +20,6 @@ use crate::local_env::LocalEnv; use pageserver::{ZTenantId, ZTimelineId}; use crate::storage::PageServerNode; -use postgres_ffi::pg_constants; // // ComputeControlPlane @@ -279,20 +278,6 @@ impl PostgresNode { }, )?; - // Create pgdata subdirs structure - for dir in pg_constants::PGDATA_SUBDIRS.iter() { - let path = pgdata.as_path().join(*dir); - - fs::create_dir_all(path.clone())?; - - fs::set_permissions(path, fs::Permissions::from_mode(0o700)).with_context(|| { - format!( - "could not set permissions in data directory {}", - pgdata.display() - ) - })?; - } - let mut copyreader = client .copy_out(sql.as_str()) .with_context(|| "page server 'basebackup' command failed")?; diff --git a/pageserver/src/basebackup.rs b/pageserver/src/basebackup.rs index d3fdf4ecf3..b6cdca5f41 100644 --- a/pageserver/src/basebackup.rs +++ b/pageserver/src/basebackup.rs @@ -56,6 +56,14 @@ impl<'a> Basebackup<'a> { } pub fn send_tarball(&mut self) -> anyhow::Result<()> { + + // Create pgdata subdirs structure + for dir in pg_constants::PGDATA_SUBDIRS.iter() { + info!("send subdir {:?}", *dir); + let header = new_tar_header_dir(*dir)?; + self.ar.append(&header, &mut io::empty())?; + } + // Send empty config files. for filepath in pg_constants::PGDATA_SPECIAL_FILES.iter() { if *filepath == "pg_hba.conf" {