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 ...


Reply via email to