On 21 May 2015, at 18:47, Cassidy Larson <[email protected]> wrote:
> 
> I've been seeing this same error as well now:
> 
> Fatal: master: service(indexer-worker): child 20979 killed with signal 6 
> (core not dumped - set service indexer-worker { drop_priv_before_exec=yes })
> Panic: file charset-iconv.c: line 132 (charset_to_utf8): assertion failed: 
> (*src_size - pos <= CHARSET_MAX_PENDING_BUF_SIZE)
> 
> It's only shown up on one particular user, and after tracking down the 
> message(s) that caused it I found out that there were two identical messages 
> with the same exact MD5/SHA hashes from our storage server in 2012 or so.  
> Removing one of the duplicates fixed it for me.  Not sure how that happened, 
> but wonder if it's worth checking for?

What OS or Linux distro are you using?

> 
> Thanks,
> 
> -c
> 
> On Sat, May 16, 2015 at 3:32 AM, Timo Sirainen <[email protected] 
> <mailto:[email protected]>> wrote:
> On 16 May 2015, at 09:39, Xin Li <[email protected] 
> <mailto:[email protected]>> wrote:
> >
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA512
> >
> > Hi,
> >
> > On 5/15/15 10:58, Xin Li wrote:
> >> Hi,
> >>
> >> I have seen the following assertion fails on my own mail server
> >> (indexer-worker):
> >>
> >> Panic: file charset-iconv.c: line 132 (charset_to_utf8): assertion
> >> failed: (*src_size - pos <= CHARSET_MAX_PENDING_BUF_SIZE)
> >
> > I've managed to narrow down the issue to one mail, and can reliably
> > trigger the assertion with 'doveadm index -u user INBOX' with only that
> > email.
> 
> Can you send me some mail that triggers the crash? I'm having trouble 
> reproducing.
> 
> > Maybe we should reset the iconv descriptor after each full conversion?
> > i.e.:
> >
> > diff -r 91bbd6753689 src/lib-mail/message-decoder.c
> > - --- a/src/lib-mail/message-decoder.c    Thu May 14 23:49:12 2015 +0300
> > +++ b/src/lib-mail/message-decoder.c    Fri May 15 22:52:41 2015 -0700
> > @@ -347,6 +347,8 @@
> >                                 sizeof(ctx->translation_buf));
> >                        memcpy(ctx->translation_buf, data + pos,
> >                               ctx->translation_size);
> > +               } else {
> > +                       charset_to_utf8_reset(ctx->charset_trans);
> >                }
> 
> I think the fix probably belongs to charset-iconv.c
> 

Reply via email to