一个 Debian 服务器,其现有 cyrus imapd 运行正常,但磁盘空间不足。删除一些未使用的旧内容后,空间又足够了。但对于单个特定用户,无法再通过 imaps 进行连接:
Apr 10 20:55:21 myhost cyrus/master[1775]: about to exec /usr/lib/cyrus/bin/imapd
Apr 10 20:55:21 myhost cyrus/imaps[1775]: executed
Apr 10 20:55:21 myhost cyrus/imaps[1775]: accepted connection
Apr 10 20:55:37 myhost cyrus/imaps[1775]: mystore: starting txn 2147483675
Apr 10 20:55:37 myhost cyrus/imaps[1775]: mystore: committing txn 2147483675
Apr 10 20:55:37 myhost cyrus/imaps[1775]: starttls: TLSv1 with cipher AES128-SHA (128/128 bits new) no authentication
Apr 10 20:55:45 myhost cyrus/imaps[1775]: login: [<local ip number>] <myuser> PLAIN+TLS User logged in
Apr 10 20:55:46 myhost cyrus/master[1235]: process 1775 exited, signaled to death by 7
Apr 10 20:55:46 myhost cyrus/master[1235]: service imaps pid 1775 in BUSY state: terminated abnormally
我尝试运行cyrreconstruct -r user.<userid>
,尝试重启盒子,但都没有成功。这肯定不是客户端问题,尝试过 thunderbird 和 mutt - 都失败了。
奇怪的是,其他所有用户都可以毫无问题地使用 imap 服务器,但这个特定用户却无法使用。
有没有提示可以让用户的 imap 访问再次正常工作。
附录:我已经为可疑用户启用了协议级别日志记录,它显示 imapd 进程在收到 imapSELECT "INBOX"
命令后死亡。
答案1
日志中的“signaled to death by 7”消息显然是由于邮箱的“Seen”文件因磁盘空间问题而损坏所致:
http://www.irbs.net/internet/info-cyrus/0811/0060.html
如果不是“已查看”的文件,则增加的服务器端日志记录应该显示 IMAP 进程终止时正在访问哪个文件。