mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-05-03 23:51:22 -04:00
According to gunicorn `timeout` docs, async workers shouldn't be terminated after the request time exceeds the specified timeout as long as the worker process is still communicating. This makes sense for async workers since they generally don't block other requests from processing. This is the behaviour we've seen on notifications-api - requests can sometimes take much longer than the default 30 second timeout and still succeed. For the admin app however gunicorn has been shutting down workers after 30s with `[CRITICAL] WORKER TIMEOUT`. This results in a 502 response from the admin app. Most of these requests fail because the underlying requests to the api is taking longer than 30 seconds, however we haven't seen this in the logs originally since unlike the admin app, api requests succeed (even though their response is no longer needed). This seems like a bug in newer versions of gunicorn, downgrading it to the version that the api is currently using solves the problem by allowing admin requests to take longer than 30 seconds. (Tested by trying requests with a `time.sleep(30)` locally). It's not clear what exactly the bug in gunicorn is, but this also potentially unblocks eventlet workers and allows them to process more than one request at a time.
79 lines
1.5 KiB
Plaintext
79 lines
1.5 KiB
Plaintext
# pyup: ignore file
|
|
# This file is autogenerated. Do not edit it manually.
|
|
# Run `make freeze-requirements` to update requirements.txt
|
|
# with package version changes made in requirements-app.txt
|
|
|
|
ago==0.0.92
|
|
Flask==1.0.2
|
|
Flask-WTF==0.14.2
|
|
Flask-Login==0.4.1
|
|
|
|
blinker==1.4
|
|
pyexcel==0.5.9.1
|
|
pyexcel-io==0.5.9.1
|
|
pyexcel-xls==0.5.8
|
|
pyexcel-xlsx==0.5.6
|
|
pyexcel-ods3==0.5.2
|
|
pytz==2018.5
|
|
gunicorn==19.7.1 # >19.8 stops eventlet workers after a timeout
|
|
whitenoise==4.0 #manages static assets
|
|
eventlet==0.24.1
|
|
notifications-python-client==5.1.0
|
|
|
|
# PaaS
|
|
awscli-cwlogs>=1.4,<1.5
|
|
|
|
git+https://github.com/alphagov/notifications-utils.git@30.1.2#egg=notifications-utils==30.1.2
|
|
|
|
## The following requirements were added by pip freeze:
|
|
awscli==1.16.12
|
|
bleach==2.1.3
|
|
boto3==1.6.16
|
|
botocore==1.12.2
|
|
certifi==2018.8.24
|
|
chardet==3.0.4
|
|
click==6.7
|
|
colorama==0.3.9
|
|
dnspython==1.15.0
|
|
docopt==0.6.2
|
|
docutils==0.14
|
|
et-xmlfile==1.0.1
|
|
Flask-Redis==0.3.0
|
|
future==0.16.0
|
|
greenlet==0.4.15
|
|
html5lib==1.0.1
|
|
idna==2.7
|
|
itsdangerous==0.24
|
|
jdcal==1.4
|
|
Jinja2==2.10
|
|
jmespath==0.9.3
|
|
lml==0.0.4
|
|
lxml==4.2.5
|
|
MarkupSafe==1.0
|
|
mistune==0.8.3
|
|
monotonic==1.5
|
|
openpyxl==2.5.6
|
|
orderedset==2.0.1
|
|
phonenumbers==8.9.4
|
|
pyasn1==0.4.4
|
|
pyexcel-ezodf==0.3.4
|
|
PyJWT==1.6.4
|
|
PyPDF2==1.26.0
|
|
python-dateutil==2.7.3
|
|
python-json-logger==0.1.8
|
|
PyYAML==3.12
|
|
redis==2.10.6
|
|
requests==2.19.1
|
|
rsa==3.4.2
|
|
s3transfer==0.1.13
|
|
six==1.11.0
|
|
smartypants==2.0.1
|
|
statsd==3.2.2
|
|
texttable==1.4.0
|
|
urllib3==1.23
|
|
webencodings==0.5.1
|
|
Werkzeug==0.14.1
|
|
WTForms==2.2.1
|
|
xlrd==1.1.0
|
|
xlwt==1.3.0
|