famd 和 slapd hanging 之间的通信

famd 和 slapd hanging 之间的通信

我的用户在使用 IMAP 邮箱时遇到了问题。IMAP 进程挂起并超时。超时后,用户可能会看到一个空的邮箱。

但真正的问题似乎是 slapd 和 famd 之间的通信。

背景信息:

系统:

  • 德比安·兰尼
  • courier-imap 4.4.0-2
  • 家庭 2.7.0-13.3
  • slapd 2.4.11-1

nsswitch.conf 包含:

  密码:文件 ldap
  组:文件 ldap
  影子:文件 ldap

courier 的 imap 配置文件的功能中包含“IDLE”,但删除它(并摆弄 IMAP_ENHANCEDIDLE)没有任何作用。从阅读中,我以为这会阻止 courier imap 使用 fam,但我想不会。

对 imap 进程进行跟踪(当它挂起时)显示它挂在与 fam 的通信上。因此我重新启动了 fam(花了几个小时修复了这个问题)并继续进行故障排除以找到问题的根源。

由于程序仍然挂起,因此我继续寻找。

stracing famd 显示它与 slapd 的通信挂起了。踢掉 slapd 解决了一点问题。slapd 对其他查询有响应,但随着时间的推移速度变慢了。

最奇怪的是,这些问题刚刚开始出现。我认为我升级的唯一软件包可能相关内容如下:

  基础文件 5lenny4
  libmysqlclient15off 5.0.51a-24+lenny2
  libssl0.9.8 0.9.8g-15+lenny3
  openssl 0.9.8g-15+lenny3
  tzdata 2009l-0lenny1
  udev 0.125-7+lenny3

看起来(我尚未证实这一点)famd 和 slapd 之间的连接是长期的(通过 nscd)。

哎呀,写到这里我才意识到 nscd 是另一个我还没有测试过的东西。我想我会研究一下。

编辑:刚刚确认踢出 nscd 也能解决问题。

答案1

不要为此目的使用系统用户。当所有文件都归一个用户所有时,请使用“虚拟”,并让 courier 直接访问 ldap 服务器。

nss-ldap 库不太可靠。

还有一件事:考虑使用 dovecot 而不是 courier。它就像 courier 一样,只是更好一些。

相关内容