A BUGNOTE has been added to this bug. ====================================================================== http://www.dbmail.org/mantis/bug_view_advanced_page.php?bug_id=0000122 ====================================================================== Reported By: va1210 Assigned To: ====================================================================== Project: DBMail Bug ID: 122 Category: IMAP daemon Reproducibility: always Severity: minor Priority: normal Status: new ====================================================================== Date Submitted: 24-Nov-04 23:36 CET Last Modified: 25-Nov-04 12:24 CET ====================================================================== Summary: Error when marking new mail as read in Outlook Express Description: When I receive new mail in Outlook Express via IMAP and try to mark it as read, I get the following error:
An unknown error has occurred: invalid message range specified Configuration: Account: ##### Server: ##### User name: ##### Protocol: IMAP Port: 143 Secure(SSL): 0 Code: 800cccd3 According to the mailbox, the mail is not marked as read. However, after I restart Outlook Express the mail is marked as read. I've tried the same with Mozilla Thunderbird 0.9, but it doesn't have any trouble marking new mail as read. After switching IMAP to TRACELEVEL=5, I get the following in the log when I receive the error: Nov 25 00:17:17 [dbmail/imap4d] COMMAND: [3oj4 UID STORE 12552 +FLAGS.SILENT (\Seen)] When I mark new mail as read in Mozilla Thunderbird 0.9 without trouble, the following appears in the log: Nov 25 00:18:06 [dbmail/imap4d] COMMAND: [58 uid store 12552 +Flags (\Seen)]_ ====================================================================== ---------------------------------------------------------------------- paul - 25-Nov-04 09:25 CET ---------------------------------------------------------------------- I'm unable to reproduce this bug on dbmail-2.0.1 with OE-6.0 Could you please include the relevant loglines from syslog after the line with COMMAND in it. ---------------------------------------------------------------------- va1210 - 25-Nov-04 10:15 CET ---------------------------------------------------------------------- Here's what I get when marking a freshly received mail as read (=when I get the error): Nov 25 11:10:13 [dbmail/imap4d] IMAPClientHandler(): line read for PID 21525_ Nov 25 11:10:13 [dbmail/imap4d] COMMAND: [0htd UID STORE 12623 +FLAGS.SILENT (\Seen)]_ Nov 25 11:10:13 [dbmail/imap4d] arg[0]: 'STORE'_ Nov 25 11:10:13 [dbmail/imap4d] arg[1]: '12623'_ Nov 25 11:10:13 [dbmail/imap4d] arg[2]: '+FLAGS.SILENT'_ Nov 25 11:10:13 [dbmail/imap4d] arg[3]: '('_ Nov 25 11:10:13 [dbmail/imap4d] arg[4]: '\Seen'_ Nov 25 11:10:13 [dbmail/imap4d] arg[5]: ')'_ Nov 25 11:10:13 [dbmail/imap4d] IMAPClientHandler(): Executing command uid..._ Nov 25 11:10:13 [dbmail/imap4d] db.c,db_acl_has_right: checking ACL for user [20] on mailbox [51] Nov 25 11:10:13 [dbmail/imap4d] dbmysql.c,db_query: executing query [SELECT mailbox_idnr FROM dbmail_mailboxes WHERE mailbox_idnr = '51' AND owner_idnr = '20'] Nov 25 11:10:13 [dbmail/imap4d] IMAPClientHandler(): Finished command uid_ Here's what I get after having switched mailboxes or closed OE and marked the mail as read (=no error): Nov 25 11:10:48 [dbmail/imap4d] IMAPClientHandler(): line read for PID 21525_ Nov 25 11:10:48 [dbmail/imap4d] COMMAND: [dvrh UID STORE 12623 +FLAGS.SILENT (\Seen)]_ Nov 25 11:10:48 [dbmail/imap4d] arg[0]: 'STORE'_ Nov 25 11:10:48 [dbmail/imap4d] arg[1]: '12623'_ Nov 25 11:10:48 [dbmail/imap4d] arg[2]: '+FLAGS.SILENT'_ Nov 25 11:10:48 [dbmail/imap4d] arg[3]: '('_ Nov 25 11:10:48 [dbmail/imap4d] arg[4]: '\Seen'_ Nov 25 11:10:48 [dbmail/imap4d] arg[5]: ')'_ Nov 25 11:10:48 [dbmail/imap4d] IMAPClientHandler(): Executing command uid..._ Nov 25 11:10:48 [dbmail/imap4d] db.c,db_acl_has_right: checking ACL for user [20] on mailbox [51] Nov 25 11:10:48 [dbmail/imap4d] dbmysql.c,db_query: executing query [SELECT mailbox_idnr FROM dbmail_mailboxes WHERE mailbox_idnr = '51' AND owner_idnr = '20'] Nov 25 11:10:48 [dbmail/imap4d] dbmysql.c,db_free_result: Trying to free result set that is already NULL! - Last output repeated 5 times - Nov 25 11:10:48 [dbmail/imap4d] dbmysql.c,db_query: executing query [UPDATE dbmail_messages SET seen_flag=1 WHERE message_idnr BETWEEN '12623' AND '12623' AND status < '2' AND mailbox_idnr = '51'] Nov 25 11:10:48 [dbmail/imap4d] IMAPClientHandler(): Finished command uid_ ---------------------------------------------------------------------- paul - 25-Nov-04 12:24 CET ---------------------------------------------------------------------- Ok. Bug confirmed. I've been looking at the command profile for OE. Seems like OE logs in anew in a separate thread when the user issues a send/recv. This implies that whenever dbmail hits an 'invalid message range' error the mailbox in question has to be resynced. This doesn't just affect _ic_store like in this instance, but also _ic_copy, and possibly _ic_fetch. db_getmailbox(&ud->mailbox); after checking for ud->state==IMAPCS_SELECTED Bug History Date Modified Username Field Change ====================================================================== 24-Nov-04 23:36va1210 New Bug 25-Nov-04 09:25paul Bugnote Added: 0000377 25-Nov-04 10:15va1210 Bugnote Added: 0000378 25-Nov-04 12:24paul Bugnote Added: 0000380 ======================================================================