I just upgraded to the latest 2.0 CVS and dbmail-imap is really slow compared to my old 1.X install using imapd.
Background: Db is MyISAM (was Innodb and I switched the tables to MyISAM and it did not improve the situation) My imap inbox has 21000 items. On this account, I'm using thunderbird and it literally times-out waiting for dbmail-imapd. On another account with 4000 items, it takes about 7 seconds (initially, before the connection is cached) to check mail. Previously, both accounts took just a few seconds to check for new messages. I checked the mysql and all the queries in the maillog from imapd only take 1 second or less to execute, even with 21000 records, so this is not db bound. dbmail-impad just takes forever, chewing up 99% cpu doing some operation. Dbmail-imapd chews up 99% cpu at the last entry of the log and seem to "stall" there for the 21000 item inbox: (the last query takes 0.3 second to execute with 21000 records returned via mysql) Oct 23 14:40:06 mail dbmail/imap4d[10672]: COMMAND: [11 UID fetch 1:* (FLAGS)] Oct 23 14:40:06 mail dbmail/imap4d[10672]: arg[0]: 'fetch' Oct 23 14:40:06 mail dbmail/imap4d[10672]: arg[1]: '1:*' Oct 23 14:40:06 mail dbmail/imap4d[10672]: arg[2]: '(' Oct 23 14:40:06 mail dbmail/imap4d[10672]: arg[3]: 'FLAGS' Oct 23 14:40:06 mail dbmail/imap4d[10672]: arg[4]: ')' Oct 23 14:40:06 mail dbmail/imap4d[10672]: IMAPClientHandler(): Executing command uid... Oct 23 14:40:06 mail dbmail/imap4d[10672]: db.c,db_acl_has_right: checking ACL for user [12] on mailbox [33] Oct 23 14:40:06 mail dbmail/imap4d[10672]: dbmysql.c,db_query: executing query [SELECT mailbox_idnr FROM dbmail_mailboxes WHERE mailbox_idnr = '33' AND owner_idnr = '12'] Oct 23 14:40:06 mail dbmail/imap4d[10672]: next_fetch_item(): args[idx = 2] = FLAGS (returning 3) Oct 23 14:40:06 mail dbmail/imap4d[10672]: ic_fetch(): no parsing at all Oct 23 14:40:06 mail dbmail/imap4d[10672]: dbmysql.c,db_free_result: Trying to free result set that is already NULL! Oct 23 14:40:06 mail dbmail/imap4d[10672]: dbmysql.c,db_query: executing query [SELECT seen_flag, answered_flag, deleted_flag, flagged_flag, draft_flag, recent_flag, DATE_FORMAT(internal_date, '%Y-%m-%d %T'), rfcsize, message_idnr FROM dbmail_messages msg, dbmail_physmessage pm WHERE pm.id = msg.physmessage_id AND message_idnr BETWEEN '1' AND '1188002' AND mailbox_idnr = '33' AND status < '2' AND unique_id != '' ORDER BY message_idnr ASC] Am I doing something wrong? Any help would be appreciated. Xing Li