On Oct 6, 7:15 pm, Chuck Weinstock <[EMAIL PROTECTED]> wrote:
> We were experiencing periodic crashes of memcached 1.2.5 (every couple
> of days) and upgraded to memcached 1.2.6 on Saturday. It crashed
> today. How can I help you debug it?

  There have been a number of crash fixes since 1.2.6.  I'm a bit
confused as to whose trees have what, though.  This is my view of
1.2.6 to master:

1c3c4c0d7a59ebe61ace685794789f2179c482bb
Author: Cosimo Streppone <[EMAIL PROTECTED]>
Date:   Thu Jun 19 08:29:10 2008 -0700

    Another buffer overrun fix.

commit 5bf5dee3754dc5cb13eeb45642a8397a89e4c617
Author: Dustin Sallings <[EMAIL PROTECTED]>
Date:   Wed Jun 18 12:11:50 2008 -0700

    Allocate new conn structures with calloc.

    Janusz Dziemidowicz reported conn->next was sometimes not
initialized.
    This would have been the case for any client connection, or any
    listener connection that wasn't tcp.

commit 74d52354bb720d08f9554d91fd781032ad2aa8e3
Author: Tomash Brechko <[EMAIL PROTECTED]>
Date:   Wed Jun 18 11:31:54 2008 -0700

    Fix heap corruption when copying too much data onto an item.

    (Dustin:)
    I wrote a fuzz test that would consistently crash in assoc_find,
but
    after this change the test failed to break things and my fuzz
    generator couldn't produce another breaking case.

commit 0ebdf6d38cd65cca31885e8e7e2f4c7ac4888279
Author: Dustin Sallings <[EMAIL PROTECTED]>
Date:   Wed Jun 18 11:30:22 2008 -0700

    Use calloc for allocating the hash table vs. malloc+memset.

    calloc is already used to resize the hash table, so it's good to
be
    consistent here.

commit 6ec16c4ad2e8274e23d3c1c2111a8a6a2f99d3b4
Author: Dustin Sallings <[EMAIL PROTECTED]>
Date:   Fri Jun 13 09:01:12 2008 -0700

    Fix freesuffix corruption.

    When attempting to grow the freesuffix storage, the realloc is
sized
    to the number of bytes in freesuffixtotal instead of a number of
    pointers of that size.

    That is, the original malloc is for

      sizeof(char *) * freesuffixtotal

    but the realloc for growth was

      freesuffixtotal * 2

    On a 32-bit machine, this would have the effect of freeing half of
    the freelist when an attempt was made to grow it.

    The realloc is now consistent with the initial malloc.

Reply via email to