-
-
Notifications
You must be signed in to change notification settings - Fork 30
Open
Description
On Windows, the embedded PostgreSQL setup fails with Access is denied. (os error 5) right after the archive is downloaded and extracted successfully.
I am runing inside a Tauri App:
let app = tauri::Builder::default()
.plugin(tauri_plugin_dialog::init())
.setup(|app| {
if cfg!(debug_assertions) {
app.handle().plugin(
tauri_plugin_log::Builder::default()
.level(log::LevelFilter::Debug)
.build(),
)?;
}
app.manage(Mutex::new(EmbeddedDbState { pg: None }));
let handle = app.handle().clone();
tauri::async_runtime::spawn(async move {
let mut settings = postgresql_embedded::Settings::default();
settings.port = 2025;
settings.installation_dir = std::env::current_dir()
.unwrap()
.parent()
.unwrap()
.join("embedded_db");
let mut pg = PostgreSQL::new(settings);
match pg.setup().await {
Ok(_) => {
match pg.start().await {
Ok(_) => {
let state = handle.state::<Mutex<EmbeddedDbState>>();
let mut guard = state.lock().unwrap();
guard.pg = Some(pg);
}
Err(e) => {
log::error!("Failed to start PostgreSQL: {}", e);
}
}
}
Err(e) => {
log::error!("Failed to setup PostgreSQL: {}", e);
}
}
});
Ok(())
})
.invoke_handler(tauri::generate_handler![
launch_application,
])
.build(tauri::generate_context!())
.expect("error while building tauri application");
Logs:
[2025-08-14][08:02:35][tracing::span][INFO] setup;
[2025-08-14][08:02:35][tracing::span][INFO] install;
[2025-08-14][08:02:35][postgresql_embedded::postgresql][DEBUG] Starting installation process for version *
[2025-08-14][08:02:35][postgresql_archive::archive][DEBUG] get_version; url="https://github.com/theseus-rs/postgresql-binaries" version_req=VersionReq { comparators: [] }
[2025-08-14][08:02:35][postgresql_archive::repository::github::repository][DEBUG] get_version; self=GitHub { url: "https://github.com/theseus-rs/postgresql-binaries", releases_url: "https://api.github.com/repos/theseus-rs/postgresql-binaries/releases" } version_req=VersionReq { comparators: [] }
[2025-08-14][08:02:35][postgresql_archive::repository::github::repository][DEBUG] get_release; self=GitHub { url: "https://github.com/theseus-rs/postgresql-binaries", releases_url: "https://api.github.com/repos/theseus-rs/postgresql-binaries/releases" } version_req=VersionReq { comparators: [] }
[2025-08-14][08:02:35][postgresql_archive::repository::github::repository][DEBUG] Attempting to locate release for version requirement *
[2025-08-14][08:02:35][reqwest_tracing::reqwest_otel_span_builder][INFO] HTTP request; http.request.method=GET url.scheme=https server.address=api.github.com server.port=443 user_agent.original=postgresql_archive/0.19.0 otel.kind="client" otel.name=GET
[2025-08-14][08:02:35][reqwest::connect][DEBUG] starting new connection: https://api.github.com/
[2025-08-14][08:02:35][hyper_util::client::legacy::connect::http][DEBUG] connecting to 140.82.121.6:443
[2025-08-14][08:02:35][hyper_util::client::legacy::connect::http][DEBUG] connected to 140.82.121.6:443
[2025-08-14][08:02:39][reqwest_tracing::reqwest_otel_span_builder][INFO] HTTP request; http.response.status_code=200
[2025-08-14][08:02:39][hyper_util::client::legacy::pool][DEBUG] pooling idle connection for ("https", api.github.com)
[2025-08-14][08:02:39][reqwest_tracing::reqwest_otel_span_builder][INFO] HTTP request; http.request.method=GET url.scheme=https server.address=api.github.com server.port=443 user_agent.original=postgresql_archive/0.19.0 otel.kind="client" otel.name=GET
[2025-08-14][08:02:39][hyper_util::client::legacy::pool][DEBUG] reuse idle connection for ("https", api.github.com)
[2025-08-14][08:02:41][reqwest_tracing::reqwest_otel_span_builder][INFO] HTTP request; http.response.status_code=200
[2025-08-14][08:02:41][hyper_util::client::legacy::pool][DEBUG] pooling idle connection for ("https", api.github.com)
[2025-08-14][08:02:42][reqwest_tracing::reqwest_otel_span_builder][INFO] HTTP request; http.request.method=GET url.scheme=https server.address=api.github.com server.port=443 user_agent.original=postgresql_archive/0.19.0 otel.kind="client" otel.name=GET
[2025-08-14][08:02:42][hyper_util::client::legacy::pool][DEBUG] reuse idle connection for ("https", api.github.com)
[2025-08-14][08:02:44][reqwest_tracing::reqwest_otel_span_builder][INFO] HTTP request; http.response.status_code=200
[2025-08-14][08:02:44][hyper_util::client::legacy::pool][DEBUG] pooling idle connection for ("https", api.github.com)
[2025-08-14][08:02:44][reqwest_tracing::reqwest_otel_span_builder][INFO] HTTP request; http.request.method=GET url.scheme=https server.address=api.github.com server.port=443 user_agent.original=postgresql_archive/0.19.0 otel.kind="client" otel.name=GET
[2025-08-14][08:02:44][hyper_util::client::legacy::pool][DEBUG] reuse idle connection for ("https", api.github.com)
[2025-08-14][08:02:44][hyper_util::client::legacy::pool][DEBUG] pooling idle connection for ("https", api.github.com)
[2025-08-14][08:02:44][reqwest_tracing::reqwest_otel_span_builder][INFO] HTTP request; http.response.status_code=200
[2025-08-14][08:02:44][postgresql_archive::repository::github::repository][DEBUG] Version 17.5.0 found for version requirement *
[2025-08-14][08:02:44][postgresql_archive::archive][INFO] get_archive; url="https://github.com/theseus-rs/postgresql-binaries" version_req=VersionReq { comparators: [Comparator { op: Exact, major: 17, minor: Some(5), patch: Some(0), pre: Prerelease("") }] }
[2025-08-14][08:02:44][postgresql_archive::repository::github::repository][INFO] get_archive; self=GitHub { url: "https://github.com/theseus-rs/postgresql-binaries", releases_url: "https://api.github.com/repos/theseus-rs/postgresql-binaries/releases" } version_req=VersionReq { comparators: [Comparator { op: Exact, major: 17, minor: Some(5), patch: Some(0), pre: Prerelease("") }] }
[2025-08-14][08:02:44][postgresql_archive::repository::github::repository][DEBUG] get_release; self=GitHub { url: "https://github.com/theseus-rs/postgresql-binaries", releases_url: "https://api.github.com/repos/theseus-rs/postgresql-binaries/releases" } version_req=VersionReq { comparators: [Comparator { op: Exact, major: 17, minor: Some(5), patch: Some(0), pre: Prerelease("") }] }
[2025-08-14][08:02:44][postgresql_archive::repository::github::repository][DEBUG] Attempting to locate release for version requirement =17.5.0
[2025-08-14][08:02:44][reqwest_tracing::reqwest_otel_span_builder][INFO] HTTP request; http.request.method=GET url.scheme=https server.address=api.github.com server.port=443 user_agent.original=postgresql_archive/0.19.0 otel.kind="client" otel.name=GET
[2025-08-14][08:02:44][reqwest::connect][DEBUG] starting new connection: https://api.github.com/
[2025-08-14][08:02:44][hyper_util::client::legacy::connect::http][DEBUG] connecting to 140.82.121.6:443
[2025-08-14][08:02:44][hyper_util::client::legacy::connect::http][DEBUG] connected to 140.82.121.6:443
[2025-08-14][08:02:44][reqwest_tracing::reqwest_otel_span_builder][INFO] HTTP request; http.response.status_code=200
[2025-08-14][08:02:44][hyper_util::client::legacy::pool][DEBUG] pooling idle connection for ("https", api.github.com)
[2025-08-14][08:02:44][reqwest_tracing::reqwest_otel_span_builder][INFO] HTTP request; http.request.method=GET url.scheme=https server.address=api.github.com server.port=443 user_agent.original=postgresql_archive/0.19.0 otel.kind="client" otel.name=GET
[2025-08-14][08:02:44][hyper_util::client::legacy::pool][DEBUG] reuse idle connection for ("https", api.github.com)
[2025-08-14][08:02:44][reqwest_tracing::reqwest_otel_span_builder][INFO] HTTP request; http.response.status_code=200
[2025-08-14][08:02:45][hyper_util::client::legacy::pool][DEBUG] pooling idle connection for ("https", api.github.com)
[2025-08-14][08:02:45][reqwest_tracing::reqwest_otel_span_builder][INFO] HTTP request; http.request.method=GET url.scheme=https server.address=api.github.com server.port=443 user_agent.original=postgresql_archive/0.19.0 otel.kind="client" otel.name=GET
[2025-08-14][08:02:45][hyper_util::client::legacy::pool][DEBUG] reuse idle connection for ("https", api.github.com)
[2025-08-14][08:02:45][reqwest_tracing::reqwest_otel_span_builder][INFO] HTTP request; http.response.status_code=200
[2025-08-14][08:02:45][hyper_util::client::legacy::pool][DEBUG] pooling idle connection for ("https", api.github.com)
[2025-08-14][08:02:45][reqwest_tracing::reqwest_otel_span_builder][INFO] HTTP request; http.request.method=GET url.scheme=https server.address=api.github.com server.port=443 user_agent.original=postgresql_archive/0.19.0 otel.kind="client" otel.name=GET
[2025-08-14][08:02:45][hyper_util::client::legacy::pool][DEBUG] reuse idle connection for ("https", api.github.com)
[2025-08-14][08:02:45][hyper_util::client::legacy::pool][DEBUG] pooling idle connection for ("https", api.github.com)
[2025-08-14][08:02:45][reqwest_tracing::reqwest_otel_span_builder][INFO] HTTP request; http.response.status_code=200
[2025-08-14][08:02:45][postgresql_archive::repository::github::repository][DEBUG] Version 17.5.0 found for version requirement =17.5.0
[2025-08-14][08:02:45][postgresql_archive::repository::github::repository][DEBUG] get_asset; self=GitHub { url: "https://github.com/theseus-rs/postgresql-binaries", releases_url: "https://api.github.com/repos/theseus-rs/postgresql-binaries/releases" }
[2025-08-14][08:02:45][postgresql_archive::repository::github::repository][DEBUG] Downloading archive https://github.com/theseus-rs/postgresql-binaries/releases/download/17.5.0/postgresql-17.5.0-x86_64-pc-windows-msvc.tar.gz
[2025-08-14][08:02:45][reqwest_tracing::reqwest_otel_span_builder][INFO] HTTP request; http.request.method=GET url.scheme=https server.address=github.com server.port=443 user_agent.original=postgresql_archive/0.19.0 otel.kind="client" otel.name=GET
[2025-08-14][08:02:45][reqwest::connect][DEBUG] starting new connection: https://github.com/
[2025-08-14][08:02:45][hyper_util::client::legacy::connect::http][DEBUG] connecting to 140.82.121.3:443
[2025-08-14][08:02:45][hyper_util::client::legacy::connect::http][DEBUG] connected to 140.82.121.3:443
[2025-08-14][08:02:45][hyper_util::client::legacy::pool][DEBUG] pooling idle connection for ("https", github.com)
[2025-08-14][08:02:45][reqwest::connect][DEBUG] starting new connection: https://release-assets.githubusercontent.com/
[2025-08-14][08:02:45][hyper_util::client::legacy::connect::http][DEBUG] connecting to 185.199.110.133:443
[2025-08-14][08:02:45][hyper_util::client::legacy::connect::http][DEBUG] connected to 185.199.110.133:443
[2025-08-14][08:02:45][reqwest_tracing::reqwest_otel_span_builder][INFO] HTTP request; http.response.status_code=200
[2025-08-14][08:02:46][hyper_util::client::legacy::pool][DEBUG] pooling idle connection for ("https", release-assets.githubusercontent.com)
[2025-08-14][08:02:46][postgresql_archive::repository::github::repository][DEBUG] Archive https://github.com/theseus-rs/postgresql-binaries/releases/download/17.5.0/postgresql-17.5.0-x86_64-pc-windows-msvc.tar.gz downloaded: 49642420
[2025-08-14][08:02:48][postgresql_archive::repository::github::repository][DEBUG] Downloading archive hash https://github.com/theseus-rs/postgresql-binaries/releases/download/17.5.0/postgresql-17.5.0-x86_64-pc-windows-msvc.tar.gz.sha256
[2025-08-14][08:02:48][reqwest_tracing::reqwest_otel_span_builder][INFO] HTTP request; http.request.method=GET url.scheme=https server.address=github.com server.port=443 user_agent.original=postgresql_archive/0.19.0 otel.kind="client" otel.name=GET
[2025-08-14][08:02:48][hyper_util::client::legacy::pool][DEBUG] reuse idle connection for ("https", github.com)
[2025-08-14][08:02:48][hyper_util::client::legacy::pool][DEBUG] pooling idle connection for ("https", github.com)
[2025-08-14][08:02:48][hyper_util::client::legacy::pool][DEBUG] reuse idle connection for ("https", release-assets.githubusercontent.com)
[2025-08-14][08:02:48][hyper_util::client::legacy::pool][DEBUG] pooling idle connection for ("https", release-assets.githubusercontent.com)
[2025-08-14][08:02:48][reqwest_tracing::reqwest_otel_span_builder][INFO] HTTP request; http.response.status_code=200
[2025-08-14][08:02:48][postgresql_archive::repository::github::repository][DEBUG] Archive hash https://github.com/theseus-rs/postgresql-binaries/releases/download/17.5.0/postgresql-17.5.0-x86_64-pc-windows-msvc.tar.gz.sha256 downloaded: 184
[2025-08-14][08:02:48][postgresql_archive::archive][INFO] extract; url="https://github.com/theseus-rs/postgresql-binaries" out_dir="C:\\Users\\Arthur\\Documents\\Git\\VEI\\Src\\vei-app\\embedded_db\\17.5.0"
[2025-08-14][08:02:48][postgresql_archive::configuration::theseus::extractor][INFO] extract; extract_directories=ExtractDirectories { mappings: [(Regex(".*"), "C:\\Users\\Arthur\\Documents\\Git\\VEI\\Src\\vei-app\\embedded_db\\17.5.0")] }
[2025-08-14][08:02:48][postgresql_archive::configuration::theseus::extractor][DEBUG] acquire_lock; out_dir="C:\\Users\\Arthur\\Documents\\Git\\VEI\\Src\\vei-app\\embedded_db"
[2025-08-14][08:02:48][postgresql_archive::configuration::theseus::extractor][DEBUG] Attempting to acquire lock: C:\Users\Arthur\Documents\Git\VEI\Src\vei-app\embedded_db\postgresql-archive.lock
[2025-08-14][08:02:48][postgresql_archive::configuration::theseus::extractor][DEBUG] Lock acquired: C:\Users\Arthur\Documents\Git\VEI\Src\vei-app\embedded_db\postgresql-archive.lock
[2025-08-14][08:02:48][postgresql_archive::configuration::theseus::extractor][DEBUG] Extracting archive to C:\Users\Arthur\Documents\Git\VEI\Src\vei-app\embedded_db\.tmpSe9HKz
[2025-08-14][08:02:48][postgresql_archive::extractor::tar_gz_extractor][INFO] extract; extract_directories=ExtractDirectories { mappings: [(Regex(".*"), "C:\\Users\\Arthur\\Documents\\Git\\VEI\\Src\\vei-app\\embedded_db\\.tmpSe9HKz")] }
[2025-08-14][08:02:53][postgresql_archive::extractor::tar_gz_extractor][DEBUG] Extracted 2,901 files totalling 152574230
[2025-08-14][08:02:53][postgresql_archive::configuration::theseus::extractor][DEBUG] Renaming C:\Users\Arthur\Documents\Git\VEI\Src\vei-app\embedded_db\.tmpSe9HKz to C:\Users\Arthur\Documents\Git\VEI\Src\vei-app\embedded_db\17.5.0
[2025-08-14][08:02:53][vei_app_lib][ERROR] Failed to setup PostgreSQL: Accès refusé. (os error 5)
Here is the content of the embedded_db
folder:

Environment
Windows 11 24H2
postgresql_embedded: 0.19.0
PostgreSQL binary: 17.5.0
Metadata
Metadata
Assignees
Labels
No labels