This crash appears that it might be fixed by prior revision 12173 (occurring on 2011-01-15) to ca/tcpiiu.cpp. Unfortunately, I am having trouble finding a bug report to link to in launchpad.
while ( nciu * pChan = this->createRespPend.get () ) {
+ pChan->channelNode::listMember =
+ channelNode::cs_none;
// we dont yet know the server's id so we cant
// send a channel delete request and will instead
// trust that the server can do the proper cleanup
@@ -1878,12 +1882,16 @@
}
while ( nciu * pChan = this->unrespCircuit.get () ) {
+ pChan->channelNode::listMember =
+ channelNode::cs_none; pChan->disconnectAllIO ( cbGuard, guard );
// if we know that the circuit is unresponsive
// then we dont send a channel delete request and
@@ -1907,6 +1919,8 @@
}
This crash appears that it might be fixed by prior revision 12173 (occurring on 2011-01-15) to ca/tcpiiu.cpp. Unfortunately, I am having trouble finding a bug report to link to in launchpad.
C:\hill\ epicsInBazaar\ R3.14\trunk\ src\ca> bzr diff -c12173 tcpiiu.cpp assertIdentical Mutex ( this->mutex );
=== modified file 'src/ca/tcpiiu.cpp'
--- src/ca/tcpiiu.cpp 2010-09-20 21:21:50 +0000
+++ src/ca/tcpiiu.cpp 2011-01-15 00:53:33 +0000
@@ -1866,10 +1866,14 @@
guard.
while ( nciu * pChan = this->createReq Pend.get () ) { channelNode: :listMember = :cs_none;
pChan- >serviceShutdow nNotify ( cbGuard, guard );
+ pChan->
+ channelNode:
}
while ( nciu * pChan = this->createRes pPend.get () ) { channelNode: :listMember = :cs_none;
+ pChan->
+ channelNode:
// we dont yet know the server's id so we cant
// send a channel delete request and will instead
// trust that the server can do the proper cleanup
@@ -1878,12 +1882,16 @@
}
while ( nciu * pChan = this->v42ConnCa llbackPend. get () ) { channelNode: :listMember = :cs_none;
this- >clearChannelRe quest ( guard,
pChan- >getSID( guard), pChan-> getCID( guard) );
pChan- >serviceShutdow nNotify ( cbGuard, guard );
+ pChan->
+ channelNode:
}
while ( nciu * pChan = this->subscripR eqPend. get () ) { channelNode: :listMember = :cs_none;
pChan- >disconnectAllI O ( cbGuard, guard );
this- >clearChannelRe quest ( guard,
pChan- >getSID( guard), pChan-> getCID( guard) );
+ pChan->
+ channelNode:
@@ -1891,6 +1899,8 @@
}
while ( nciu * pChan = this->connected List.get () ) { channelNode: :listMember = :cs_none;
pChan- >disconnectAllI O ( cbGuard, guard );
this- >clearChannelRe quest ( guard,
pChan- >getSID( guard), pChan-> getCID( guard) );
+ pChan->
+ channelNode:
@@ -1898,6 +1908,8 @@
}
while ( nciu * pChan = this->unrespCir cuit.get () ) { channelNode: :listMember = :cs_none;
pChan- >disconnectAllI O ( cbGuard, guard );
+ pChan->
+ channelNode:
// if we know that the circuit is unresponsive
// then we dont send a channel delete request and
@@ -1907,6 +1919,8 @@
}
while ( nciu * pChan = this->subscripU pdateReqPend. get () ) { channelNode: :listMember = :cs_none;
pChan- >disconnectAllI O ( cbGuard, guard );
this- >clearChannelRe quest ( guard,
pChan- >getSID( guard), pChan-> getCID( guard) );
+ pChan->
+ channelNode: