Comment 10 for bug 1664302

Revision history for this message
mdavidsaver (mdavidsaver) wrote :

> On the first crash, ...

Ha, so newIIU==false can mean either an existing circuit was reused, or that findOrCreateVirtCircuit() error'd. So newIIU==false and piiu==NULL implies that findOrCreateVirtCircuit() failed to create a new circuit.

I see no mention, was there any "CAC: exception during virtual circuit creation" error printed? Though this may get lost in the errlog thread. The only exception I can see which might pop up here is bad_alloc from bheFreeList.allocate(), which seems unlikely.

Otherwise, the only code path I can see which would lead to this is if beaconTable.add fails, which looks like it can't happen.

To further troubleshoot this I'd make the piiu->installChannel call conditional on piiu!=NULL.

From what I see, this crash would only happen when the first client connects through a gateway to a particular server (no existing circuit). In transferChanToVirtCircuit(), look at pChan->pNameStr to see the name of this channel. This might be helpful in attempting to reproduce this crash.

If this is happening intermittently, it occurs to me that a PV name conflict may be involved (thus msgForMultiplyDefinedPV and the second crash).