Does this still happen?  Have you tried reconstructing the mailbox?

Any further debugging data?  A gdb backtrace?

Larry

--On Wednesday, November 22, 2000 03:35:14 PM -0800 Allan Rafuse 
<[EMAIL PROTECTED]> wrote:

> The code works fine 98% of the time, but some users it seems to
> core dump on them.  One user has this in their directory (8 Messages):
>
> total 768
> drwx------    2 cyrus    cyrus        4096 Nov 22 15:02 .
> drwx------   80 cyrus    cyrus        4096 Nov 21 17:08 ..
> -rw-------    1 cyrus    cyrus       87821 Oct 31 14:16 19.
> -rw-------    1 cyrus    cyrus      108143 Nov  2 09:35 20.
> -rw-------    1 cyrus    cyrus       66154 Nov  2 11:01 21.
> -rw-------    1 cyrus    cyrus       57438 Nov  3 15:36 22.
> -rw-------    1 cyrus    cyrus       99124 Nov  7 13:44 23.
> -rw-------    1 cyrus    cyrus      168465 Nov  9 19:22 24.
> -rw-------    1 cyrus    cyrus      111266 Nov 13 12:10 25.
> -rw-------    1 cyrus    cyrus        8091 Nov 13 17:02 26.
> -rw-------    1 cyrus    cyrus        8256 Nov 13 17:02 cyrus.cache
> -rw-------    1 cyrus    cyrus         149 Nov 20 14:47 cyrus.header
> -rw-------    1 cyrus    cyrus         460 Nov 13 17:02 cyrus.index
> -rw-------    1 cyrus    cyrus           0 Sep 22 11:03 cyrus.seen
>
> Cyrus blows up in the pop3d openinbox() code.  I manually
> changed the popd_exists (number of messages) to 3 and the
> code works.  Does anyone know any reasons why this code
> would core dump depending on the # of messages?  I rebooted
> the server to clear out all the memory and the problem would still
> persist.
>
>  -Allan
>
>
>    if (!r) {
>         popd_exists = mboxstruct.exists;
>         popd_exists = 3;
>         syslog(LOG_NOTICE, "GOING TO DIE! 2: %d\n", popd_exists + 1);
>         popd_highest = 0;
>         syslog(LOG_NOTICE, "GOING TO DIE! 3: %d\n", (popd_exists+1) *
>         sizeof(struct msg)); popd_msg = (struct msg
>         *)xmalloc((popd_exists+1) * sizeof(struct msg));
>         syslog(LOG_NOTICE, "IT IS DEAD!!........ NEVER SEE THIS LINE:
>         %d\n", popd_exists); for (msg = 1; msg <= popd_exists; msg++) {
>             if (r = mailbox_read_index_record(&mboxstruct, msg, &record))
>               break;
>             popd_msg[msg].uid = record.uid;
>             popd_msg[msg].size = record.size;
>             popd_msg[msg].deleted = 0;
>         }
>     }
>    syslog(LOG_NOTICE, "NEVER GETS HERE!!\n");
>
> <- Allan Rafuse ->
> Systems Administrator
> Freeview Publishing Inc.
> email: [EMAIL PROTECTED]
> web: http://www.freeview.com
>
>




Reply via email to