You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
Merge pull request #224 from mariadb-corporation/MCOL-857-1.1
MCOL-857 Fix thread leak on ByteStream exception
This commit is contained in:
@ -1223,8 +1223,17 @@ struct BPPHandler
|
|||||||
uint32_t key;
|
uint32_t key;
|
||||||
BPPMap::iterator it;
|
BPPMap::iterator it;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
bs.advance(sizeof(ISMPacketHeader));
|
bs.advance(sizeof(ISMPacketHeader));
|
||||||
bs >> key;
|
bs >> key;
|
||||||
|
}
|
||||||
|
catch(...)
|
||||||
|
{
|
||||||
|
// MCOL-857 We don't have the full packet yet
|
||||||
|
bs.rewind();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
mutex::scoped_lock scoped(bppLock);
|
mutex::scoped_lock scoped(bppLock);
|
||||||
bppKeysIt = std::find(bppKeys.begin(), bppKeys.end(), key);
|
bppKeysIt = std::find(bppKeys.begin(), bppKeys.end(), key);
|
||||||
if (bppKeysIt != bppKeys.end()) {
|
if (bppKeysIt != bppKeys.end()) {
|
||||||
@ -1425,10 +1434,20 @@ struct BPPHandler
|
|||||||
uint32_t uniqueID, sessionID, stepID;
|
uint32_t uniqueID, sessionID, stepID;
|
||||||
BPPMap::iterator it;
|
BPPMap::iterator it;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
|
||||||
bs.advance(sizeof(ISMPacketHeader));
|
bs.advance(sizeof(ISMPacketHeader));
|
||||||
bs >> sessionID;
|
bs >> sessionID;
|
||||||
bs >> stepID;
|
bs >> stepID;
|
||||||
bs >> uniqueID;
|
bs >> uniqueID;
|
||||||
|
}
|
||||||
|
catch(...)
|
||||||
|
{
|
||||||
|
// MCOL-857 We don't appear to have the full packet yet!
|
||||||
|
bs.rewind();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
mutex::scoped_lock lk(djLock);
|
mutex::scoped_lock lk(djLock);
|
||||||
mutex::scoped_lock scoped(bppLock);
|
mutex::scoped_lock scoped(bppLock);
|
||||||
|
Reference in New Issue
Block a user