Subject: |
[Bug 1840500] Re: caget and cainfo return no data for any PV when one PV in arguments does not respond |
From: |
Bruce Hill via Core-talk <[email protected]> |
To: |
[email protected] |
Date: |
Fri, 16 Aug 2019 23:42:48 -0000 |
Glenn, thanks for reporting this.
I've been seeing the same thing and it's annoying to not get the valid responses due to a single timeout.
pvget and pvinfo follow the same pattern.
--
You received this bug notification because you are a member of EPICS
Core Developers, which is subscribed to EPICS Base.
Matching subscriptions: epics-core-list-subscription
https://bugs.launchpad.net/bugs/1840500
Title:
caget and cainfo return no data for any PV when one PV in arguments
does not respond
Status in EPICS Base:
New
Bug description:
Starting with EPICS 3.15.6, also in 3.16.* and 7.*, the cainfo and
caget tools no longer return information on any PV if one of the PVs
in a list does not respond. This is different from version 3.15.5 and
earlier, in which cainfo and caget would return information on all PVs
specified, noting those that did not respond.
Example caget in version 3.15.5:
$ caget Mu2e_Weather_1/temperature_degF
Mu2e_Weather_2/temperature_degF Mu2e_Weather_1/temperature_degC
Channel connect timed out: some PV(s) not found.
Mu2e_Weather_1/temperature_degF 82.1742
Mu2e_Weather_2/temperature_degF 80.615
Mu2e_Weather_1/temperature_degC *** not connected
Example caget in version 3.15.6:
$ caget Mu2e_Weather_1/temperature_degF Mu2e_Weather_2/temperature_degF
Mu2e_Weather_1/temperature_degC
Channel connect timed out: some PV(s) not found.
A similar difference is seen in cainfo. In 3.15.5, it will print out info for all the specified PVs, including "never connected" status for the missing PVs. In 3.15.6 and later, it just prints "some PV(s) not found."
This new behavior is less useful than the original behavior.
The cause of the change seems to be a small change in caget.c and
cainfo.c. Here is a diff, with "<" being 3.15.5 and ">" being 3.15.6.
544c544
< connect_pvs(pvs, nPvs);
---
> result = connect_pvs(pvs, nPvs);
547,548c547,548
<
< result = caget(pvs, nPvs, request, format, type, count);
---
> if (!result)
> result = caget(pvs, nPvs, request, format, type, count);
The identical change was made in cainfo.c.
The original behavior was preferable, but if there is some good reason
for not calling "caget" on PVs that failed to connect, then hopefully
there is some way of handling that in the caget() function rather than
just completely failing to do anything if even a single PV does not
respond.
To manage notifications about this bug go to:
https://bugs.launchpad.net/epics-base/+bug/1840500/+subscriptions
- References:
- [Bug 1840500] [NEW] caget and cainfo return no data for any PV when one PV in arguments does not respond Glenn Horton-Smith via Core-talk
- Navigate by Date:
- Prev:
[Bug 1840500] [NEW] caget and cainfo return no data for any PV when one PV in arguments does not respond Glenn Horton-Smith via Core-talk
- Next:
[Bug 1840500] Re: caget and cainfo return no data for any PV when one PV in arguments does not respond mdavidsaver via Core-talk
- Index:
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:
[Bug 1840500] [NEW] caget and cainfo return no data for any PV when one PV in arguments does not respond Glenn Horton-Smith via Core-talk
- Next:
[Bug 1840500] Re: caget and cainfo return no data for any PV when one PV in arguments does not respond mdavidsaver via Core-talk
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
<2019>
2020
2021
2022
2023
2024
|