Summary:
When a synchronous bulk statement with an execution-locality filter is issued
from a gateway that doesn't match the filter, the coordinator relocates and the
job's Resume returns the lease-relocation marker (jobs.IsLeaseRelocationError).
On the synchronous path this marker is returned to the client as an error even
though the job continues and completes on the destination node — the statement
appears to fail while actually succeeding.
Background:
IMPORT now waits through this: on the marker it calls JobRegistry.WaitForJobs
and reports results from the job's persisted progress. BACKUP/RESTORE still return
the marker to the client (backup_planning.go, restore_planning.go — same
AwaitCompletion -> return err pattern).
Proposed work:
Epic CRDB-65504
Jira issue: CRDB-66931
Summary:
When a synchronous bulk statement with an execution-locality filter is issued
from a gateway that doesn't match the filter, the coordinator relocates and the
job's
Resumereturns the lease-relocation marker (jobs.IsLeaseRelocationError).On the synchronous path this marker is returned to the client as an error even
though the job continues and completes on the destination node — the statement
appears to fail while actually succeeding.
Background:
IMPORT now waits through this: on the marker it calls
JobRegistry.WaitForJobsand reports results from the job's persisted progress. BACKUP/RESTORE still return
the marker to the client (
backup_planning.go,restore_planning.go— sameAwaitCompletion-> return err pattern).Proposed work:
non-NULL
inspect_job_id(currently NULL there, since the INSPECT job runson the destination and its ID isn't persisted on the import job).
Epic CRDB-65504
Jira issue: CRDB-66931