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  2013  2014  2015  2016  2017  <20182019  2020  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  <20182019  2020 
<== Date ==> <== Thread ==>

Subject: Failed caput not notified when using ca_array_put_callback
From: "michael.abbott@diamond.ac.uk" <michael.abbott@diamond.ac.uk>
To: "tech-talk (tech-talk@aps.anl.gov)" <tech-talk@aps.anl.gov>
Date: Mon, 9 Jul 2018 13:50:39 +0000
Here is a very curious issue that I've just stumbled across: asynchronous caput failure is reported, synchronous caput failure is hidden.

I have a PV that (depending on the state of the IOC) is rejecting caputs; it does this by returning 1 from the appropriate record processing function.  Using the command line caput tool I observe a strange discrepancy, watch:


1. asynchronous put

$ caput TS-DI-TMBF-02:MEM:CAPTURE_S 0
Old : TS-DI-TMBF-02:MEM:CAPTURE_S    
CA.Client.Exception...............................................
    Warning: "Channel write request failed"
    Context: "op=1, channel=TS-DI-TMBF-02:MEM:CAPTURE_S, type=DBR_DOUBLE, count=1, ctx="TS-DI-TMBF-02:MEM:CAPTURE_S""
    Source File: ../oldChannelNotify.cpp line 159
New : TS-DI-TMBF-02:MEM:CAPTURE_S    
    Current Time: Mon Jul 09 2018 14:14:03.307001699
..................................................................
$


2. synchronous put

$ caput -c -w 1 TS-DI-TMBF-02:MEM:CAPTURE_S 0
Old : TS-DI-TMBF-02:MEM:CAPTURE_S    
New : TS-DI-TMBF-02:MEM:CAPTURE_S    
$


Note that in case (1) we have asynchronous notification of the put failure ... which I presume we get to see because caput follows up with a caget giving time for the failure to be returned.

On the other hand, in case (2) no error is reported.

Repeating this test with other tools, it seems that the callback called by ca_array_put_callback is always called with args.status == ECA_NORMAL, and I can see no other channel for notifying failure.


This is odd, and I'm surprised to have stumbled across this after so many years.  I'm sure this is a defect somewhere, but am afraid I can't see on which side of the wire it sits.

-- 
This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail.
Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd. 
Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message.
Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom


Replies:
RE: Failed caput not notified when using ca_array_put_callback michael.abbott@diamond.ac.uk

Navigate by Date:
Prev: Re: Is EPICS license GPL-compatible? Carlos Pascual
Next: RE: 'assert (pca->pgetNative)' failed in ../dbCa.c michael.abbott@diamond.ac.uk
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  <20182019  2020 
Navigate by Thread:
Prev: New release of ADProsilica Mark Rivers
Next: RE: Failed caput not notified when using ca_array_put_callback michael.abbott@diamond.ac.uk
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  <20182019  2020 
ANJ, 10 Jul 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·