You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apple M2 MacBook Pro使用uWSGI与requests库时出现段错误求助

uWSGI主进程模式下调用requests触发段错误的问题及排查

环境与配置

  • 设备:Apple MacBook Pro M2
  • 环境:Pyenv管理的Python 3.10.5、openssl@1.1、Django4.1.1、requests2.28.1、uwsgi==2.0.20

uWSGI配置文件

processes = 1
enable-threads = true
single-interpreter = true
http = 127.0.0.1:8080
socket = 127.0.0.1:8081
master = true
python-auto-reload = 1
thunder-lock = true
max-requests = 5000
harakiri = 1200
buffer-size = 65535
disable-logging = true

问题现象

当uWSGI配置中master设为true时,调用requests发起任意请求都会触发Segmentation Fault(段错误);将master改为false后,段错误不再出现。推测问题可能出在uWSGI、requests库或openssl的交互上。

段错误回溯日志

!!! uWSGI process 94052 got Segmentation Fault !!!
*** backtrace of 94052 ***
0   uwsgi                               0x0000000100c89398 uwsgi_backtrace + 52
1   uwsgi                               0x0000000100c898ac uwsgi_segfault + 56
2   libsystem_platform.dylib            0x00000001b04b42a4 _sigtramp + 56
3   libsystem_trace.dylib               0x00000001b022e098 _os_log_preferences_refresh + 36
4   libsystem_trace.dylib               0x00000001b022eae0 os_log_type_enabled + 644
5   CoreFoundation                      0x00000001b05199c8 -[CFPrefsSearchListSource alreadylocked_copyValueForKey:] + 204
6   CoreFoundation                      0x00000001b05198dc -[CFPrefsSource copyValueForKey:] + 52
7   CoreFoundation                      0x00000001b0519890 __76-[_CFXPreferences copyAppValueForKey:identifier:container:configurationURL:]_block_invoke + 32
8   CoreFoundation                      0x00000001b0511f44 __108-[_CFXPreferences(SearchListAdditions) withSearchListForIdentifier:container:cloudConfigurationURL:perform:]_block_invoke + 376
9   CoreFoundation                      0x00000001b068c734 -[_CFXPreferences withSearchListForIdentifier:container:cloudConfigurationURL:perform:] + 384
10  CoreFoundation                      0x00000001b0511818 -[_CFXPreferences copyAppValueForKey:identifier:container:configurationURL:] + 168
11  CoreFoundation                      0x00000001b0511734 _CFPreferencesCopyAppValueWithContainerAndConfiguration + 112
12  SystemConfiguration                 0x00000001b10e08cc SCDynamicStoreCopyProxiesWithOptions + 180
13  _scproxy.cpython-310-darwin.so      0x000000010215b85c get_proxy_settings + 44
14  libpython3.10.dylib                 0x00000001011ca2ec cfunction_vectorcall_NOARGS + 332
15  libpython3.10.dylib                 0x0000000101264b9c call_function + 316
16  libpython3.10.dylib                 0x0000000101262204 _PyEval_EvalFrameDefault + 25452
17  libpython3.10.dylib                 0x000000010125bd8c _PyEval_Vector + 164
18  libpython3.10.dylib                 0x0000000101264b9c call_function + 316
19  libpython3.10.dylib                 0x0000000101262204 _PyEval_EvalFrameDefault + 25452
20  libpython3.10.dylib                 0x000000010125bd8c _PyEval_Vector + 164
21  libpython3.10.dylib                 0x0000000101264b9c call_function + 316
22  libpython3.10.dylib                 0x0000000101262204 _PyEval_EvalFrameDefault + 25452
23  libpython3.10.dylib                 0x000000010125bd8c _PyEval_Vector + 164
24  libpython3.10.dylib                 0x0000000101264b9c call_function + 316
25  libpython3.10.dylib                 0x000000010126227c _PyEval_EvalFrameDefault + 25572
26  libpython3.10.dylib                 0x000000010125bd8c _PyEval_Vector + 164
27  libpython3.10.dylib                 0x0000000101264b9c call_function + 316
28  libpython3.10.dylib                 0x000000010126227c _PyEval_EvalFrameDefault + 25572
29  libpython3.10.dylib                 0x000000010125bd8c _PyEval_Vector + 164
30  libpython3.10.dylib                 0x0000000101264b9c call_function + 316
31  libpython3.10.dylib                 0x0000000101262154 _PyEval_EvalFrameDefault + 25276
32  libpython3.10.dylib                 0x000000010125bd8c _PyEval_Vector + 164
33  libpython3.10.dylib                 0x00000001011846e8 method_vectorcall + 168
34  libpython3.10.dylib                 0x0000000101182430 PyVectorcall_Call + 144
35  libpython3.10.dylib                 0x00000001012624a4 _PyEval_EvalFrameDefault + 26124
36  libpython3.10.dylib                 0x000000010125bd8c _PyEval_Vector + 164
37  libpython3.10.dylib                 0x0000000101182430 PyVectorcall_Call + 144
38  libpython3.10.dylib                 0x00000001012624a4 _PyEval_EvalFrameDefault + 26124
39  libpython3.10.dylib                 0x000000010125bd8c _PyEval_Vector + 164
40  libpython3.10.dylib                 0x0000000101264b9c call_function + 316
41  libpython3.10.dylib                 0x000000010126227c _PyEval_EvalFrameDefault + 25572
42  libpython3.10.dylib                 0x000000010125bd8c _PyEval_Vector + 164
43  libpython3.10.dylib                 0x00000001011846e8 method_vectorcall + 168
44  libpython3.10.dylib                 0x0000000101264b9c call_function + 316
45  libpython3.10.dylib                 0x000000010126227c _PyEval_EvalFrameDefault + 25572
46  libpython3.10.dylib                 0x000000010125bd8c _PyEval_Vector + 164
47  libpython3.10.dylib                 0x00000001011846e8 method_vectorcall + 168
48  libpython3.10.dylib                 0x0000000101264b9c call_function + 316
49  libpython3.10.dylib                 0x000000010126227c _PyEval_EvalFrameDefault + 25572
50  libpython3.10.dylib                 0x000000010125bd8c _PyEval_Vector + 164
51  libpython3.10.dylib                 0x0000000101182430 PyVectorcall_Call + 144
52  libpython3.10.dylib                 0x00000001012624a4 _PyEval_EvalFrameDefault + 26124
53  libpython3.10.dylib                 0x000000010125bd8c _PyEval_Vector + 164
54  libpython3.10.dylib                 0x0000000101182430 PyVectorcall_Call + 144
55  libpython3.10.dylib                 0x00000001012624a4 _PyEval_EvalFrameDefault + 26124
56  libpython3.10.dylib                 0x000000010125bd8c _PyEval_Vector + 164
57  libpython3.10.dylib                 0x0000000101182430 PyVectorcall_Call + 144
58  libpython3.10.dylib                 0x00000001012624a4 _PyEval_EvalFrameDefault + 26124
59  libpython3.10.dylib                 0x000000010125bd8c _PyEval_Vector + 164
60  libpython3.10.dylib                 0x0000000101264b9c call_function + 316
61  libpython3.10.dylib                 0x0000000101262204 _PyEval_EvalFrameDefault + 25452
62  libpython3.10.dylib                 0x000000010125bd8c _PyEval_Vector + 164
63  libpython3.10.dylib                 0x0000000101264b9c call_function + 316
*** end of backtrace ***

排查与解决方案方向

从回溯日志看,段错误发生在系统代理设置获取流程中(get_proxy_settings调用链),结合master模式才会触发的现象,可尝试以下方案:

  • 禁用requests自动代理检测:在requests请求中显式设置proxies={"http": None, "https": None},跳过系统代理配置读取,避免触发崩溃路径。
  • 升级uWSGI版本:当前使用的uWSGI 2.0.20在Apple Silicon平台可能存在进程fork后的系统调用兼容性问题,尝试升级到2.0.21及以上版本,官方后续版本修复过部分ARM架构下的进程管理bug。
  • 调整uWSGI配置:保留master=true的同时,添加lazy-apps=true配置项,让子进程独立加载应用,避免主进程与子进程在系统资源调用上的冲突。
  • 更换openssl版本:尝试切换到openssl@3.x版本,排查是否为旧版本openssl与Apple Silicon系统调用的兼容性问题。
  • 验证Python环境:用系统自带Python或重新通过pyenv编译Python 3.10.x版本,确保编译时适配Apple Silicon架构,避免因Python二进制文件兼容性导致的崩溃。

内容的提问来源于stack exchange,提问作者platypus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 19:56:13