Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019 
<== Date ==> <== Thread ==>

Subject: Re: pvGet timeout in sequencer 2.1.12
From: Benjamin Franksen <benjamin.franksen@helmholtz-berlin.de>
To: "J. Lewis Muir" <jlmuir@imca-cat.org>
Cc: tech-talk@aps.anl.gov
Date: Wed, 19 Jun 2013 18:10:32 +0200
Hi

again sorry for long delay; you are not forgotten!

On Wednesday, June 12, 2013 12:38:40 J. Lewis Muir wrote:
> On 6/12/13 11:10 AM, Benjamin Franksen wrote:
> > On Monday, June 10, 2013 17:22:12 Carl Lionberger wrote:
> >> Looking at the code in seq_ca.c and seq_if.c, it seems that if a
> >> synchronous pvGet ever fails to get a callback from channel access, the
> >> "get completion timeout" message is set in the channel metadata and all
> >> subsequent attempts to do pvGets on that channel will fail as in the
> >> first
> >> message.  The latter occurs because there is a get semaphore for each
> >> channel that the callback is supposed to give.
> >>
> >> My thought is that if the callback doesn't come the semaphore should be
> >> released in the same code that sets the "get completion timeout" message.
> >
> > [...]
> >
> > I find it very hard to judge what the correct behaviour is, here.
> >
> > Maybe Jeff can comment?
> >
> >> Or is there something the operator should be able to do, short of
> >> restarting the sequencer?
> >
> > There is not, currently, but I could add something. Maybe letting the
> > programmer explicitly "recover" from timeouts is better than doing it
> > automatically, at least as long as (and assuming that) canceling pvGet
> > requests is not supported by the CA client API.
>
> I think I've run into Carl's problem before too.
>
> Could you supply the CA callback with a sequence number that would
> uniquely identify the callback as being for a particular pvGet?  This
> way, you could ignore a callback if it arrives for a pvGet that has been
> abandoned.

Right, that's a possibility.

Will look into this and see if I can get something hacked up.

One thing I hate about this is that I happen to know CA already does exactly
that, on the protocol level. It just isn't exposed in the API.

Cheers
--
Ben Franksen
()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachm€nts

Attachment: signature.asc
Description: This is a digitally signed message part.


Replies:
Re: pvGet timeout in sequencer 2.1.12 Benjamin Franksen
References:
pvGet timeout in sequencer 2.1.12 Carl Lionberger
Re: pvGet timeout in sequencer 2.1.12 Benjamin Franksen
Re: pvGet timeout in sequencer 2.1.12 J. Lewis Muir

Navigate by Date:
Prev: Re: seqLog obsolete / errlog filtering based on source Benjamin Franksen
Next: CSS and Subversion Vigder, Mark
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019 
Navigate by Thread:
Prev: Re: pvGet timeout in sequencer 2.1.12 J. Lewis Muir
Next: Re: pvGet timeout in sequencer 2.1.12 Benjamin Franksen
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019 
ANJ, 20 Apr 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·