1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-08 11:16:47 +00:00
webvirtcloud/webvirtcloud
catborise 6709681508 feat(webvirtcloud): a request waiting on a host holds one thread, not a worker
A host that is up but does not answer (a hung NFS mount, for one) keeps
a libvirt call waiting: libvirt's keepalive does not end it, since the
daemon still answers keepalives. Each such request held a whole sync
worker, and once they held every worker the panel stopped answering,
pages without libvirt too; F5 added another.

gunicorn now runs threaded workers, 4 threads each, and a worker takes
no more connections than it has threads, so one whose threads are all
busy leaves new requests to the others. A threaded worker keeps
reporting in while a thread waits, so gunicorn's timeout no longer ends
the request: the worker now exits itself when a request runs past the
timeout (600 s), and gunicorn starts a new one. Short claims expire on
that bound.

The address search runs one at a time in a process, as it did with one
request per worker.
2026-11-02 21:19:01 +03:00
..
tests feat(webvirtcloud): a request waiting on a host holds one thread, not a worker 2026-11-02 21:19:01 +03:00
__init__.py Initial commit 2015-02-27 10:53:51 +02:00
asgi.py fix references to django 3 migration 2021-06-15 14:29:20 +03:00
common_tags.py fix: render the 404 page for logged-in users 2026-10-04 01:08:11 +03:00
gunicorn_worker.py feat(webvirtcloud): a request waiting on a host holds one thread, not a worker 2026-11-02 21:19:01 +03:00
middleware.py feat(webvirtcloud): pages run only the scripts the panel serves 2026-11-02 10:08:09 +03:00
serializers.py fix(api): typed URLs and accurate response schemas 2026-10-04 01:08:11 +03:00
settings-dev.py fix(static): collectstatic writes to staticfiles/, and its output is no longer committed 2026-10-07 16:31:56 +03:00
settings.py.template feat(nodedevs): the host's PCI and USB devices on a Devices page 2026-10-29 13:01:17 +03:00
test_runner.py fix(tests): a killed test run no longer breaks the next one 2026-10-26 16:43:22 +03:00
urls-api.py feat(operations): jobs API 2026-10-14 23:27:57 +03:00
urls.py feat(webvirtcloud): pages run only the scripts the panel serves 2026-11-02 10:08:09 +03:00
wsgi.py fix: stop ignoring SIGCHLD process-wide 2026-10-04 13:40:53 +03:00
wsgi_custom.py fix references to django 3 migration 2021-06-15 14:29:20 +03:00