Re: cygport xvfb.cygclass xvfb_run now hangs under GH scallywag
Jon Turney via Cygwin-apps <[email protected]> Fri, 2 Jan 2026 17:10:07 +0000
| Newsgroups | gmane.os.cygwin.applications |
|---|---|
| Message-ID | <[email protected]> |
On 31/12/2025 00:35, Brian Inglis via Cygwin-apps wrote: > On 2025-12-28 13:57, Brian Inglis wrote: >> On 2025-12-28 13:21, Brian Inglis wrote: >>> On 2025-12-28 11:09, Brian Inglis wrote: >>>> While testing zint under GH scallywag (10903), cygport check ctest >>>> now hangs after running xvfb_run cygdrop ... ctest and had to be >>>> cancelled. >>>> Everything worked fine for my previous zint updates up to 2025-03-01 >>>> (9484). >>>> >>>> After adding b-r xorg-server-extra, using that package's xvfb-run >>>> (instead of xvfb.cygclass xvfb_run) works, but now with two test >>>> failures, under both GH scallywag (10907) and locally. >>>> >>>> Does something need to be tweaked in xvfb_run xvfb.cygclass to have >>>> it use or work more like xorg-server-extra xvfb-run and avoid >>>> hanging but avoid issues? >>> >>> By contrast, locally, cygport check "hangs" at end *after* running >>> tests, with gam_server, bash, subshell, and tee still running, where >>> GH scallywag hangs starting ctest. Note that you'll need to unset DISPLAY, if it points to a local server you're already running, to replicate what happens in the CI job - otherwise cygport just uses the existing server... > Modified playground cygport to check for $GITHUB_WORKFLOW = scallywag > and run ctest under xvfb-run then run under xvfb_run with -xv enabled, > which loops starting an X server, running xmodmap, killing xvfb, > deleting X tmp lock and socket, incrementing xvfb_display, and repeats: > see GH scallywag zint job 10923. Well, this is odd. I don't think there's been a change in the actual server in this timeframe. cygport's xvfb_run function is a bit of a misnomer, since it actually runs Xorg server with the 'dummy' driver. I was thinking maybe some recent changes to xinit might be causing a problem, but xvfb.cygclass actually has custom implementation of that logic, to allow it to run a bash function (rather than just an executable) against the server. Huh, well, looking into it a bit more, that logic looks a bit suspect: It can loop forever if there's a problem starting the xserver, and it will probably fail if the hardware we're running on is too fast... I've released cygport 0.37.6, with a bit of a hack to better allow for that, let's see if that improves anything. (As an aside, I'm a bit curious why you moved the cmake files to /usr/lib/cmake. Unless they are arch-dependent in some way, they belong in /usr/share...)