[Bug 37104] New: Infinite revert loop
wine-bugs at winehq.org
wine-bugs at winehq.org
Wed Aug 13 18:31:24 CDT 2014
https://bugs.winehq.org/show_bug.cgi?id=37104
Bug ID: 37104
Summary: Infinite revert loop
Product: Wine-Testbot
Version: unspecified
Hardware: x86
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: unknown
Assignee: wine-bugs at winehq.org
Reporter: fgouget at codeweavers.com
The current task scheduling algorithm can enter into an infinite revert loop
while trying to prepare VMs for the next tasks. Assume the following settings:
$MaxRevertingVMs = 2;
$MaxRevertsWhileRunningVMs = 0;
$MaxActiveVMs = 2;
Then the following sequence can play out:
| Steps
VM | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
----+-----+-----+-----+-----+-----+-----+-----+-----
vm1 | rev | idl | off | off | rev | rev | rev | ...
vm2 | rev | rev | rev | idl | off | off | rev | ...
vm3 | off | off | rev | rev | rev | idl | off | ...
The issue happens in steps 2, 4 and 6.
The scheduler can shut down idle VMs to replace them with VMs that are more
appropriate for the upcoming tasks. This is what happens in these steps: it
decides the idle VM it just prepared is not what it wants after all, and thus
shuts it down and prepares another one.
The problem is it keeps changing its mind over and over and can never actually
start a task because there is always a reverting VM and
$MaxRevertsWhileRunningVMs = 0.
Another prerequisite for this scenario to play out is probably to have multiple
tasks have the exact same priority, so that their order is undefined. But
regardless, the scheduler should probably not be shutting down an idle VM that
has an actual 'pending' task.
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
More information about the wine-bugs
mailing list