Files
notifications-admin/requirements.txt
Alexey Bezhan 86c2ec2af8 Stop gunicorn from terminating eventlet workers on timeout
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.
2018-09-18 11:59:48 +01:00

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