Skip to content

Commit 80d20eb

Browse files
rustyconoverclaude
andcommitted
fix(ci): start http worker in $STAGE so COPY paths resolve
On the http lane the example worker is a separate long-lived process started from the repo root, while the unittest runs from $STAGE. Tests issue COPY ... TO '__TEST_DIR__/...', which DuckDB expands to the RELATIVE path duckdb_unittest_tempdir/<pid>/...; the worker resolved it against its own cwd (the repo root) and failed with "no such file or directory" on every copy_to/copy_from case. Over the launcher transport the worker inherits DuckDB's cwd so it never showed. Boot the http worker with cwd=$STAGE so both sides resolve the same relative path. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent df5bdc9 commit 80d20eb

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

ci/run-integration.sh

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,12 @@ trap cleanup EXIT
8787
boot_http_worker() {
8888
local exe="$1" log pid port=""
8989
log="$(mktemp)"
90-
VGI_WORKER_BIN="$VGI_WORKER_BIN" "$exe" --http --port 0 >"$log" 2>&1 &
90+
# Start the worker with its cwd set to $STAGE — the directory the unittest runs
91+
# from — so DuckDB's per-test temp dir (__TEST_DIR__ → duckdb_unittest_tempdir/
92+
# <pid>) and the worker resolve the SAME relative path. Without this the http
93+
# worker (a separate process started from the repo root) cannot create the
94+
# COPY ... TO destination the test hands it as a relative path.
95+
( cd "$STAGE" && VGI_WORKER_BIN="$VGI_WORKER_BIN" exec "$exe" --http --port 0 ) >"$log" 2>&1 &
9196
pid=$!
9297
BG_PIDS+=("$pid")
9398
for _ in $(seq 1 60); do

0 commit comments

Comments
 (0)