2011-03-03 38 views
1

我在Python 2.43(无法升级)的RHEL 5上使用mod_wsgi作为Django应用程序(OSQA)。当python-ldap被初始化时httpd上的分段错误(11)

我有网站设置和工作正常,然后尝试将身份验证与python-ldap集成以访问Active Directory属性,例如用户的姓名,电子邮件地址等

的Apache httpd的崩溃,并显示以下信息:

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

我本来以为这是由于inconsisten的Apache和Python之间外籍库,但因为我已经升级了的libexpat。所以模块匹配Python版本的pyexpat(1.95.8)。

从Django的日志记录沉重,我可以看到在执行这条线赛格故障发生:

con = ldap.initialize(AD_LDAP_URL) 

是否有特定的Python-LDAP导致此问题的东西吗?任何其他想法如何调试?

谢谢

+0

只是一个建议:检查审核日志selinux阻碍。我似乎偶尔会回忆起由于selinux禁令导致的段错误问题。 – MattH 2011-03-03 13:27:06

回答

1

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

+0

谢谢格雷厄姆。我正在使用[mod_auth_vas](http://rc.quest.com/topics/mod_auth_vas/)进行单一登录,而标准[mod_authz_host](http://httpd.apache.org/docs/2.2/ mod/mod_authz_host.html)和[mod_authn_anon](http://httpd.apache.org/docs/2.2/mod/mod_authn_anon.html)。我已经尝试禁用这些依次,并仍然看到相同的分段错误错误。我也没有使用mod_php。将继续挖掘。任何其他想法? – Alex 2011-03-04 09:42:22

+0

如果LDAP客户端支持使用LDAPS,则SSL库的版本可能会有所不同。 – 2011-03-04 09:54:28

+0

也许可以尝试http://code.google.com/p/modwsgi/wiki/DebuggingTechniques#Debugging_Crashes_With_GDB,看看gdb是否可以给出堆栈跟踪哪些代码崩溃。 – 2011-03-04 09:55:45