Python 3.x 使用TCHA时uWSGI分段错误

Python 3.x 使用TCHA时uWSGI分段错误,python-3.x,docker,nginx,flask,uwsgi,Python 3.x,Docker,Nginx,Flask,Uwsgi,我在我的服务器(Ubuntu18.04.2 LTS)上使用Tcha功能时遇到问题。在我的本地机器上,一切正常,但当我在服务器上运行同一个项目时,在我打勾后,验证ReCaptcha时失败 日志: 我在服务器和本地机器上都使用Python 3.7。已安装的库列表: bcrypt==3.1.7 certifi==2019.11.28 cffi==1.13.2 chardet==3.0.4 Click==7.0 dnspython==1.16.0 Flask==1.1.1 Flask-Bcrypt==0

我在我的服务器(Ubuntu18.04.2 LTS)上使用Tcha功能时遇到问题。在我的本地机器上,一切正常,但当我在服务器上运行同一个项目时,在我打勾后,验证ReCaptcha时失败

日志:

我在服务器和本地机器上都使用Python 3.7。已安装的库列表:

bcrypt==3.1.7
certifi==2019.11.28
cffi==1.13.2
chardet==3.0.4
Click==7.0
dnspython==1.16.0
Flask==1.1.1
Flask-Bcrypt==0.7.1
Flask-Login==0.4.1
Flask-ReCaptcha==0.4.2
idna==2.8
itsdangerous==1.1.0
Jinja2==2.10.3
MarkupSafe==1.1.1
mysql-connector-python==8.0.19
protobuf==3.6.1
pycparser==2.19
PyYAML==5.3
requests==2.22.0
six==1.13.0
urllib3==1.25.8
Werkzeug==0.16.0
uwsgi.ini

[uwsgi]
module = antifraud_dashboard
callable = app
Dockerfile

FROM tiangolo/uwsgi-nginx-flask:python3.7

VOLUME /app

WORKDIR /app

COPY requirements.txt .

RUN echo "uwsgi_read_timeout 600s;" > /etc/nginx/conf.d/custom_timeout.conf

RUN pip install -r requirements.txt
更新:
UWSGI\u LAZY\u APPS=1
似乎没有效果,但在设置
PYTHONFAULTHANDLER=1
后,我得到了以下回溯:

antifraud-dashboard_1           | Fatal Python error: Segmentation fault
antifraud-dashboard_1           |
antifraud-dashboard_1           | Current thread 0x00007f3bb4296780 (most recent call first):
antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/socket.py", line 748 in getaddrinfo
antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/urllib3/util/connection.py", line 61 in create_connection
antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 157 in _new_conn
antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 300 in connect
antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 994 in _validate_conn
antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 376 in _make_request
antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 672 in urlopen
antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 449 in send
antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 646 in send
antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 533 in request
antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/requests/api.py", line 60 in request
antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/requests/api.py", line 75 in get
antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/flask_recaptcha.py", line 80 in verify
antifraud-dashboard_1           |   File "./antifraud_dashboard.py", line 94 in login_user
antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1935 in dispatch_request
antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1949 in full_dispatch_request
antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2446 in wsgi_app
antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2463 in __call__
  • PYTHONFAULTHANDLER
    环境变量设置为某个值,例如
    1
    ,您可能会得到一个回溯()

  • uWSGI有一些不好的默认值,糟糕到我个人建议不要使用它,因为这样,但是如果必须:将
    uWSGI\u LAZY\u APPS
    env variable设置为
    1
    。默认情况下,uWSGI执行fork()-without-exec(),这会导致崩溃和神秘的bug。在这种情况下,这可能不是问题,但仍然需要解决


  • 更新了一个带有回溯的问题不确定uWSGI的env变量如何与uWSGI配置文件交互,因此值得尝试将其设置为配置选项。
    antifraud-dashboard_1           | Fatal Python error: Segmentation fault
    antifraud-dashboard_1           |
    antifraud-dashboard_1           | Current thread 0x00007f3bb4296780 (most recent call first):
    antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/socket.py", line 748 in getaddrinfo
    antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/urllib3/util/connection.py", line 61 in create_connection
    antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 157 in _new_conn
    antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 300 in connect
    antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 994 in _validate_conn
    antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 376 in _make_request
    antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/urllib3/connectionpool.py", line 672 in urlopen
    antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 449 in send
    antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 646 in send
    antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/requests/sessions.py", line 533 in request
    antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/requests/api.py", line 60 in request
    antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/requests/api.py", line 75 in get
    antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/flask_recaptcha.py", line 80 in verify
    antifraud-dashboard_1           |   File "./antifraud_dashboard.py", line 94 in login_user
    antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1935 in dispatch_request
    antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1949 in full_dispatch_request
    antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2446 in wsgi_app
    antifraud-dashboard_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2463 in __call__