Commit 00985ac9 authored by unknown's avatar unknown
Browse files

valgrind leak

- no injected events if operation is not connected
- remove extra valgrind checks


sql/ha_ndbcluster_binlog.cc:
  removed extra valgrind check
storage/ndb/src/ndbapi/NdbEventOperationImpl.cpp:
  valgrind leak
  - no injected events if operation is not connected
parent b15f6e2d
Loading
Loading
Loading
Loading
+0 −13
Original line number Diff line number Diff line
@@ -19,10 +19,6 @@
#ifdef WITH_NDBCLUSTER_STORAGE_ENGINE
#include "ha_ndbcluster.h"

#ifdef HAVE_purify
#include <valgrind/memcheck.h>
#endif

#ifdef HAVE_NDB_BINLOG
#include "rpl_injector.h"
#include "rpl_filter.h"
@@ -3492,9 +3488,6 @@ pthread_handler_t ndb_binlog_thread_func(void *arg)
  pthread_cond_signal(&injector_cond);

restart:
#ifdef HAVE_purify
  VALGRIND_DO_LEAK_CHECK;
#endif
  /*
    Main NDB Injector loop
  */
@@ -3587,9 +3580,6 @@ pthread_handler_t ndb_binlog_thread_func(void *arg)
      }
    }
  }
#ifdef HAVE_purify
  VALGRIND_DO_LEAK_CHECK;
#endif
  {
    static char db[]= "";
    thd->db= db;
@@ -3956,9 +3946,6 @@ pthread_handler_t ndb_binlog_thread_func(void *arg)
    goto restart;
  }
err:
#ifdef HAVE_purify
  VALGRIND_DO_LEAK_CHECK;
#endif
  sql_print_information("Stopping Cluster Binlog");
  DBUG_PRINT("info",("Shutting down cluster binlog thread"));
  thd->proc_info= "Shutting down";
+28 −26
Original line number Diff line number Diff line
@@ -1611,17 +1611,24 @@ NdbEventBuffer::insert_event(NdbEventOperationImpl* impl,
                             Uint32 &oid_ref)
{
  NdbEventOperationImpl *dropped_ev_op = m_dropped_ev_op;
  DBUG_PRINT("info", ("gci: %u", data.gci));
  do
  {
    do
    {
      if (impl->m_node_bit_mask.get(0u))
      {
        oid_ref = impl->m_oid;
        insertDataL(impl, &data, ptr);
      }
      NdbEventOperationImpl* blob_op = impl->theBlobOpList;
      while (blob_op != NULL)
      {
        if (blob_op->m_node_bit_mask.get(0u))
        {
          oid_ref = blob_op->m_oid;
          insertDataL(blob_op, &data, ptr);
        }
        blob_op = blob_op->m_next;
      }
    } while((impl = impl->m_next));
@@ -1806,6 +1813,7 @@ NdbEventBuffer::insertDataL(NdbEventOperationImpl *op,
    switch (operation)
    {
    case NdbDictionary::Event::_TE_NODE_FAILURE:
      DBUG_ASSERT(op->m_node_bit_mask.get(0u) != 0);
      op->m_node_bit_mask.clear(SubTableData::getNdbdNodeId(ri));
      DBUG_PRINT("info",
                 ("_TE_NODE_FAILURE: m_ref_count: %u for op: %p id: %u",
@@ -1821,8 +1829,7 @@ NdbEventBuffer::insertDataL(NdbEventOperationImpl *op,
      DBUG_RETURN_EVENT(0);
      break;
    case NdbDictionary::Event::_TE_CLUSTER_FAILURE:
      if (op->m_node_bit_mask.get(0))
      {
      DBUG_ASSERT(op->m_node_bit_mask.get(0u) != 0);
      op->m_node_bit_mask.clear();
      DBUG_ASSERT(op->m_ref_count > 0);
      // remove kernel reference
@@ -1840,11 +1847,6 @@ NdbEventBuffer::insertDataL(NdbEventOperationImpl *op,
        DBUG_PRINT("info", ("m_ref_count: %u for op: %p",
                            op->theMainOp->m_ref_count, op->theMainOp));
      }
      }
      else
      {
        DBUG_ASSERT(op->m_node_bit_mask.isclear() != 0);
      }
      break;
    case NdbDictionary::Event::_TE_STOP:
      DBUG_ASSERT(op->m_node_bit_mask.get(0u) != 0);