Commit 7072a63a authored by unknown's avatar unknown
Browse files

ndb - bug#20683

  part 1 - make sure return code is propagated from request tracker


ndb/src/kernel/vm/RequestTracker.hpp:
  propagate return value
ndb/src/kernel/vm/SafeCounter.hpp:
  make sure object is not initialized in case of seize() failure, to make sure destructor doesnt assert
parent 505c2b3d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -26,12 +26,12 @@ public:
  void init() { m_confs.clear(); m_nRefs = 0; }

  template<typename SignalClass>
  void init(SafeCounterManager& mgr,
  bool init(SafeCounterManager& mgr,
	    NodeReceiverGroup rg, Uint16 GSN, Uint32 senderData)
  {
    init();
    SafeCounter tmp(mgr, m_sc);
    tmp.init<SignalClass>(rg, GSN, senderData);
    return tmp.init<SignalClass>(rg, GSN, senderData);
  }

  bool ignoreRef(SafeCounterManager& mgr, Uint32 nodeId)
+14 −8
Original line number Diff line number Diff line
@@ -230,10 +230,13 @@ inline
bool
SafeCounter::init(NodeReceiverGroup rg, Uint16 GSN, Uint32 senderData){
  
  bool b = init<Ref>(rg.m_block, GSN, senderData);
  if (init<Ref>(rg.m_block, GSN, senderData))
  {
    m_nodes = rg.m_nodes;
    m_count = m_nodes.count();
  return b;
    return true;
  }
  return false;
}

template<typename Ref>
@@ -241,10 +244,13 @@ inline
bool
SafeCounter::init(NodeReceiverGroup rg, Uint32 senderData){
  
  bool b = init<Ref>(rg.m_block, Ref::GSN, senderData);
  if (init<Ref>(rg.m_block, Ref::GSN, senderData))
  {
    m_nodes = rg.m_nodes;
    m_count = m_nodes.count();
  return b;
    return true;
  }
  return false;
}

inline