【问题标题】:Truncated or oversized response headers received from daemon process with ctypes loadlibrary使用 ctypes loadlibrary 从守护进程接收到的截断或过大的响应标头
【发布时间】:2016-07-29 11:42:28
【问题描述】:

您好,我在尝试加载通过 apache 部署的网页时收到以下消息

“从守护进程收到的截断或过大的响应标头”

在 apache 日志中

[info] mod_wsgi (pid=16368):初始化 Python。
[info] mod_wsgi (pid=16368): 进程 'esapp' 已经死亡,注销并重新启动它。
[info] mod_wsgi (pid=16368): 进程 'esapp' 被信号 1 终止
[info] mod_wsgi (pid=16368): 进程 'esapp' 已注销,将不再被监控。

我正在使用模块的ctypes在django项目的设置文件中加载cpp库

VELEC_API_LIB = ctypes.cdll.LoadLibrary('/var/www/eswebsite/libvelec.so')

如果我停止加载我的 cpp .so 库并重新启动 apache,它运行良好并且我能够加载网页。但是当我尝试加载我的 .so 库时,每次都会出现上述错误。

我想加载我的 .so 库,因为它是我的 c 端项目的一部分。

任何帮助将不胜感激??

【问题讨论】:

    标签: django apache mod-wsgi ctypes


    【解决方案1】:

    加载扩展程序时进程崩溃。

    尝试在 Apache config 中设置指令:

    WSGIApplicationGroup {GLOBAL}
    

    这会强制使用主要的 Python 解释器上下文,这可以帮助未正确实现的扩展模块在子解释器中工作。

    如果这没有帮助,问题可能是扩展模块需要一个共享库,但它没有正确链接,因此在尝试调用它时会崩溃。

    【讨论】:

    • 嗨,格雷厄姆,我仍然收到该消息。我应用了你的建议,但没有奏效。有什么解决办法吗??
    • 如果你运行ldd /var/www/eswebsite/libvelec.so,你会得到什么?确保在运行时未设置 LD_LIBRARY_PATH 环境变量。
    • gettig 跟随--- linux-vdso.so.1 => (0x00007fff0e1ff000) libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fafb4df1000) libnsl.so.1 => /lib64/libnsl.so.1 (0x00007fafb49d3000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fafb47b6000) libz.so.1 => /lib64/libz.so.1 (0x00007fafb459f000) libstdc++.so .6 => /usr/lib64/libstdc++.so.6 (0x00007fafb4299000) libm.so.6 => /lib64/libm.so.6 (0x00007fafb4015000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fafb3dfe000) libc.so.6 => /lib64/libc.so.6 (0x00007fafb3a6a000) /lib64/ld-linux-x86-64.so.2 (0x0000003e21600000)
    • 在未解析的库或可能导致冲突的库的方式中没有什么明显的。只能建议您确保您使用的是 mod_wsgi 的守护程序模式,然后使用modwsgi.readthedocs.io/en/develop/user-guides/… 中概述的步骤来捕获当您使用 Web 请求触发代码时核心转储位置的堆栈跟踪。也就是说,不要在全局范围内加载,将其推迟到 Web 请求完成后才能更好地捕获它。
    • 我在守护进程模式下运行。在 gdb (gdb) c 继续时出现以下消息。从子进程 6473 分叉后分离。[线程 0x7fd4e591d700 (LWP 31661) 退出] [线程 0x7fd4e6d1f700 (LWP 31659) 退出] [线程 0x7fd4e631e700 (LWP 31660) 退出] 程序退出,代码 01。
    猜你喜欢
    • 2014-09-09
    • 1970-01-01
    • 2015-06-20
    • 2017-11-08
    • 2023-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多