EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  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  2001  2002  2003  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: ca_repeater bug (probably observable only on RTEMS)
From: Till Straumann <[email protected]>
To: Jeff Hill <[email protected]>
Cc: [email protected], Eric Norum <[email protected]>, [email protected]
Date: Tue, 21 Sep 2004 17:05:30 -0700
Hi Jeff.

Thanks for clarifying 'exit' semantics under vxWorks.
'exit' under RTEMS indeed terminates the intire executive
and shuts the system down.

I observed this as a consequence of CA links being created
within a short period of time. As you pointed out in another
posting, Kate's introducing a delay changed scheduling
a little bit and made the race condition "go away".

Thanks
-- Till

Jeff Hill wrote:
Till,


the caRepeater thread calls 'exit()' which is not really
what you want to do from the ca server (I guess)


I created bug entry 131 in Mantis.

This code was written a long time ago. With R3.13 it executes as a thread
only on vxWorks, and on vxWorks exit() causes only the thread to exit.


Of course, now with R3.14 the code runs also on other OS where exit() may
have a different behavior. In particular, on Linux, Solaris, HPUX, Windows,
etc exit() will cause the process to exit, but that behavior should not be
observed because osiSpawnDetachedProcess() is implemented on these systems,
and therefore the CA repeater always runs in an independent detached
process. It is not running as a thread in the IOC as is the case with
vxWorks.

That leaves RTEMS. The osiSpawnDetachedProcess() function is not (probably
cant be) implemented on RTEMS and so you will end up with the CA repeater
running as an RTEMS thread. However, perhaps on RTEMS exit() causes the
RTEMS OS to shut down? That might be a more appropriate implementation of
exit() compared to vxWorks.

What symptoms did you observe that led to finding this fix? I just read that
Kate observed a hang (which I assume means that RTEMS shut down).

Thanks for bringing this to our attention.

Jeff


-----Original Message-----
From: Till Straumann [mailto:[email protected]]
Sent: Wednesday, September 15, 2004 5:34 PM
To: [email protected]
Subject: ca_repeater bug

Folks.

the caRepeater thread calls 'exit()' which is not really
what you want to do from the ca server (I guess)

-- T.






References:
RE: ca_repeater bug (probably observable only on RTEMS) Jeff Hill

Navigate by Date:
Prev: building Interviews for gdct under solaris and gcc Dale L. Brewe
Next: EPICS waveform output record Steven Hartman
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: ca_repeater bug (probably observable only on RTEMS) Jeff Hill
Next: GpibCore generates "broken pipe" Eric Williams
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  <20042005  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 ·