• MySQL Build Team's avatar
    Backport into build-200906240007-5.1.34sp1 · 38094c04
    MySQL Build Team authored
    > ------------------------------------------------------------
    > revno: 2852.1.15
    > revision-id: davi.arnaut@sun.com-20090409152525-b4vnj9atidmjh0mf
    > parent: luis.soares@sun.com-20090409113044-2072kufy5efeohpp
    > committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    > branch nick: 43706-5.1
    > timestamp: Thu 2009-04-09 12:25:25 -0300
    > message:
    >   Bug#43706: libmysqld segfaults when re-intialised
    >   Bug#44091: libmysqld gets stuck waiting on mutex on initialization
    >   
    >   The problem was that libmysqld wasn't enforcing a certain
    >   initialization and deinitialization order for the mysys
    >   library. Another problem was that the global object used
    >   for management of log event handlers (aka LOGGER) wasn't
    >   being prepared for a possible reutilization.
    >   
    >   What leads to the hang/crash reported is that a failure
    >   to load the language file triggers a double call of the
    >   cleanup functions, causing an already destroyed mutex to
    >   be used.
    >   
    >   The solution is enforce a order on the initialization and
    >   deinitialization of the mysys library within the libmysqld
    >   library and to ensure that the global LOGGER object reset
    >   it's internal state during cleanup.
    38094c04
my_init.c 14.2 KB