Very annoying IMAP problem (cyrus + Outlook)
Denis BUCHER
dbucherml at hsolutions.ch
Thu Sep 11 14:33:50 EDT 2008
Strange but it doesn't appear in the transaction logs.
Anyway, we think we solved the problem by deleting messages marked as
being deleted ! ("Expunge" AFAIK ?)
I'll keep you posted in case of new information/discoveries/solutions
Denis
Wesley Craig a écrit :
> On 01 Sep 2008, at 14:50, Denis BUCHER wrote:
>> What should I do next to solve my problem ?
>
> There are actually a couple of places cyrus might give the fatal error
> "word too long". The prot routines should be recording the interactions
> before passing the data up to the imap layer where the parsing error
> occurs. Are there any long lines in your telemetry? The bad line
> should directly proceed "* BYE Fatal error: word too long" in the
> telemetry (if I'm reading imapd's fatal() routine correctly).
>
> AFAIK, there's nothing to be done other than adjusting the MAXWORD
> and/or MAXQUOTED limits. That means upgrading or recompiling the old
> version that you're on.
>
> :wes
>
>> Denis BUCHER a écrit :
>>> David Carter a écrit :
>>>> On Fri, 22 Aug 2008, Denis BUCHER wrote:
>>>>> As far as I understand, the cause of the problem is : * "Outlook is
>>>>> sending either a token or quoted string that is longer than 8K bytes."
>>>> Your problem is a mailbox which contains several thousand messages.
>>>> Possibly several thousand messages which Outlook hasn't seen
>>>> previously.
>>>>
>>>> Outlook tries to construct a single IMAP command of the form:
>>>>
>>>> UID FETCH uid,uid,uid,... <some set of fields>
>>>>
>>>> where the list of UIDs is larger than 8 KBytes in size.
>>>
>>> Ok that's what I have :
>>>
>>> a) Logs are present
>>> # ls -l /var/lib/imap/log/dbucher
>>> total 2508
>>> -rw------- 1 cyrus mail 355147 Aug 22 14:43 20235
>>> -rw------- 1 cyrus mail 5327 Aug 22 14:43 25058
>>> -rw------- 1 cyrus mail 10654 Aug 22 14:54 25415
>>> -rw------- 1 cyrus mail 355241 Aug 22 15:24 25416
>>> -rw------- 1 cyrus mail 355537 Aug 22 15:03 25417
>>> -rw------- 1 cyrus mail 355147 Aug 22 14:48 25576
>>> -rw------- 1 cyrus mail 5327 Aug 22 14:59 26381
>>> -rw------- 1 cyrus mail 5327 Aug 22 15:04 26763
>>> -rw------- 1 cyrus mail 355443 Aug 22 15:15 26765
>>> -rw------- 1 cyrus mail 5327 Aug 22 15:09 27095
>>> -rw------- 1 cyrus mail 5327 Aug 22 15:14 27752
>>> -rw------- 1 cyrus mail 360146 Aug 22 15:19 28135
>>> -rw------- 1 cyrus mail 5327 Aug 22 15:24 28463
>>> -rw------- 1 cyrus mail 5327 Aug 22 15:29 29125
>>> -rw------- 1 cyrus mail 355147 Aug 22 15:29 29127
>>>
>>> b) That's the UID FETCH :
>>> # grep "UID FETCH" *
>>> 20235:<1219408982<jbf7 UID FETCH 7136:* (UID FLAGS RFC822.SIZE
>>> BODY.PEEK[HEADER] INTERNALDATE)
>>> 20235:<1219408982<eke2 UID FETCH 1:7135 (UID FLAGS)
>>> 25416:<1219411440<kb1u UID FETCH 7136:* (UID FLAGS RFC822.SIZE
>>> BODY.PEEK[HEADER] INTERNALDATE)
>>> 25416:<1219411440<qv47 UID FETCH 1:7135 (UID FLAGS)
>>> 25417:<1219409521<1ozq UID FETCH 7136:* (UID FLAGS RFC822.SIZE
>>> BODY.PEEK[HEADER] INTERNALDATE)
>>> 25417:<1219409521<h7ki UID FETCH 1:7135 (UID FLAGS)
>>> 25576:<1219409287<ukf6 UID FETCH 7136:* (UID FLAGS RFC822.SIZE
>>> BODY.PEEK[HEADER] INTERNALDATE)
>>> 25576:<1219409287<9vks UID FETCH 1:7135 (UID FLAGS)
>>> 26765:<1219410214<y8b2 UID FETCH 7136:* (UID FLAGS RFC822.SIZE
>>> BODY.PEEK[HEADER] INTERNALDATE)
>>> 26765:<1219410214<b685 UID FETCH 1:7135 (UID FLAGS)
>>> 28135:<1219411131<7bfi UID FETCH 7136:* (UID FLAGS RFC822.SIZE
>>> BODY.PEEK[HEADER] INTERNALDATE)
>>> 28135:<1219411131<dkkx UID FETCH 1:7135 (UID FLAGS)
>>> 29127:<1219411745<4g4y UID FETCH 7136:* (UID FLAGS RFC822.SIZE
>>> BODY.PEEK[HEADER] INTERNALDATE)
>>> 29127:<1219411745<cos6 UID FETCH 1:7135 (UID FLAGS)
>>>
>>> c) Most sessions in the logs seem to finish correctly :
>>> ...
>>> <1219411787<DONE
>>> ZZZZ LOGOUT
>>>> 1219411787>5mk6 OK Completed
>>> * BYE LOGOUT received
>>> ZZZZ OK Completed
>>>
>>> d) But not all :
>>> ==> 30887 <==
>>>> 1219413279>91rc OK Completed
>>> <1219413279<6leo IDLE
>>>> 1219413279>+ idling
>>> <1219413343<DONE
>>>> 1219413343>6leo OK Completed
>>> <1219413343<351h UID STORE 7136 +FLAGS (\Deleted \Seen)
>>>> 1219413343>* 7136 FETCH (FLAGS (\Deleted \Seen) UID 7136)
>>> 351h OK Completed
>>> <1219413343<dpau IDLE
>>>> 1219413343>+ idling
>>> [end of file]
>>>
>>> e) And there are many "Fatal error: word too long" but not with same
>>> number...
>>> Aug 22 14:43:03 atlantic imaps[25050]: Fatal error: word too long
>>> Aug 22 14:48:08 atlantic imaps[25063]: Fatal error: word too long
>>> Aug 22 14:53:24 atlantic imaps[17518]: Fatal error: word too long
>>> Aug 22 14:58:28 atlantic imaps[26379]: Fatal error: word too long
>>> Aug 22 15:03:34 atlantic imaps[26776]: Fatal error: word too long
>>> Aug 22 15:08:40 atlantic imaps[27118]: Fatal error: word too long
>>> Aug 22 15:13:45 atlantic imaps[27749]: Fatal error: word too long
>>> Aug 22 15:18:51 atlantic imaps[27174]: Fatal error: word too long
>>> Aug 22 15:24:01 atlantic imaps[28464]: Fatal error: word too long
>>> Aug 22 15:29:06 atlantic imaps[29123]: Fatal error: word too long
>>>
>>> Normally the watched account having had "Fatal error", I should find a
>>> fatal error in the transactions logs ? Or is nothing written in case of
>>> a Fatal error ? (Which I hope not ;-)
>
Denis Bucher
--
Denis Bucher Horus Digital Solutions sàrl Each problem has a solution
___________________________________________________________________________
Tél. +41-22-8000625 Fax: +41-22-8000622 www.hsolutions.ch
More information about the Info-cyrus
mailing list