Examining the previous change I see that it will introduce a race condition when circuits are being created and destroyed at close to the same instant in time. See revision 11786 of cac.cpp which fixes mantis 334 if you are interested in what this code does. After running the regression tests, I pushed in a fix (which is removing above mentioned change and restoring the increment of iiuExistenceCount in cac::findOrCreateVirtCircuit.
This commit is contained in:
@@ -286,7 +286,6 @@ cac::~cac ()
|
||||
//
|
||||
// shutdown all tcp circuits
|
||||
//
|
||||
this->iiuExistenceCount = this->circuitList.count();
|
||||
tsDLIter < tcpiiu > iter = this->circuitList.firstIter ();
|
||||
while ( iter.valid() ) {
|
||||
// this causes a clean shutdown to occur
|
||||
@@ -544,6 +543,7 @@ bool cac::findOrCreateVirtCircuit (
|
||||
}
|
||||
this->serverTable.add ( *pnewiiu );
|
||||
this->circuitList.add ( *pnewiiu );
|
||||
this->iiuExistenceCount++;
|
||||
pBHE->registerIIU ( guard, *pnewiiu );
|
||||
piiu = pnewiiu.release ();
|
||||
newIIU = true;
|
||||
|
||||
Reference in New Issue
Block a user