[PR #418] [MERGED] Fix Wolf UI Wayland startup race (runtime-dir mount + socket wait) #451

Closed
opened 2026-10-15 13:00:40 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/games-on-whales/wolf/pull/418
Author: @JBailes
Created: 6/1/2026
Status: ✅ Merged
Merged: 6/7/2026
Merged by: @ABeltramo

Base: stable ← Head: fix/wolf-ui-wayland-startup-race


📝 Commits (10+)

  • a05c54d Fix Wolf UI startup in nested AMD setups
  • 7e664d2 Fix CI for fork-based pull requests
  • ca850d3 Fix AMD DMA-BUF negotiation for Wayland producer
  • 3695411 Fix fork clang-format CI and DMA-BUF build
  • 1dbef78 Fix clang-format diff in session helpers
  • 6460443 Fix fork test CI and Wayland wait in tests
  • d1ae9ba Address review on Wayland socket isolation
  • b3a32ba Fix API tests to use runtime dir socket
  • 0a040d3 Make Wayland socket wait timeout configurable
  • a529c2d Merge remote-tracking branch 'origin/stable' into pr-397

📊 Changes

15 files changed (+151 additions, -39 deletions)

View changed files

📝 .github/workflows/build-docs.yml (+1 -2)
📝 .github/workflows/linux-build-test.yml (+2 -2)
📝 cmake/BoostLoader.cmake (+2 -1)
📝 docker/wolf.Dockerfile (+2 -1)
📝 docs/modules/user/pages/configuration.adoc (+4 -0)
📝 src/core/src/platforms/all/docker/docker/docker.cpp (+4 -3)
📝 src/core/src/platforms/all/docker/docker/json_formatters.hpp (+1 -1)
📝 src/core/src/platforms/all/helpers/CMakeLists.txt (+0 -8)
📝 src/moonlight-protocol/crypto/src/sign.hpp (+1 -0)
📝 src/moonlight-server/sessions/common.hpp (+68 -0)
📝 src/moonlight-server/sessions/lobbies.cpp (+8 -0)
📝 src/moonlight-server/sessions/moonlight.cpp (+10 -1)
📝 tests/CMakeLists.txt (+3 -1)
📝 tests/main.cpp (+1 -1)
📝 tests/testWolfAPI.cpp (+44 -18)

📄 Description

Summary

Split out of #397 — this is the mergeable half. The AMD DMA-BUF caps negotiation is moved to a separate PR per review discussion.

  • mount the full XDG runtime dir into runner containers instead of bind-mounting individual Wayland/Pulse sockets
  • wait for the compositor socket to exist before starting stream runners (with a configurable timeout)
  • skip fork-PR auto-push behavior in the clang-format workflow so CI validates formatting without failing on detached HEAD
  • Boost build fixes (simplified Boost loading in CMake + libboost-json-dev, Boost 1.91 json::object initializer)

Why

Wolf UI startup on Proxmox LXC could start the runner before the compositor socket existed, causing the app container to fail with Can't connect to a Wayland display. Mounting the full runtime dir and waiting for the Wayland socket removes that startup race.

Validation

  • reproduced the failure against Wolf UI on Proxmox LXC + RX 7900 XTX
  • verified the runtime-dir/socket changes address the Wayland display startup failure
  • ran git diff --check

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/games-on-whales/wolf/pull/418 **Author:** [@JBailes](https://github.com/JBailes) **Created:** 6/1/2026 **Status:** ✅ Merged **Merged:** 6/7/2026 **Merged by:** [@ABeltramo](https://github.com/ABeltramo) **Base:** `stable` ← **Head:** `fix/wolf-ui-wayland-startup-race` --- ### 📝 Commits (10+) - [`a05c54d`](https://github.com/games-on-whales/wolf/commit/a05c54d3ac9195ac4b2689573cc07653589d6014) Fix Wolf UI startup in nested AMD setups - [`7e664d2`](https://github.com/games-on-whales/wolf/commit/7e664d2b6b0c01a0f2a9e8f09a3d606cc45e6059) Fix CI for fork-based pull requests - [`ca850d3`](https://github.com/games-on-whales/wolf/commit/ca850d3575dfedaeda4e02bf612d2df13111ac15) Fix AMD DMA-BUF negotiation for Wayland producer - [`3695411`](https://github.com/games-on-whales/wolf/commit/3695411be032beda9672495e98922ac7c7fe6091) Fix fork clang-format CI and DMA-BUF build - [`1dbef78`](https://github.com/games-on-whales/wolf/commit/1dbef781bfca93b1e7b7df9b09abc6f9a2b67bf2) Fix clang-format diff in session helpers - [`6460443`](https://github.com/games-on-whales/wolf/commit/6460443129cccf331264d94df7f1176c83ecc18f) Fix fork test CI and Wayland wait in tests - [`d1ae9ba`](https://github.com/games-on-whales/wolf/commit/d1ae9bac46cb980baa109470ef73c859479dfc78) Address review on Wayland socket isolation - [`b3a32ba`](https://github.com/games-on-whales/wolf/commit/b3a32ba7ea5fefde1d92b8f172299fd9819204cf) Fix API tests to use runtime dir socket - [`0a040d3`](https://github.com/games-on-whales/wolf/commit/0a040d31ca36b6ceb00bb8bce0dbd9625f58c02b) Make Wayland socket wait timeout configurable - [`a529c2d`](https://github.com/games-on-whales/wolf/commit/a529c2d767df46fb487e7d8459c67bb3255ccc86) Merge remote-tracking branch 'origin/stable' into pr-397 ### 📊 Changes **15 files changed** (+151 additions, -39 deletions) <details> <summary>View changed files</summary> 📝 `.github/workflows/build-docs.yml` (+1 -2) 📝 `.github/workflows/linux-build-test.yml` (+2 -2) 📝 `cmake/BoostLoader.cmake` (+2 -1) 📝 `docker/wolf.Dockerfile` (+2 -1) 📝 `docs/modules/user/pages/configuration.adoc` (+4 -0) 📝 `src/core/src/platforms/all/docker/docker/docker.cpp` (+4 -3) 📝 `src/core/src/platforms/all/docker/docker/json_formatters.hpp` (+1 -1) 📝 `src/core/src/platforms/all/helpers/CMakeLists.txt` (+0 -8) 📝 `src/moonlight-protocol/crypto/src/sign.hpp` (+1 -0) 📝 `src/moonlight-server/sessions/common.hpp` (+68 -0) 📝 `src/moonlight-server/sessions/lobbies.cpp` (+8 -0) 📝 `src/moonlight-server/sessions/moonlight.cpp` (+10 -1) 📝 `tests/CMakeLists.txt` (+3 -1) 📝 `tests/main.cpp` (+1 -1) 📝 `tests/testWolfAPI.cpp` (+44 -18) </details> ### 📄 Description ## Summary Split out of #397 — this is the mergeable half. The AMD DMA-BUF caps negotiation is moved to a separate PR per review discussion. - mount the full XDG runtime dir into runner containers instead of bind-mounting individual Wayland/Pulse sockets - wait for the compositor socket to exist before starting stream runners (with a configurable timeout) - skip fork-PR auto-push behavior in the `clang-format` workflow so CI validates formatting without failing on detached HEAD - Boost build fixes (simplified Boost loading in CMake + `libboost-json-dev`, Boost 1.91 `json::object` initializer) ## Why Wolf UI startup on Proxmox LXC could start the runner before the compositor socket existed, causing the app container to fail with `Can't connect to a Wayland display`. Mounting the full runtime dir and waiting for the Wayland socket removes that startup race. ## Validation - reproduced the failure against Wolf UI on Proxmox LXC + RX 7900 XTX - verified the runtime-dir/socket changes address the Wayland display startup failure - ran `git diff --check` --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-15 13:00:40 +00:00
Sign in to join this conversation.
No milestone
No project
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
games-on-whales/wolf#451
No description provided.