我使用flask运行dev uwsgi服务器并调用requests.get在uWSGI进程中触发了分段错误。
分段错误:
!!! uWSGI process 70490 got Segmentation Fault !!!
*** backtrace of 70490 ***
0 uwsgi 0x000000010b394c70 uwsgi_backtrace + 48
1 uwsgi 0x000000010b3951b3 uwsgi_segfault + 51
2 libsystem_platform.dylib 0x00007fff82784eaa _sigtramp + 26
3 ??? 0x0000000000000000 0x0 + 0
4 libxpc.dylib 0x00007fff914d2aa0 xpc_connection_resume + 192
5 CoreFoundation 0x00007fff91fbb9d1 _CFPrefsWithDaemonConnection + 353
6 CoreFoundation 0x00007fff91f8aae6 __66-[CFPrefsSearchListSource generationCountFromListOfSources:count:]_block_invoke + 150
7 CoreFoundation 0x00007fff91f8a883 -[CFPrefsSearchListSource generationCountFromListOfSources:count:] + 179
8 CoreFoundation 0x00007fff91e39cb4 -[CFPrefsSearchListSource alreadylocked_copyDictionary] + 324
9 CoreFoundation 0x00007fff91e3498c -[CFPrefsSearchListSource alreadylocked_copyValueForKey:] + 60
10 CoreFoundation 0x00007fff91fbc64c ___CFPreferencesCopyAppValueWithContainer_block_invoke + 60
11 CoreFoundation 0x00007fff91f89750 +[CFPrefsSearchListSource withSearchListForIdentifier:container:perform:] + 608
12 CoreFoundation 0x00007fff91fbc5c7 _CFPreferencesCopyAppValueWithContainer + 183
13 SystemConfiguration 0x00007fff92301aab SCDynamicStoreCopyProxiesWithOptions + 163
14 _scproxy.so 0x000000010bdac914 init_scproxy + 58
15 Python 0x000000010b55aa90 PyEval_EvalFrameEx + 13533
16 Python 0x000000010b55d541 _PyEval_SliceIndex + 489
17 Python 0x000000010b55a30c PyEval_EvalFrameEx + 11609
18 Python 0x000000010b55d541 _PyEval_SliceIndex + 489
19 Python 0x000000010b55a30c PyEval_EvalFrameEx + 11609
20 Python 0x000000010b55d541 _PyEval_SliceIndex + 489
21 Python 0x000000010b55a30c PyEval_EvalFrameEx + 11609
22 Python 0x000000010b55d541 _PyEval_SliceIndex + 489
23 Python 0x000000010b55a30c PyEval_EvalFrameEx + 11609
24 Python 0x000000010b55d541 _PyEval_SliceIndex + 489
25 Python 0x000000010b55a30c PyEval_EvalFrameEx + 11609
26 Python 0x000000010b5573c1 PyEval_EvalCodeEx + 1583
27 Python 0x000000010b4fc2e5 PyFunction_SetClosure + 828
28 Python 0x000000010b4de202 PyObject_Call + 99
29 Python 0x000000010b55a4ac PyEval_EvalFrameEx + 12025
30 Python 0x000000010b5573c1 PyEval_EvalCodeEx + 1583
31 Python 0x000000010b4fc2e5 PyFunction_SetClosure + 828
32 Python 0x000000010b4de202 PyObject_Call + 99
33 Python 0x000000010b55a4ac PyEval_EvalFrameEx + 12025
34 Python 0x000000010b5573c1 PyEval_EvalCodeEx + 1583
35 Python 0x000000010b55d4ae _PyEval_SliceIndex + 342
36 Python 0x000000010b55a30c PyEval_EvalFrameEx + 11609
37 Python 0x000000010b5573c1 PyEval_EvalCodeEx + 1583
38 Python 0x000000010b55d4ae _PyEval_SliceIndex + 342
39 Python 0x000000010b55a30c PyEval_EvalFrameEx + 11609
40 Python 0x000000010b5573c1 PyEval_EvalCodeEx + 1583
41 Python 0x000000010b4fc2e5 PyFunction_SetClosure + 828
42 Python 0x000000010b4de202 PyObject_Call + 99
43 Python 0x000000010b55a4ac PyEval_EvalFrameEx + 12025
44 Python 0x000000010b55d541 _PyEval_SliceIndex + 489
45 Python 0x000000010b55a30c PyEval_EvalFrameEx + 11609
46 Python 0x000000010b55d541 _PyEval_SliceIndex + 489
47 Python 0x000000010b55a30c PyEval_EvalFrameEx + 11609
48 Python 0x000000010b55d541 _PyEval_SliceIndex + 489
49 Python 0x000000010b55a30c PyEval_EvalFrameEx + 11609
50 Python 0x000000010b5573c1 PyEval_EvalCodeEx + 1583
51 Python 0x000000010b4fc2e5 PyFunction_SetClosure + 828
52 Python 0x000000010b4de202 PyObject_Call + 99
53 Python 0x000000010b4e8ff5 PyMethod_New + 1221
54 Python 0x000000010b4de202 PyObject_Call + 99
55 Python 0x000000010b524a33 _PyObject_SlotCompare + 2939
56 Python 0x000000010b4de202 PyObject_Call + 99
57 Python 0x000000010b55ce83 PyEval_CallObjectWithKeywords + 165
58 uwsgi 0x000000010b3b0287 python_call + 23
59 uwsgi 0x000000010b3b24b0 uwsgi_request_wsgi + 880
60 uwsgi 0x000000010b346770 wsgi_req_recv + 288
61 uwsgi 0x000000010b39292a simple_loop_run + 218
62 uwsgi 0x000000010b399f7b uwsgi_ignition + 443
63 uwsgi 0x000000010b399d73 uwsgi_worker_run + 883
uWSGI命令:
uwsgi --http 0.0.0.0:8083 --ini uwsgi.ini
uWSGI ini
[uwsgi]
# this config will be loaded if nothing specific is specified
# load base config from below
ini = :base
# %d is the dir this configuration file is in
socket = %d/conf/app.sock
master = true
processes = 4
[dev]
ini = :base
# socket (uwsgi) is not the same as http, nor http-socket
socket = :8001
[local]
ini = :base
http = :8000
# set the virtual env to use
home=$dappenv
[base]
# chdir to the folder of this config file, plus app/website
chdir = %d
# load the module from wsgi.py, it is a python path from
# the directory above.
module = app.application:app
# allow anyone int the group to connect to the socket.
chmod-socket=666
违规代码段:
def find_places_with_name(self, name):
url = "{}/textsearch/json?query={}&key={}".format(
self.api_url_root,
name,
self.api_key
)
#search_response = requests.get(url)
# THE NEXT LINE IS THE LINE THAT BREAKS
search_response = requests.get('http://www.google.com')
if search_response.status_code != 200:
# TODO throw/log
pass
return search_response.json()
版本:
直接从命令行运行python代码片段没有任何问题。
我重新安装了uwsgi并且似乎没有用。我不熟悉uWSGI配置参数的复杂性。我的配置文件中是否有可能导致此问题?