EPICS Home

Experimental Physics and Industrial Control System


 
<19941995  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  Index <19941995  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 
<== Date ==> <== Thread ==>

Subject: EPICS R3.11 CA client library BUG
From: [email protected] (Jeff Hill)
Date: Fri, 23 Dec 94 11:44:07 MST

A bug has been discovered in the EPICS R3.11 CA client library (thanks
to Olaf Hensler at DESY). This bug does not exist in any version of 
EPICS R3.12.

You will experience the problem if all of the following occur together:
-----------------------------------------------------------------------
o 	The client program calls one of ca_get(), ca_bget(),
	ca_rget(), or ca_array_get()

o 	The above request is immediately followed by a call
	to ca_pend_io() specifying a time out shorter than the
	time required for the operation to complete.

o	The above sequence is repeated several times.

Symptoms of the problem:
------------------------
o	A Channel Access Client hangs in cac_alloc_msg()

Work arounds:
-------------
o	Specify a timeout far greater than what is required
	for the message to be sent, processed, and returned.

o	Incorporate the enclosed changes into src/ca/service.c
	and rebuild.
  

I apologize for any problems that this has caused.

Merry Christmas

Jeff

PS here are the changes to service.c

------- service.c -------
*** /tmp/da08222        Wed Dec 21 12:03:56 1994
--- service.c   Wed Dec 21 11:15:36 1994
***************
*** 335,342 ****
                         * only count get returns if from the current
                         * read seq
                         */
!                       if (!VALID_MSG(piiu))
                                break;
  
                        size = dbr_size_n(t_type, t_count);
  
--- 335,346 ----
                         * only count get returns if from the current
                         * read seq
                         */
!                       if (!VALID_MSG(piiu)) {
!                               if (t_cmmd == IOC_READ){
!                                       piiu->outstanding_ack_count--;
!                               }
                                break;
+                       }
  
                        size = dbr_size_n(t_type, t_count);


______________________________________________________________________
Jeffrey O. Hill			Internet	[email protected]
LANL MS H820			Voice		505 665 1831
Los Alamos, NM USA 87545	FAX		505 665 5107

Navigate by Date:
Prev: VxGDB question greene%denali.UUCP
Index: <19941995  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: VxGDB question greene%denali.UUCP
Index: <19941995  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