mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-08 11:16:47 +00:00
A job's libvirt call to a host that is up but stuck waits as long as the host does. Measured with the worker's loop: with two jobs stuck on one host, the other host's jobs ran but their progress was never read (both progress threads waited on the stuck host); with four stuck, a new job of another host stayed queued, every slot taken; cancelling them took all four control threads, so cancels, recovery and housekeeping stopped for every host. Now a host's jobs take at most half of the worker's slots (at least one; a migration counts on both its hosts), and the next queued job of another host starts instead. A host has at most one progress read and one control task (a cancel or a recovery inspection) at a time, and the control tasks of hosts leave one thread to housekeeping. |
||
|---|---|---|
| .. | ||
| api | ||
| management | ||
| migrations | ||
| static/operations | ||
| templates/operations | ||
| templatetags | ||
| tests | ||
| __init__.py | ||
| apps.py | ||
| claims.py | ||
| jobs.py | ||
| models.py | ||
| urls.py | ||
| utils.py | ||
| views.py | ||
| worker.py | ||