fix(ci): give each xvfb-run its own display #230

Merged
pat-s merged 1 commit from fix/xvfb-auto-servernum into main 2026-10-11 12:12:28 +00:00
Owner

Every process-cran-updates-ubuntu-2204-arm64 cron run since pipeline 13744 has failed with xvfb-run: error: Xvfb failed to start (e.g. 13829).

Cause

The newer-R loop added in #216 runs two xvfb-run calls back to back: the R-minor-sensitive process_cran_updates pass, then local/build-newer-r.R.
Without -a, xvfb-run always uses display :99, and on exit it kills its Xvfb without waiting for it.
The second call can therefore start while the old server still holds the :99 lock, so the new Xvfb refuses to start.
Only ubuntu-2204-arm64 hits this because it is the only image with a second R minor installed, so the loop body only runs there.

Change

  • Default XVFB_ARGS to -a (--auto-servernum) in process-updates.yaml, build-all-versions.yaml and weekly-rebuild-missing.yaml, so each call picks a free display.
  • The RHEL 10 xwfb-run branch still overrides XVFB_ARGS with -c weston, so it is unchanged.

Verification

crow lint .crow/ passes.
A local repro was not possible (docker run hangs on the dev host), so the next ubuntu-2204-arm64 cron run is the real check.

Every `process-cran-updates-ubuntu-2204-arm64` cron run since pipeline 13744 has failed with `xvfb-run: error: Xvfb failed to start` (e.g. 13829). ## Cause The newer-R loop added in #216 runs two `xvfb-run` calls back to back: the R-minor-sensitive `process_cran_updates` pass, then `local/build-newer-r.R`. Without `-a`, `xvfb-run` always uses display `:99`, and on exit it kills its Xvfb without waiting for it. The second call can therefore start while the old server still holds the `:99` lock, so the new Xvfb refuses to start. Only ubuntu-2204-arm64 hits this because it is the only image with a second R minor installed, so the loop body only runs there. ## Change - Default `XVFB_ARGS` to `-a` (`--auto-servernum`) in `process-updates.yaml`, `build-all-versions.yaml` and `weekly-rebuild-missing.yaml`, so each call picks a free display. - The RHEL 10 `xwfb-run` branch still overrides `XVFB_ARGS` with `-c weston`, so it is unchanged. ## Verification `crow lint .crow/` passes. A local repro was not possible (`docker run` hangs on the dev host), so the next ubuntu-2204-arm64 cron run is the real check.
Pass -a (--auto-servernum) to xvfb-run so back-to-back calls do not
collide on display :99 while the previous Xvfb is still shutting down.
The newer-R loop added in #216 runs two xvfb-run calls in a row, which
has failed every process-cran-updates-ubuntu-2204-arm64 run since
pipeline 13744 with 'Xvfb failed to start'.
pat-s merged commit d992a2b636 into main 2026-10-11 12:12:28 +00:00
pat-s deleted branch fix/xvfb-auto-servernum 2026-10-11 12:12:29 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
devxy/build-cran-binaries!230
No description provided.