EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  <20012002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  <20012002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: CA error
From: "Jeff Hill" <[email protected]>
To: "Geoff Savage" <[email protected]>, <[email protected]>
Date: Tue, 30 Oct 2001 11:00:07 -0700
Geoff,

> CAC: unexpected select fail: 851971=S_iosLib_INVALID_FILE_DESCRIPTOR.

This message occurs under EPICS R3.13 (and also probably on earlier 
releases). The cause is one thread's shutting down a TCP circuit
while another thread is watching the TCP circuit's file descriptor
with select(). There are no portable mechanism for waking up a thread 
waiting in select() other than to synthesize a message over a file 
descriptor or to close() one of the file descriptors that select()
is watching. I chose the latter, but this does result in error 
status being returned from select(). Since this error can in certain 
instances (not this one) indicate a software failure I chose not to
suppress it.

In my experience the above message occurs very rarely, and it is benign, 
but it could be selectively suppressed if it becomes sufficiently 
annoying.

In EPICS R3.14 this message will not occur because I have removed 
from the CA client library all calls to select() in favor of a 100% 
thread scheduled design. This appears to be a reasonable choice
given the ubiquitous support for threads in modern operating systems.

Jeff

> 
> I'm running a CA client on IOC A accessing records on a IOC B.  After 
> performing a ca_clear_channel on all the channels on IOC A connected to 
> the IOC B I receive this error:
> CAC: unexpected select fail: 851971=S_iosLib_INVALID_FILE_DESCRIPTOR.
>  From what I understand about CA it appears the fd on IOC A which 
> handles the connection to IOC B has been released prematurely.
> 
> I found the errors source in src/ca/bsd_depen.c but am uncertain as to 
> how the select bits are set.
> 
> Any insights?  Thanks
> 
> Geoff
> 




References:
CA error Geoff Savage

Navigate by Date:
Prev: CA error Geoff Savage
Next: Linux hosted GNU cross compiler for vxWorks Jeff Hill
Index: 1994  1995  1996  1997  1998  1999  2000  <20012002  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: CA error Geoff Savage
Next: Linux hosted GNU cross compiler for vxWorks Jeff Hill
Index: 1994  1995  1996  1997  1998  1999  2000  <20012002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·