Commit cb28cf8d authored by unknown's avatar unknown
Browse files

Fix a Valgrind leak error report for not freed binlog injector singleton.


sql/mysqld.cc:
  Free the binlog injector singleton during shutdown.
sql/rpl_injector.cc:
  Add free_instance() method.
sql/rpl_injector.h:
  Add free_instance() method.
parent 78deb348
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -28,6 +28,10 @@

#include "ha_myisam.h"

#ifdef HAVE_ROW_BASED_REPLICATION
#include "rpl_injector.h"
#endif

#ifdef WITH_INNOBASE_STORAGE_ENGINE
#define OPT_INNODB_DEFAULT 1
#else
@@ -1183,6 +1187,9 @@ void clean_up(bool print_message)
    what they have that is dependent on the binlog
  */
  ha_binlog_end(current_thd);
#ifdef HAVE_ROW_BASED_REPLICATION
  injector::free_instance();
#endif
  mysql_bin_log.cleanup();

#ifdef HAVE_REPLICATION
+10 −0
Original line number Diff line number Diff line
@@ -155,6 +155,16 @@ injector *injector::instance()
  return s_injector;
}

void injector::free_instance()
{
  injector *inj = s_injector;

  if (inj != 0)
  {
    s_injector= 0;
    delete inj;
  }
}


injector::transaction injector::new_trans(THD *thd)
+5 −0
Original line number Diff line number Diff line
@@ -59,6 +59,11 @@ class injector
  */
  static injector *instance();

  /*
    Delete the singleton instance (if allocated). Used during server shutdown.
  */
  static void free_instance();

    /*
      A transaction where rows can be added.