EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Local CA out links broken during PINI
From: Andrew Johnson <[email protected]>
To: Ralph Lange <[email protected]>
Cc: EPICS Core Talk <[email protected]>
Date: Wed, 18 Feb 2009 09:59:43 -0600
On Wednesday 18 February 2009 06:56:57 Ralph Lange wrote:
> This sounds like a fix could be feasible and/or an issue on Andrew's
> list, doesn't it?

Unfortunately I just realized that doing so would break the Redundant IOC 
interface.  Those xxxRun() calls are in iocRun() whereas the initialProcess() 
call is in iocBuild(), so in a redundant IOC the PINI processing happens at 
start-up but the CA links don't get connected until the redundancy executive 
says "go" (which could be weeks or even months later).  I'm not sure if the 
initialProcess() call could/should be moved, but doing so would change the 
meaning of some of our initHooks.

The other thing that worries me is that I think the act of connecting up the 
CA links probably also enables any CP or CPP input links to start processing, 
so it's possible that they could pre-empt the PINI processing (especially if 
they're pointing at an external IOC which is already running).

- Andrew

> On 17.02.2009 21:30 Jeff Hill wrote:
> > FWIW: The CA client does not connect via TCP through the CA server when
> > it’s a local channel, and instead the db_xxxx functions are called
> > directly. A local channel is one that is hosted within the same IOC as
> > the client library context. Therefore, at least rsrv_init and rsrv_run
> > need not complete prior to connecting a local channel. As Andrew
> > mentioned, the dbCa facility would definitely need to be running first,
> > however.
> >
> > Jeff
> >
> >> -----Original Message-----
> >> From: [email protected]
> >> [mailto:[email protected]] On Behalf Of Andrew Johnson
> >> Sent: Monday, February 16, 2009 9:37 AM
> >> To: [email protected]; [email protected]
> >> Subject: Re: Local CA out links broken during PINI
> >>
> >> Hi Ben,
> >>
> >> On Monday 16 February 2009 05:07:12 Benjamin Franksen wrote:
> >>> it seems that CA output links do not work at all during PINI processing
> >>
> >> if
> >>
> >>> the target record is on the same IOC.
> >>>
> >>> I think this is a bug, as I could not find any note on this behaviour
> >>> in the Developer's Guide.
> >>
> >> Please consider the task of bringing up an IOC, i.e. what iocInit does.
> >> Here
> >> are some lines from iocInit, in order of execution:
> >>
> >>     initialProcess();
> >>
> >>     /* Start CA server threads */
> >>     rsrv_init();
> >> ...
> >>    /* Enable scan tasks and some driver support functions.  */
> >>     scanRun();
> >>     dbCaRun();
> >> ...
> >>     rsrv_run();
> >>
> >> The CA server has not even been initialized when the initialProcess()
> >> (i.e. PINI processing) takes place, and the dbCa link task which manages
> >> CA links is not running at that point either.  PINI has to happen before
> >> we release the scan threads or allow CA links to connect because they
> >> can initiate record processing.
> >>
> >> We can't allow external CA clients to connect before the PINI processing
> >> is done because they might interfere with that initialization, and I
> >> suspect it
> >> would be hard to add a separate path to the server to allow internal CA
> >> clients to connect in advance of the external ones.
> >>
> >> I agree that the documentation does not discuss PINI much, but [despite
> >> being
> >> slightly out-dated by R3.14.10] section 7.4 of the AppDevGuide does make
> >> clear that initialProcess() happens before rsrv_init().
> >>
> >> - Andrew



-- 
The best FOSS code is written to be read by other humans -- Harold Welte


Replies:
Re: Local CA out links broken during PINI Ralph Lange
References:
Re: Local CA out links broken during PINI Ralph Lange

Navigate by Date:
Prev: Re: Local CA out links broken during PINI Ralph Lange
Next: Re: Ideas for Codeathon Andrew Johnson
Index: 2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Local CA out links broken during PINI Ralph Lange
Next: Re: Local CA out links broken during PINI Ralph Lange
Index: 2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Feb 2012 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·