Before submitting
Area
apps/desktop
Steps to reproduce
- Windows desktop app with the WSL backend enabled and running (
desktop.backendInstance.start {"id":"wsl:Ubuntu"} in desktop.trace.ndjson).
- In settings, disable the WSL backend. The trace logs
desktop.settings.writeSettings, desktop.wslBackend.reconcile with event tearing down WSL backend, desktop.ipc.wsl.setEnabled.
- Inside WSL:
pgrep -fa wsl-runtime. The ~/.t3/wsl-runtime/sha256-…/t3 --bootstrap-fd 0 process is still running and still listening.
- Kill that process inside WSL.
Expected behavior
Step 2 stops the WSL runtime process and unregisters the instance from the backend pool. Nothing respawns it while the setting is off.
Actual behavior
The process survives the teardown (checked 90 seconds later). When it is killed, the pool supervisor restarts it:
desktop.backendInstance.scheduleRestartFiber "backend exited unexpectedly; restart scheduled"
desktop.backendInstance.start {"id":"wsl:Ubuntu"}
This happened twice in a row (00:19:12 and 00:20:25). The setting itself persisted (desktop-settings.json no longer contains wslBackendEnabled), and a full app restart does not start the WSL backend, so only the live reconcile path is affected.
Side effect: the respawned WSL runtime shares ~/.t3/userdata with a t3 service install server in the same distro, and each one re-registers its own port with the relay on startup (last writer wins), which repeatedly broke T3 Connect for the Linux environment.
Impact
Degrades the experience (needs a full app restart to actually disable WSL; breaks remote access when combined with a WSL service).
Version or commit
Desktop 0.0.42 (Windows).
Environment
Windows 11, WSL2 Ubuntu (networkingMode=mirrored), t3 service install inside the same distro.
Logs or stack traces
00:17:14 desktop.settings.writeSettings
00:17:14 desktop.wslBackend.reconcile ["tearing down WSL backend"]
00:17:14 desktop.ipc.wsl.setEnabled
00:19:12 desktop.backendInstance.scheduleRestartFiber ["backend exited unexpectedly; restart scheduled"]
00:19:12 desktop.backendInstance.start {"id": "wsl:Ubuntu"}
00:20:25 desktop.backendInstance.scheduleRestartFiber ["backend exited unexpectedly; restart scheduled"]
00:20:26 desktop.backendInstance.start {"id": "wsl:Ubuntu"}
Workaround
Restart the desktop app after disabling the WSL backend.
Before submitting
Area
apps/desktop
Steps to reproduce
desktop.backendInstance.start {"id":"wsl:Ubuntu"}in desktop.trace.ndjson).desktop.settings.writeSettings,desktop.wslBackend.reconcilewith eventtearing down WSL backend,desktop.ipc.wsl.setEnabled.pgrep -fa wsl-runtime. The~/.t3/wsl-runtime/sha256-…/t3 --bootstrap-fd 0process is still running and still listening.Expected behavior
Step 2 stops the WSL runtime process and unregisters the instance from the backend pool. Nothing respawns it while the setting is off.
Actual behavior
The process survives the teardown (checked 90 seconds later). When it is killed, the pool supervisor restarts it:
This happened twice in a row (00:19:12 and 00:20:25). The setting itself persisted (
desktop-settings.jsonno longer containswslBackendEnabled), and a full app restart does not start the WSL backend, so only the live reconcile path is affected.Side effect: the respawned WSL runtime shares
~/.t3/userdatawith at3 service installserver in the same distro, and each one re-registers its own port with the relay on startup (last writer wins), which repeatedly broke T3 Connect for the Linux environment.Impact
Degrades the experience (needs a full app restart to actually disable WSL; breaks remote access when combined with a WSL service).
Version or commit
Desktop 0.0.42 (Windows).
Environment
Windows 11, WSL2 Ubuntu (
networkingMode=mirrored),t3 service installinside the same distro.Logs or stack traces
Workaround
Restart the desktop app after disabling the WSL backend.