I have recently experienced something strange with the
sequencer. This is EPICS 3.13.4, sequencer Version 1.9.2.Beta12.
What happened was this. In IOC1, a sequence program was
looping with a 1 second delay. Each time through the loop,
it called pvGet on a record field which was an array of
6 doubles. This record was in IOC2.
With IOC1 and IOC2 running everything was fine.
However, when IOC2 was rebooted, I started getting garbage values in
the array elements in IOC1 as a result of the pvGet. Numbers the
size of 10**271 appeared after the disconnect event.
This caused my application in IOC1 to crash with
"Floating point overflow".
I traced this down to what I think maybe a bug in the
sequencer. When a pvGet completes, there is an unconditional
copy of the data in the Channel Access structure to the user's
variable. This is a "bcopy" in "seq_ca.c".
What seemed to be missing was a check on "args.status" for
ECA_NORMAL before doing this copy. "args" are returned from
the sequencer event handler routine "seq_event_handler".
Putting in this check, solved the problem.
There is a question over what to do with the users variable
(memory space) if the CA status is not ECA_NORMAL.
I chose to set it to 0. The
alternative, I guess, would be to leave the value as it was
before the pvGet failure.
I looked at seq-2.0.1, and saw that it has lots of changes
made by William Lupton (to support 3.14 and some bug fixes).
But, looking at the code, it wasn't obvious to me that this
particular problem had been addressed.
Is there a version of the sequencer available which just has
the bug fixes and so will run with 3.13.4? Then, I could
try that version out and, if necessary, my fix could be
added to this.
Cheers,
Andy
--------------------------------------------------------------------
Observatory Sciences Limited Email: [email protected]
William James House Tel: 44 - (0)1223 - 508259
Cowley Road Fax: 44 - (0)1223 - 508258
Cambridge, CB4 0WX, UK http://www.observatorysciences.co.uk
- Replies:
- Re: Sequencer Problems Nicholas DiMonte
- Navigate by Date:
- Prev:
LeCroy 4300B FERA search Paul Sichta
- Next:
sequencer task deletion failure Brian McAllister
- Index:
1994
1995
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:
LeCroy 4300B FERA search Paul Sichta
- Next:
Re: Sequencer Problems Nicholas DiMonte
- Index:
1994
1995
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
|