-
Type:
Bug
-
Status: Closed (View Workflow)
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 10.5.1
-
Fix Version/s: 10.5.2
-
Component/s: Storage Engine - InnoDB
-
Labels:None
A task that is executed,could be counted as waiting (after wait_begin()
before wait_end()) or as long-running (callback runs for a long time).
If task is both marked waiting and long-running, then calculation of
current concurrency (# of executing tasks - long tasks - waiting tasks)
would be wrong, as single task is counted twice.
the number above could go negative, with unsigned arithmetic it will become a huge.
As a result, maybe_wake_or_create_thread() would neither wake nor create
a thread, when it should. Which may result in a deadlock.