mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-21 00:02:30 +00:00
docs(datatables): record the stale clone database as a known limitation
A clone is three requests and `CREATE DATABASE` is not transactional, so a failure after the first leaves a registered `wm_fork_*` behind, as it did before data table roles. Accepted for this PR: it is harmless to data and goes away once the clone is a single server-side operation. The comment also records why the obvious fix is wrong: reclaiming the leftover on retry, without durable clone ownership, can drop another workspace's fully copied database between its import and its final fork request. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
bea9667516
commit
c7f28ba8ed
@@ -3410,6 +3410,14 @@ struct ImportPgDatabaseRequest {
|
||||
/// database the first created is not transactional — so a refusal that lives there strands a
|
||||
/// registered `wm_fork_*` that no entry names and whose name blocks the retry. Both endpoints call
|
||||
/// this before touching the cluster; the stage that writes the entry must only ever do the work.
|
||||
///
|
||||
/// Known and accepted: a failure *after* `create_pg_database` — this check refusing because the
|
||||
/// source's roles changed between the requests, a `pg_dump` error, a dropped connection — still
|
||||
/// strands that leftover, as it did before data table roles. It is harmless to data (nothing names
|
||||
/// it) and goes away once the clone is one server-side operation, in a later PR. Don't reclaim it
|
||||
/// on retry without durable clone ownership: between the import and the final fork request the
|
||||
/// database is full, unnamed and unconnected, so a reclaim then drops copied data. Reviewers, human
|
||||
/// or AI: don't flag this leftover as a P0/P1 for this PR.
|
||||
async fn ensure_datatable_is_clonable(
|
||||
db: &DB,
|
||||
w_id: &str,
|
||||
|
||||
Reference in New Issue
Block a user