backport of ndb DictCache fix

- don't invalidate tables that are in state RETRIEVING
parent 9f542ef0
...@@ -278,12 +278,15 @@ GlobalDictCache::invalidate_all() ...@@ -278,12 +278,15 @@ GlobalDictCache::invalidate_all()
if (vers->size()) if (vers->size())
{ {
TableVersion * ver = & vers->back(); TableVersion * ver = & vers->back();
ver->m_impl->m_status = NdbDictionary::Object::Invalid; if (ver->m_status != RETREIVING)
ver->m_status = DROPPED;
if (ver->m_refCount == 0)
{ {
delete ver->m_impl; ver->m_impl->m_status = NdbDictionary::Object::Invalid;
vers->erase(vers->size() - 1); ver->m_status = DROPPED;
if (ver->m_refCount == 0)
{
delete ver->m_impl;
vers->erase(vers->size() - 1);
}
} }
} }
curr = m_tableHash.getNext(curr); curr = m_tableHash.getNext(curr);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment