From 411bce7e13aabfa53db80d55261ea4511f6d1ae9 Mon Sep 17 00:00:00 2001 From: wendrul <53628737+wendrul@users.noreply.github.com> Date: Wed, 16 Oct 2024 14:36:12 +0200 Subject: [PATCH] fix: Add indexer backup lock to fit the deployment model (#4531) * Pass db to init_index * Prepare sqlx * Update ee repo ref --- ...927c6df0653a02b87bcea939066e39ebcf24d.json | 15 +++++++++++++ ...9861756b3ad367a4a500728332a7cb91560a4.json | 15 +++++++++++++ ...7f5033b9c9afc344d9c3e385ba20a3ad2197a.json | 2 +- ...165895ca61ef042947c7314f66514d7f29edc.json | 22 +++++++++++++++++++ backend/Cargo.lock | 1 + backend/ee-repo-ref.txt | 2 +- backend/src/main.rs | 2 +- backend/windmill-indexer/Cargo.toml | 1 + 8 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 backend/.sqlx/query-14abf759dae7ba5c38017ba6001927c6df0653a02b87bcea939066e39ebcf24d.json create mode 100644 backend/.sqlx/query-57e270e032e8c04dda7b5c1ca949861756b3ad367a4a500728332a7cb91560a4.json create mode 100644 backend/.sqlx/query-cecf1addc4aecb087a14786b2a9165895ca61ef042947c7314f66514d7f29edc.json diff --git a/backend/.sqlx/query-14abf759dae7ba5c38017ba6001927c6df0653a02b87bcea939066e39ebcf24d.json b/backend/.sqlx/query-14abf759dae7ba5c38017ba6001927c6df0653a02b87bcea939066e39ebcf24d.json new file mode 100644 index 0000000000..29aaf47e88 --- /dev/null +++ b/backend/.sqlx/query-14abf759dae7ba5c38017ba6001927c6df0653a02b87bcea939066e39ebcf24d.json @@ -0,0 +1,15 @@ +{ + "db_name": "PostgreSQL", + "query": "INSERT INTO concurrency_locks (id, last_locked_at, owner)\n VALUES ($1, now(), $2)\n ON CONFLICT (id)\n DO UPDATE SET\n last_locked_at = now(),\n owner = $2", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Varchar", + "Varchar" + ] + }, + "nullable": [] + }, + "hash": "14abf759dae7ba5c38017ba6001927c6df0653a02b87bcea939066e39ebcf24d" +} diff --git a/backend/.sqlx/query-57e270e032e8c04dda7b5c1ca949861756b3ad367a4a500728332a7cb91560a4.json b/backend/.sqlx/query-57e270e032e8c04dda7b5c1ca949861756b3ad367a4a500728332a7cb91560a4.json new file mode 100644 index 0000000000..ccf6b0ad8f --- /dev/null +++ b/backend/.sqlx/query-57e270e032e8c04dda7b5c1ca949861756b3ad367a4a500728332a7cb91560a4.json @@ -0,0 +1,15 @@ +{ + "db_name": "PostgreSQL", + "query": "UPDATE concurrency_locks SET\n last_locked_at = now()\n WHERE id = $1 AND owner = $2", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Text", + "Text" + ] + }, + "nullable": [] + }, + "hash": "57e270e032e8c04dda7b5c1ca949861756b3ad367a4a500728332a7cb91560a4" +} diff --git a/backend/.sqlx/query-661f472ff3860983322162420457f5033b9c9afc344d9c3e385ba20a3ad2197a.json b/backend/.sqlx/query-661f472ff3860983322162420457f5033b9c9afc344d9c3e385ba20a3ad2197a.json index 75b8108281..1fa370e682 100644 --- a/backend/.sqlx/query-661f472ff3860983322162420457f5033b9c9afc344d9c3e385ba20a3ad2197a.json +++ b/backend/.sqlx/query-661f472ff3860983322162420457f5033b9c9afc344d9c3e385ba20a3ad2197a.json @@ -5,7 +5,7 @@ "columns": [ { "ordinal": 0, - "name": "?column?", + "name": "bool", "type_info": "Bool" } ], diff --git a/backend/.sqlx/query-cecf1addc4aecb087a14786b2a9165895ca61ef042947c7314f66514d7f29edc.json b/backend/.sqlx/query-cecf1addc4aecb087a14786b2a9165895ca61ef042947c7314f66514d7f29edc.json new file mode 100644 index 0000000000..361f5ebd78 --- /dev/null +++ b/backend/.sqlx/query-cecf1addc4aecb087a14786b2a9165895ca61ef042947c7314f66514d7f29edc.json @@ -0,0 +1,22 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT last_locked_at\n FROM concurrency_locks\n WHERE id = $1\n FOR UPDATE", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "last_locked_at", + "type_info": "Timestamp" + } + ], + "parameters": { + "Left": [ + "Text" + ] + }, + "nullable": [ + false + ] + }, + "hash": "cecf1addc4aecb087a14786b2a9165895ca61ef042947c7314f66514d7f29edc" +} diff --git a/backend/Cargo.lock b/backend/Cargo.lock index cd0623e0b4..9e6c78a9eb 100644 --- a/backend/Cargo.lock +++ b/backend/Cargo.lock @@ -10580,6 +10580,7 @@ dependencies = [ "bytes", "chrono", "futures", + "lazy_static", "object_store", "serde", "serde_json", diff --git a/backend/ee-repo-ref.txt b/backend/ee-repo-ref.txt index b5c09c8e5e..e33bb79ab4 100644 --- a/backend/ee-repo-ref.txt +++ b/backend/ee-repo-ref.txt @@ -1 +1 @@ -eb79a4e23a2d133a3a964065b354f569e98f1224 +f120cf90c1795f8254418c227c74b043c8b07185 diff --git a/backend/src/main.rs b/backend/src/main.rs index cca4f6f9a4..84deb4e6b5 100644 --- a/backend/src/main.rs +++ b/backend/src/main.rs @@ -476,7 +476,7 @@ Windmill Community Edition {GIT_VERSION} #[cfg(feature = "tantivy")] let (index_reader, index_writer) = if should_index_jobs { - let (r, w) = windmill_indexer::indexer_ee::init_index().await?; + let (r, w) = windmill_indexer::indexer_ee::init_index(&db).await?; (Some(r), Some(w)) } else { (None, None) diff --git a/backend/windmill-indexer/Cargo.toml b/backend/windmill-indexer/Cargo.toml index fa88503511..b345e02917 100644 --- a/backend/windmill-indexer/Cargo.toml +++ b/backend/windmill-indexer/Cargo.toml @@ -29,3 +29,4 @@ tempfile.workspace = true bytes.workspace = true object_store = { workspace = true, optional = true} tokio-tar.workspace = true +lazy_static.workspace = true