From 0bb63a405186fb140bc26341f6eae86241abbad1 Mon Sep 17 00:00:00 2001 From: Matthias Osswald Date: Thu, 20 Aug 2026 10:01:22 +0200 Subject: [PATCH] test(server): Force pure-JS polling watcher Should fix the currently flaky CI tests for the server package on Windows, which crash with an access violation (0xC0000005) in @parcel/watcher during re-init test teardown. --- packages/server/test/lib/server/reinitialize.js | 1 + packages/server/test/lib/server/reinitializeConcurrency.js | 1 + .../server/test/lib/server/reinitializeMissingDependency.js | 1 + packages/server/test/utils/forcePollingWatcher.js | 6 ++++++ 4 files changed, 9 insertions(+) create mode 100644 packages/server/test/utils/forcePollingWatcher.js diff --git a/packages/server/test/lib/server/reinitialize.js b/packages/server/test/lib/server/reinitialize.js index e4ad3e0e1ce..b59c9a5006b 100644 --- a/packages/server/test/lib/server/reinitialize.js +++ b/packages/server/test/lib/server/reinitialize.js @@ -1,3 +1,4 @@ +import "../../utils/forcePollingWatcher.js"; import test from "ava"; import supertest from "supertest"; import fs from "node:fs/promises"; diff --git a/packages/server/test/lib/server/reinitializeConcurrency.js b/packages/server/test/lib/server/reinitializeConcurrency.js index a2c563f3090..b743e69c635 100644 --- a/packages/server/test/lib/server/reinitializeConcurrency.js +++ b/packages/server/test/lib/server/reinitializeConcurrency.js @@ -1,3 +1,4 @@ +import "../../utils/forcePollingWatcher.js"; import test from "ava"; import supertest from "supertest"; import fs from "node:fs/promises"; diff --git a/packages/server/test/lib/server/reinitializeMissingDependency.js b/packages/server/test/lib/server/reinitializeMissingDependency.js index 03f8a795ec0..bc5d949feb0 100644 --- a/packages/server/test/lib/server/reinitializeMissingDependency.js +++ b/packages/server/test/lib/server/reinitializeMissingDependency.js @@ -1,3 +1,4 @@ +import "../../utils/forcePollingWatcher.js"; import test from "ava"; import supertest from "supertest"; import fs from "node:fs/promises"; diff --git a/packages/server/test/utils/forcePollingWatcher.js b/packages/server/test/utils/forcePollingWatcher.js new file mode 100644 index 00000000000..aa33e4520d1 --- /dev/null +++ b/packages/server/test/utils/forcePollingWatcher.js @@ -0,0 +1,6 @@ +// Forces the polling watcher for the importing test file. Re-init tests subscribe and unsubscribe +// many overlapping native @parcel/watcher handles during teardown, hitting a native data race that +// crashes the worker with an access violation (0xC0000005 on Windows) on exit; see +// parcel-bundler/watcher#259. Polling avoids the native watcher. +// Scoped per-file so other server tests still cover the native watcher. +process.env.UI5_WATCH_MODE = "polling";