Bug #18591 Repeated "show" and "all status" calls to ndb_mgm causes mgmd to crash
- not having lock can cause "block number list" to become corrupt => crash - also may result in 2 threads receiving same block no => possble cause of Bug #13987 Cluster: Loss of data nodes can cause high CPU usage from ndb_mgmd
This commit is contained in:
parent
b592d872ec
commit
3559bdb7b6
@ -2107,6 +2107,7 @@ int
|
|||||||
MgmtSrvr::abortBackup(Uint32 backupId)
|
MgmtSrvr::abortBackup(Uint32 backupId)
|
||||||
{
|
{
|
||||||
SignalSender ss(theFacade);
|
SignalSender ss(theFacade);
|
||||||
|
ss.lock(); // lock will be released on exit
|
||||||
|
|
||||||
bool next;
|
bool next;
|
||||||
NodeId nodeId = 0;
|
NodeId nodeId = 0;
|
||||||
|
@ -75,7 +75,9 @@ SignalSender::SignalSender(TransporterFacade *facade)
|
|||||||
{
|
{
|
||||||
m_cond = NdbCondition_Create();
|
m_cond = NdbCondition_Create();
|
||||||
theFacade = facade;
|
theFacade = facade;
|
||||||
|
lock();
|
||||||
m_blockNo = theFacade->open(this, execSignal, execNodeStatus);
|
m_blockNo = theFacade->open(this, execSignal, execNodeStatus);
|
||||||
|
unlock();
|
||||||
assert(m_blockNo > 0);
|
assert(m_blockNo > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user