Hello Carsten,
> "caput.exe" runs sometimes into exception! This exception
> is very hard to catch (1% of calls in my case).
> The exception occurs in the connectNotify function in "src/ca/tcpiiu.cpp":
My hypothesis is that this 1% corresponds with situations where caput.exe
times out waiting for the connect, and in this situation occasionally the ca
client context is being destroyed a very close to the same time that another
thread is processing a channel connect response message.
It appears that your issue might be fixed by prior revision 12173 (occurring
on 2011-01-15) to ca/tcpiiu.cpp. Unfortunately, I am having trouble finding
the relevant bug report to link to at launch-pad.
If this does not resolve your issue let me know and I will look more
carefully at the source.
C:\hill\epicsInBazaar\R3.14\trunk\src\ca>bzr diff -c12173 tcpiiu.cpp
=== 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.assertIdenticalMutex ( this->mutex );
while ( nciu * pChan = this->createReqPend.get () ) {
+ pChan->channelNode::listMember =
+ channelNode::cs_none;
pChan->serviceShutdownNotify ( cbGuard, guard );
}
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->v42ConnCallbackPend.get () ) {
+ pChan->channelNode::listMember =
+ channelNode::cs_none;
this->clearChannelRequest ( guard,
pChan->getSID(guard), pChan->getCID(guard) );
pChan->serviceShutdownNotify ( cbGuard, guard );
}
while ( nciu * pChan = this->subscripReqPend.get () ) {
+ pChan->channelNode::listMember =
+ channelNode::cs_none;
pChan->disconnectAllIO ( cbGuard, guard );
this->clearChannelRequest ( guard,
pChan->getSID(guard), pChan->getCID(guard) );
@@ -1891,6 +1899,8 @@
}
while ( nciu * pChan = this->connectedList.get () ) {
+ pChan->channelNode::listMember =
+ channelNode::cs_none;
pChan->disconnectAllIO ( cbGuard, guard );
this->clearChannelRequest ( guard,
pChan->getSID(guard), pChan->getCID(guard) );
@@ -1898,6 +1908,8 @@
}
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 @@
}
while ( nciu * pChan = this->subscripUpdateReqPend.get () ) {
+ pChan->channelNode::listMember =
+ channelNode::cs_none;
pChan->disconnectAllIO ( cbGuard, guard );
this->clearChannelRequest ( guard,
pChan->getSID(guard), pChan->getCID(guard) );
Jeff
______________________________________________________
Jeffrey O. Hill Email [email protected]
LANL MS H820 Voice 505 665 1831
Los Alamos NM 87545 USA FAX 505 665 5107
Message content: TSPA
With sufficient thrust, pigs fly just fine. However, this is
not necessarily a good idea. It is hard to be sure where they
are going to land, and it could be dangerous sitting under them
as they fly overhead. -- RFC 1925
> -----Original Message-----
> From: Carsten Winkler [mailto:[email protected]]
> Sent: Tuesday, February 15, 2011 2:33 AM
> To: Jeff Hill
> Subject: Re: soft ioc runs into fatal exception (base-3.14.12)
>
> Hello Jeff,
>
> here is the call stack of exception case:
>
> ca.dll!tsDLList<nciu>::remove(nciu & item={...}) line 230 + 0x9
> Bytes C++
> ca.dll!tcpiiu::connectNotify(epicsGuard<epicsMutex> & guard={...},
> nciu & chan={...}) line
> 1945 C++
> ca.dll!cac::createChannelRespAction(callbackManager & mgr={...},
> tcpiiu & iiu={...}, const
> epicsTime & __formal={...}, const caHdrLargeArray & hdr={...}, const
> epicsTime & __formal={...})
> line 1126 + 0x10 Bytes C++
> ca.dll!cac::executeResponse(callbackManager & mgr={...}, tcpiiu &
> iiu={...}, const epicsTime &
> currentTime={...}, caHdrLargeArray & hdr={...}, char *
> pMshBody=0x0097f7f8) line 1193 + 0x1f
> Bytes C++
> ca.dll!tcpiiu::processIncoming(const epicsTime & currentTime={...},
> callbackManager &
> mgr={...}) line 1252 + 0x2e Bytes C++
> ca.dll!tcpRecvThread::run() line 519 + 0x13 Bytes C++
> Com.dll!epicsThreadCallEntryPoint(void * pPvt=0x003db0b8) line 85 +
> 0x13 Bytes C++
> Com.dll!epicsWin32ThreadEntry(void * lpParameter=0x003da098) line
> 499 + 0x11 Bytes C
> msvcr100d.dll!_callthreadstartex() line 314 + 0xf Bytes C
> msvcr100d.dll!_threadstartex(void * ptd=0x003dfd68) line 297 C
> kernel32.dll!_BaseThreadStart@8() + 0x37 Bytes
>
>
> Hope you can fix this problem because we have same problem in our
> OpcIocShell since many month. A
> fairy long time we thought this problem comes from OPC extension. But
> couldn't find the bug. Now we
> hope your fix for ca.dll will solve our problem in OpcIocShell too.
>
> Greetings from Berlin
> Carsten
>
> ________________________________
>
> Helmholtz-Zentrum Berlin für Materialien und Energie GmbH
>
> Mitglied der Hermann von Helmholtz-Gemeinschaft Deutscher
> Forschungszentren e.V
>
> Aufsichtsrat: Vorsitzender Prof. Dr. Dr. h.c. mult. Joachim Treusch, stv.
> Vorsitzende Dr. Beatrix Vierkorn- Rudolph
> Geschäftsführer: Prof. Dr. Anke Rita Kaysser-Pyzalla, Prof. Dr. Dr. h.c.
> Wolfgang Eberhardt, Dr. Ulrich Breuer
>
> Sitz Berlin, AG Charlottenburg, 89 HRB 5583
>
> Postadresse:
> Hahn-Meitner-Platz 1
> D-14109 Berlin
>
> http://www.helmholtz-berlin.de
- Replies:
- Re: soft ioc runs into fatal exception (base-3.14.12) Carsten Winkler
- References:
- soft ioc runs into fatal exception (base-3.14.12) Carsten Winkler
- RE: soft ioc runs into fatal exception (base-3.14.12) Jeff Hill
- Re: soft ioc runs into fatal exception (base-3.14.12) Carsten Winkler
- Navigate by Date:
- Prev:
RE: EPICS Config for 2 Ethernet Adapters graham.cox
- Next:
RE: EPICS Config for 2 Ethernet Adapters Jeff Hill
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
<2011>
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: soft ioc runs into fatal exception (base-3.14.12) Carsten Winkler
- Next:
Re: soft ioc runs into fatal exception (base-3.14.12) Carsten Winkler
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
<2011>
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|