Okay, I'm CC'ng in the cyrus imapd developers, as I really haven't got a clue *grin* hopefully they will be better able to answer this ... On Wed, 14 Feb 2001, Vadim Zeitlin wrote: > On 14-Feb-01 The Hermit Hacker wrote: > > We're still getting what looks like the exact same crash when running the > > latest code from CVS: > > Hmm, no, I don't think it's the same crash. > > >#9 0x81f05d7 in imap_uid (stream=0x8455e00, msgno=57) at imap4r1.c:1423 > >#10 0x81d4925 in mail_uid (stream=0x8455e00, msgno=57) at mail.c:1695 > >#11 0x8198319 in MailFolderCC::UpdateMessageStatus (this=0x8487100, msgno=57) > > at mail/MailFolderCC.cpp:3374 > >#12 0x8197f90 in MailFolderCC::mm_flags (stream=0x8455e00, msgno=57) > > at mail/MailFolderCC.cpp:3272 > >#13 0x8199575 in mm_flags (stream=0x8455e00, msgno=57) > > at mail/MailFolderCC.cpp:3814 > > Ok, I do see the problem now. Let me explain it to you and, maybe, in > return you could explain me how to fix it :-) > > 1. you can't call cclient functions (mail_xxx) which do anything non trivial > from cclient callbacks (mm_yyy) > > 2. we call mail_uid() from mm_flags() handler > > 3. it seems to work most of the time because cclient maintains a cache and > so it doesn't need to call imap_uid() - which does "something non trivial" > - usually but just returns uid from the cache > > So in your case the cache is invalidated or hadn't been filled yet. The > solution is to either understand how can this happen (and why doesn't it > happen to me) or never call mail_uid() from any callback. The latter > would surely be better, but I don't know yet how to do it... > > > The IMAP server on the backend is a Cyrus IMAPd 2.0.9 server, if that > > makes any difference here? > > It probably does as I've done very few tests with this server - but > tested it much more with UW IMAPd. Not sure if there is some way of recreating this, but I have left your account active on my server if you want to use that to test with ...