Skip to content

fix: stop 6.3.4 hanging on launch - #8

Merged
vibesoftwarecoder merged 1 commit into
masterfrom
fix/startup-crash
Sep 16, 2026
Merged

vibesoftwarecoder merged 1 commit into
masterfrom
fix/startup-crash

Conversation

@vibesoftwarecoder

Copy link
Copy Markdown
Owner

6.3.4 hangs on every launch. The window opens and then stays "Not Responding".

The cause is a deadlock added in #2. ComputerManager::startPolling() holds m_Lock for write and calls MultiSeatDiscovery::start(). That function polled right away, and the poll's aboutToPoll slot takes m_Lock for read on the same thread. QReadWriteLock is not recursive, so the main thread waited on itself.

start() now queues the first poll, so it runs after startPolling() releases the lock. poll() does nothing if the timer was stopped before that queued poll arrived.

Checked with a small test program built around the real multiseatdiscovery.cpp. The 6.3.4 code deadlocked within 10 seconds, and the fixed code passed. The full app still needs a CI build and a real launch before release.

🤖 Generated with Claude Code

ComputerManager::startPolling() holds m_Lock for write and calls
MultiSeatDiscovery::start(). start() called poll() directly, and poll()
emits aboutToPoll(), whose slot updateMultiSeatProbeTargets() takes m_Lock
for read on the same thread. QReadWriteLock is not recursive, so the main
thread waited on itself and the window stopped responding on every launch.

start() now queues the first poll on the event loop, so it runs after
startPolling() has released the lock. poll() returns early if stop() ran
before the queued call was delivered.

Verified: the 6.3.4 release zip hangs on launch (main thread blocked in
QReadLocker under startPolling, per cdb); 6.3.3 does not. A harness that
builds multiseatdiscovery.cpp with the same lock order deadlocks on the
6.3.4 source and passes on this one (first poll still runs within 1 s;
no poll after an immediate stop).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@vibesoftwarecoder
vibesoftwarecoder merged commit a820545 into master Sep 16, 2026
3 checks passed
@vibesoftwarecoder
vibesoftwarecoder deleted the fix/startup-crash branch September 16, 2026 13:24
@vibesoftwarecoder vibesoftwarecoder mentioned this pull request Sep 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant