[Dovecot] net_connect_unix(/var/run/dovecot/dict-server) failed: Resource temporarily unavailable

Jerrale G jerrale at sheltoncomputers.com
Thu Aug 12 12:18:59 EEST 2010


  On 8/11/2010 4:06 AM, Jerrale G wrote:
>  On 8/11/2010 3:50 AM, Jerrale G wrote:
>>  On 8/10/2010 3:16 PM, Jerrale G wrote:
>>> chmod -R 775 /var/run/dovecot
>>> dovecot &
>>> Warning: Corrected permissions for login directory 
>>> /var/run/dovecot/login
>>> ls -l /var/run/dovecot
>>> srw-rw-rw- 1 root root       0 Aug 10 15:02 auth-master
>>> srw------- 1 mail mail       0 Aug 10 15:02 auth-worker.2774
>>> srwxrwxrwx 1 root root       0 Aug 10 15:02 dict-server
>>> lrwxrwxrwx 1 root root      17 Aug 10 15:02 dovecot.conf -> 
>>> /etc/dovecot.conf
>>> drwxr-x--- 2 root dovecot 4096 Aug 10 15:02 login
>>> -rw------- 1 root root       5 Aug 10 15:02 master.pid
>>>
>>> Everything works, eventually. All mail will sooner or later get 
>>> delivered, using dovecot LDA from postfix, but these errors rampage 
>>> the log several times. I recently added managesieve, expires, and 
>>> finished the quota which I thought was achived by simply having 
>>> quota_rule as a result of mysql.
>>>
>>> Aug 10 15:07:57 server1 dovecot: IMAP(someone at sheltoncomputers.com): 
>>> read(/var/run/dovecot/dict-server) failed: Timeout after 30 seconds
>>> Aug 10 15:07:57 server1 dovecot: dict: Fatal: 
>>> dict_driver_register(mysql): Already registered
>>> Aug 10 15:08:09 server1 last message repeated 4428 times
>>>
>>> On another note, Thunderbird is starting to get on my nerves, 
>>> sending this message before I was finished.
>>>
>>> Here is the relevant config:
>>>
>>> dovecot-mysql query:
>>>
>>> user_query = SELECT CONCAT('/home/mail/', mailboxes.domain, '/', 
>>> mailboxes.username, '/') AS home, CONCAT('/home/mail/', 
>>> mailboxes.domain, '/', mailboxes.username, '/sieve/', 
>>> mailboxes.username, '.sieve') as sieve, CONCAT('/home/mail/', 
>>> mailboxes.domain, '/', mailboxes.username, '/sieve/') as sieve_dir, 
>>> CONCAT('/home/mail/', mailboxes.domain, '/', mailboxes.username, 
>>> '/mail/') AS maildir, uid AS uid, gid AS gid, 
>>> CONCAT('maildir:storage=', ROUND(mailboxes.quota/1200), 'M') AS 
>>> quota_rule, 'Trash:ignore' AS quota_rule2 FROM mail.mailboxes WHERE 
>>> username = '%n' AND domain = '%d' AND active = '1'
>>>
>>> dovecot.conf:
>>> protocol managesieve {
>>>    listen = localhost:2001
>>>    managesieve_implementation_string = dovecot
>>>    managesieve_logout_format = bytes ( in=%i : out=%o )
>>>    mail_executable = /usr/libexec/dovecot/managesieve
>>>    login_executable =  /usr/libexec/dovecot/managesieve-login
>>> }
>>>
>>> auth_debug = no
>>> auth default {
>>>
>>> mechanisms = plain login
>>>
>>>   passdb sql {
>>>     args = /etc/dovecot/dovecot-mysql.conf
>>> #   scheme = cram-md5
>>>   }
>>>   userdb sql {
>>>     args = /etc/dovecot/dovecot-mysql.conf
>>>   }
>>>   user = mail
>>>   socket listen {
>>>     client {
>>>       path = /var/spool/postfix/private/auth
>>>       user = postfix
>>>       group = postfix
>>>       mode = 0660
>>>     }
>>>      master {
>>>     path = /var/run/dovecot/auth-master
>>>     mode = 0666
>>>    }
>>>   }
>>> }
>>> dict {
>>> #  # NOTE: dict process currently runs as root, so this file will be 
>>> owned as root.
>>> expire = mysql:/etc/dovecot/dict-expire.conf
>>> quotadict = mysql:/etc/dovecot/dict-quota.conf
>>> }
>>>
>>> plugin {
>>> quota = dict:user::proxy::quotadict
>>>
>>> expire = Trash 7 Trash/* 7 Spam 30
>>> expire_dict = proxy::expire
>>> expire_altmove = * 2555
>>>
>>> sieve_global_path = /home/mail/sieve/global.sieve
>>> sieve_global_dir = /home/mail/sieve
>>> sieve_dir=/home/mail/%d/%n/sieve
>>>
>>> }
>>>
>>> As said, everything works, eventually, but mail delivery is delayed 
>>> a lot.
>>>
>>> Thanks,
>>>
>>>
>>> Jerrale G
>> UPDATE: The expires dictionary was being used correctly as, with one 
>> day of use, there is 10000 records; I'm going to have to revise the 
>> mysql indexes for performance.
>>
>> Jerrale G,
>>
>> SCA
>

I took the latest snapshot of dovecot. The same error is still 
happening, with:
Aug 12 05:10:43 server1 postfix/pipe[23217]: 6966D330156: 
to=<someone at sheltoncomputers.com>, relay=dovecot, delay=90, 
delays=0.01/0.01/0/90, dsn=2.0.0, status=sent (delivered via dovecot 
service)
Aug 12 05:10:43 server1 postfix/qmgr[14485]: 6966D330156: removed
Aug 12 05:10:43 server1 dovecot: dict: Fatal: 
dict_driver_register(mysql): Already registered

This happens every time someone logs in.

I will keep the snapshot running, mainly due to the working IDLE. Even 
though it didn't fix this part of the dict process, the crash, as the 
read patch said, is fixed AND the imap process doesn't freeze anymore, 
an earlier effect of this other dictionary error (with 1.2.13):
Aug 12 05:10:43 server1 dovecot: dict: Fatal: 
dict_driver_register(mysql): Already registered

Meaning, even though the error isn't fixed, it doesn't cause any side 
effects, as of a twenty minute rigourous test, like the mentioned 
freezing of the imap process causing the various IMAP clients to freeze.

I have only the same patch, managesieve 0.11.11, which doesn't effect 
the dictionary process. With luck, you hadn't change anything and leave 
it open, causing an incomplete build; This allowed this snapshot to 
work. If you need me to tar up this source I will or you can just take a 
snapshot recent to the time of this email and apply the managesieve 
0.11.11 patch to get the exact same source as I have.

I await either 2.0 production or a dovecot 1.2.14, whichever is sooner 
to come. Until then, Im pretty sure this snapshot is secure due to the 
very recent release of 1.2.13, hopefully :-~

Jerrale G
SC Senior Admin




More information about the dovecot mailing list