【问题标题】:Segmentation Fault (11) on httpd when python-ldap is initializedpython-ldap初始化时httpd上的分段错误(11)
【发布时间】:2011-07-08 01:27:11
【问题描述】:

我在 RHEL 5 和 Python 2.43 上将 mod_wsgi 用于 Django 应用程序 (OSQA)(无法升级)。

我已经设置好站点并且工作正常,然后尝试将身份验证与 python-ldap 集成以访问 Active Directory 属性,例如用户名、电子邮件地址等

Apache httpd 崩溃并显示以下消息:

[notice] child pid 18705 exit signal Segmentation fault (11)

我最初认为这是由于 Apache 和 Python 之间的 expat 库不一致,但后来我升级了 libexpat.so 模块以匹配 Python 版本的 pyexpat (1.95.8)。

从 django 日志中的大量日志中,我可以看到执行此行时发生了 seg 错误:

con = ldap.initialize(AD_LDAP_URL)

python-ldap 是否存在特定问题导致此问题?关于如何调试还有其他想法吗?

谢谢

【问题讨论】:

  • 只是一个建议:检查审核日志以了解 selinux 是否会妨碍您。我似乎记得偶尔会因为 selinux 禁止而发现段错误问题。

标签: python mod-wsgi apache expat-parser python-ldap


【解决方案1】:

尝试禁用任何使用 LDAP 的 Apache 身份验证模块。如果正在使用 mod_php 并且它正在加载 LDAP 扩展,请尝试禁用 mod_php。简而言之,库版本冲突可能是因为 LDAP 库而不是 expat,因此请禁用其他 Apache 模块并查看问题是否消失。这将缩小范围。

【讨论】:

  • 谢谢格雷厄姆。我使用mod_auth_vas 进行单点登录,标准mod_authz_hostmod_authn_anon。我已经尝试依次禁用这些,但仍然看到相同的分段错误错误。我也没有使用 mod_php。会继续挖掘。还有其他想法吗?
  • 如果 LDAP 客户端支持使用 LDAPS,则 SSL 库的不同版本。
  • 或许可以试试code.google.com/p/modwsgi/wiki/… 看看gdb 能否给出它崩溃的代码的堆栈跟踪。
猜你喜欢
  • 2017-09-29
  • 1970-01-01
  • 2017-04-05
  • 2013-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-19
相关资源
最近更新 更多