Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
6.2
-
None
-
-
587e3bb0ba6def90906f1f6b8c60c8f33ec88571 (qt/qtbase/dev)
Description
As seen in a precheck, tst_QSemaphore::tryAcquireWithTimeoutStarvation ran for 900 seconds with no progress. Given how the test is implemented this shouldn't be possible. Was also able to reproduce locally. A possible indication of what the issue is is that `if (futexNeedsWake(prevValue)) {` in QSemaphore::release returns false, thus was not waking the main thread which is stuck on `semaphore.acquire();` in the test.
The issue is likely only relevant for 6.2, since the code-path is futex specific, and Windows only recently gained support for that. However, it could possibly also be an issue on Linux in earlier versions.
Attachments
For Gerrit Dashboard: QTBUG-92148 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
340800,5 | QSemaphore: fix missed wakes with futex on Windows | dev | qt/qtbase | Status: MERGED | +2 | 0 |