port: the display-restart recipe omitted the LOCK file
check-all's guard printed 'rm -f /tmp/.X11-unix/X<n>' and nothing else. Removing only the socket leaves /tmp/.X<n>-lock behind; Xvfb then exits 1 immediately and the next command still reports no display, which reads as the restart having failed for a deeper reason rather than as an incomplete recipe. Hit three times across this project, each time following the printed recipe. The fix was visible in Xvfb's own stderr the whole time and nobody had read it -- the guard was written to save exactly that step, so an incomplete guard is worse than none here.
This commit is contained in:
@@ -54,7 +54,13 @@ step() { # name, expectation, command...
|
||||
if ! DISPLAY="$DISPLAY" timeout 10 xdpyinfo >/dev/null 2>&1; then
|
||||
echo "🔴 no X display on $DISPLAY -- every Godot step below would fail for that one reason."
|
||||
echo " Xvfb does not survive a container restart and leaves its socket behind. Start it with:"
|
||||
echo " rm -f /tmp/.X11-unix/X\${DISPLAY#:} ; Xvfb $DISPLAY -screen 0 1280x720x24 -nolisten tcp &"
|
||||
echo " rm -f /tmp/.X11-unix/X\${DISPLAY#:} /tmp/.X\${DISPLAY#:}-lock"
|
||||
echo " Xvfb $DISPLAY -screen 0 1280x720x24 -nolisten tcp &"
|
||||
echo " 🔴 THE LOCK FILE IS NOT OPTIONAL and this recipe omitted it until"
|
||||
echo " 2026-09-03. Removing only the socket leaves /tmp/.X<n>-lock behind,"
|
||||
echo " Xvfb exits 1 immediately, and the next command still reports no"
|
||||
echo " display -- which reads as the restart having failed for some deeper"
|
||||
echo " reason. Cost three occurrences before anyone read Xvfb's own stderr."
|
||||
exit 3
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user