Courier imapd: Failed to connect to socket /tmp/fam–

I am attempting to set up an email server on Ubuntu Natty based on postfix and using Courier’s imap interface. Emails are received into virtual mailboxes without problem and can then be retrieved and read using an imap client, but I am unable to send emails from the client. Mail.log includes numerous entries like <time> <hostname> imapd: Failed to connect to socket /tmp/fam--.

Apparently /tmp/fam-- is part of the interface to fam (or in the case of a Ubuntu server) gamin, which monitors the mailbox files allowing Courier to learn of new emails immediately. From what I am able to determine, this is related to Courier’s File Alteration Monitor, which allows multiple clients to open the same folder concurrently and to receive updates to folder contents in realtime. I had hoped that setting IMAP_ENHANCEDIDLE to 0 in /etc/courier/imapd would eliminate the dependency, eliminate further /tmp/fam– errors and allow emails to start being sent. No such luck.

Gamin is installed in the system and ps -A|grep gam finds gam_server running. Maybe there is a configuration problem, but I don’t see any relevant config options, either for Courier or for Gamin.

Searching for advise on this problem, I’ve found several references that suggest that gamin tends to grow over time (memory leak) and needs to be killed periodically. It sounds like it introduces more trouble than it’s worth and is not essential to imapd.

At this point, I am inclined to compile courier-imap without FAM dependency and replace what was installed by apt-get, but I hesitate to do so, fearing that I will open up an even larger can of worms by doing so.

Any suggestions on how to get imapd talking to gamin? Am I right to want to just drop use of gamin by imapd? Any tips, advice or cautions on recompiling courier-imapd without FAM dependency?


Leave a Reply