mirror of
https://github.com/smittix/intercept.git
synced 2026-04-24 06:40:00 -07:00
fix: apply gevent monkey-patch in post_fork to prevent ARM worker deadlock
Gunicorn's gevent worker deadlocks during init_process() on Raspberry Pi (ARM) before it can apply its own monkey-patching. Patching in post_fork runs immediately after fork and before worker init, avoiding the race. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,21 @@
|
||||
"""Gunicorn configuration for INTERCEPT."""
|
||||
|
||||
|
||||
def post_fork(server, worker):
|
||||
"""Apply gevent monkey-patching immediately after fork.
|
||||
|
||||
Gunicorn's built-in gevent worker is supposed to handle this, but on
|
||||
some platforms (notably Raspberry Pi / ARM) the worker deadlocks during
|
||||
its own init_process() before it gets to patch. Doing it here — right
|
||||
after fork, before any worker initialisation — avoids the race.
|
||||
"""
|
||||
try:
|
||||
from gevent import monkey
|
||||
monkey.patch_all(subprocess=False)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
def post_worker_init(worker):
|
||||
"""Suppress noisy SystemExit tracebacks during gevent worker shutdown.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user