使用Flask-ReCaptcha时的uWSGI分段错误

问题描述 投票:0回答:1

我在服务器上使用Flask-ReCaptcha功能时遇到问题(Ubuntu 18.04.2 LTS)。在我的本地计算机上,一切正常,但是当我在服务器上运行相同的项目时,在我打勾之后,验证ReCaptcha时会失败。

日志:

[36mantifraud-dashboard_1           | [0m 2020-01-27 12:03:35,761 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
[36mantifraud-dashboard_1           | [0m 2020-01-27 12:03:35,761 INFO success: uwsgi entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
[36mantifraud-dashboard_1           | [0m [pid: 17|app: 0|req: 1/1] 10.10.0.4 () {50 vars in 888 bytes} [Mon Jan 27 12:03:48 2020] GET / => generated 219 bytes in 13 msecs (HTTP/1.0 302) 3 headers in 140 bytes (1 switches on core 0)
[36mantifraud-dashboard_1           | [0m 10.10.0.4 - - [27/Jan/2020:12:03:48 +0000] "GET / HTTP/1.0" 302 219 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" "134.249.113.68"
[36mantifraud-dashboard_1           | [0m 10.10.0.4 - - [27/Jan/2020:12:03:48 +0000] "GET /login HTTP/1.0" 200 1441 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" "134.249.113.68"
[36mantifraud-dashboard_1           | [0m [pid: 16|app: 0|req: 1/2] 10.10.0.4 () {48 vars in 873 bytes} [Mon Jan 27 12:03:48 2020] GET /login => generated 1441 bytes in 29 msecs (HTTP/1.0 200) 2 headers in 81 bytes (1 switches on core 0)
[36mantifraud-dashboard_1           | [0m !!! uWSGI process 16 got Segmentation Fault !!!
[36mantifraud-dashboard_1           | [0m 10.10.0.4 - - [27/Jan/2020:12:03:59 +0000] "POST /login HTTP/1.0" 502 559 "https://dashboard.antifraud.kektaxi.app/login" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" "134.249.113.68"
[36mantifraud-dashboard_1           | [0m 2020/01/27 12:03:59 [error] 11#11: *5 upstream prematurely closed connection while reading response header from upstream, client: 10.10.0.4, server: , request: "POST /login HTTP/1.0", upstream: "uwsgi://unix:///tmp/uwsgi.sock:", host: "dashboard.antifraud.kektaxi.app", referrer: "https://dashboard.antifraud.kektaxi.app/login"
[36mantifraud-dashboard_1           | [0m DAMN ! worker 1 (pid: 16) died, killed by signal 11 :( trying respawn ...
[36mantifraud-dashboard_1           | [0m Respawned uWSGI worker 1 (new pid: 18)

我在服务器和本地计算机上都使用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
python-3.x docker nginx flask uwsgi
1个回答
0
投票
  1. PYTHONFAULTHANDLER环境变量设置为某些值,例如1,您可能会得到追溯(https://pythonspeed.com/articles/python-c-extension-crashes/

© www.soinside.com 2019 - 2024. All rights reserved.