• unknown's avatar
    Bug#25396 · d48e864f
    unknown authored
      "Valgrind leak in closecon_handlerton"
      plugin_shutdown() calls plugin_deinitialize() which calls ha_finalize_handlerton().
      ndbcluster_end() fails to wait for the ndb utility thread to exit which results in
      the handlerton struct being freed before the ndb utility thread has destroyed it's THD
      but before the plugin has been marked as UNINITIALIZED
    
    Bug is caused by misuse of abort_loops variable and not locking mutex during calls to
    pthread condition variable functions causing a race in valgrind's pthread_cond_wait
    implementation.
    
    
    sql/ha_ndbcluster.cc:
      Bug25396
      Valgrind requires that mutex be held during call to pthread_cond_signal.
      Change pthread_cond_timedwait() to pthread_cond_wait() where the timeout is not needed.
      Ensure that appropiate variables are protected by mutex.
      Remove use of abort_loop global variable.
      Ensure that ndbcluster_end waits for util thread to exit.
      Add an extra cond_var as insurance against non-conforming pthreads implementations.
    sql/mysqld.cc:
      Bug25386
      Valgrind requires that mutex be held during call to pthread_cond_signal.
    BUILD/compile-amd64-valgrind-max:
      New BitKeeper file ``BUILD/compile-amd64-valgrind-max''
    d48e864f
compile-amd64-valgrind-max 870 Bytes