Browse Source

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
pull/374/head
unknown 20 years ago
parent
commit
7072a63acd
  1. 4
      ndb/src/kernel/vm/RequestTracker.hpp
  2. 22
      ndb/src/kernel/vm/SafeCounter.hpp

4
ndb/src/kernel/vm/RequestTracker.hpp

@ -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)

22
ndb/src/kernel/vm/SafeCounter.hpp

@ -230,10 +230,13 @@ inline
bool
SafeCounter::init(NodeReceiverGroup rg, Uint16 GSN, Uint32 senderData){
bool b = init<Ref>(rg.m_block, GSN, senderData);
m_nodes = rg.m_nodes;
m_count = m_nodes.count();
return b;
if (init<Ref>(rg.m_block, GSN, senderData))
{
m_nodes = rg.m_nodes;
m_count = m_nodes.count();
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);
m_nodes = rg.m_nodes;
m_count = m_nodes.count();
return b;
if (init<Ref>(rg.m_block, Ref::GSN, senderData))
{
m_nodes = rg.m_nodes;
m_count = m_nodes.count();
return true;
}
return false;
}
inline

Loading…
Cancel
Save