Since an upgrade to 2.0.1 from 1.2.x we're seeing this on (mostly) large mailboxes (Maildir) Sep 4 11:27:25 dovecot: dict: mysql: Connected to 192.168.dd.dd (accounts) ... Sep 4 11:27:46 kelly-a dovecot: lda(u1 at example.com):): msgid=<123 at xxx>: saved mail to INBOX Sep 4 11:27:47 dovecot: dict: Error: sql dict: commit failed: Not connected to database Sep 4 11:27:47 dovecot: imap(u1 at example.com): Error: dict quota: Quota update failed, it's now desynced The dict is MySQL on another server, same switch. It does appear that the quota gets out of sync. From the entries I checked an email is often being delivered shortly before the error (as above). But I also see it happen with the lda: Sep 4 08:27:11 dovecot: pop3(u2 at example.com): Disconnected: Logged out... Sep 4 08:42:48 dovecot: lda(u2 at example.com): msgid=<123 at aaa>: saved mail to INBOX Sep 4 08:43:26 dovecot: lda(u2 at example.com): msgid=<123 at bbb>: saved mail to INBOX Sep 4 08:43:26 dovecot: dict: Error: sql dict: commit failed: Not connected to database Sep 4 08:43:26 dovecot: lda(u2 at example.com): Error: dict quota: Quota update failed, it's now desynced Sep 4 08:46:14 dovecot: pop3-login: Login: user=<u2 at example.com>,... This is happening on two different dovecot servers. The only thing they share is the MySQL server, but it has a load of 0.5 at peak. Is there something that can be tuned to keep this from happening? Possibly relevant entries from `doveconf -n`. Any tuning regarding dict can be assumed as default: maildir_very_dirty_syncs = yes mail_plugins = quota plugin { quota = dict:user:%LTd-%LTn:proxy::quota } Thanks! David
On Sat, 2010-09-04 at 12:17 -0700, David Jonas wrote:> Sep 4 11:27:47 dovecot: dict: Error: sql dict: commit failed: Not > connected to databaseHmm. dict process thinks that all of its SQL connections are in use. Although why that happens is slightly strange, because unless you changed the defaults one process can handle only a single client connection at a time, and normally one client wouldn't be sending multiple requests simultaneously. There is anyway a potential problem with an asynchronous SQL query not being finished when a synchronous SQL query is started. Although that's a problem only with PostgreSQL, not MySQL. Anyway, should be fixed some day.. Well, see if this helps: http://hg.dovecot.org/dovecot-2.0/rev/902f008f17cf
Possibly Parallel Threads
- race condition? -> Error: dict quota: Quota update failed, it's now desynced
- Dict quota calculation errors "remote disconnected"/"broken pipe" on 2.22.
- "No such file or directory" error setting up dict quota for mdbox
- Dict quota calculation errors "remote disconnected"/"broken pipe" on 2.22.
- Message Stopped by Bothways : Block Greater than 40 recip