You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
docs harness: 'verify-docs reports pass/fail counts' stalls on CI #4450
Other runs: it passes in ~5–11 s on other runs and locally (macOS). In the failing run, the same wheels operations are fast in neighbouring tests: resetFixture's wheels new takes 2.7 s, and the mini-tutorial with a dev server takes 11.9 s.
The test doesn't print the child's output, so the log doesn't say which wheels command stalls. In the child, it's either the warm-up wheels system paths, the {test:cli} / {test:compile} blocks, or the tutorial step's wheels new.
Since #4444, the harness step is blocking, so this fails "Verify docs" on PRs.
Next:
The test prints the child's stdout/stderr when it fails, so CI names the stuck command.
On CI it's skipped (not failed) while this is open.
Cause:wheels JVMs starting at the same moment in one CLI home race in Lucee's OSGi bundle cache: BundleException: Bundle symbolic name and version are not unique, then a null script engine. Lucee's loader runs with felix.cache.locking=false and installs its required bundles on every start, so simultaneous starts collide.
Not fixed by:-Dfelix.cache.locking=true (3 of 12 runs still failed), or copying an already-warm lucee-server/ into the home (3 of 8 failed).
Beyond the harness: this isn't specific to the harness. Users running several wheels commands at once against one CLI home can hit it too. An upstream report for the Lucee/LuCLI side is drafted.
Activity
fix(docs): run the verify-docs counts test serially and show its outp…
bpamiri commentedon Oct 6, 2026
Root cause and fix (PR #4452):
wheelsJVMs starting at the same moment in one CLI home race in Lucee's OSGi bundle cache:BundleException: Bundle symbolic name and version are not unique, then a null script engine. Lucee's loader runs withfelix.cache.locking=falseand installs its required bundles on every start, so simultaneous starts collide.-Dfelix.cache.locking=true(3 of 12 runs still failed), or copying an already-warmlucee-server/into the home (3 of 8 failed).wheelsstarts in the docs harness by 1 s and re-enables the test without a skip.wheelscommands at once against one CLI home can hit it too. An upstream report for the Lucee/LuCLI side is drafted.