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 [email protected]
- Navigate by Date:
- Prev:
Re: Is EPICS license GPL-compatible? Carlos Pascual
- Next:
RE: 'assert (pca->pgetNative)' failed in ../dbCa.c [email protected]
- 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:
New release of ADProsilica Mark Rivers
- Next:
RE: Failed caput not notified when using ca_array_put_callback [email protected]
- 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
|