EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: [Bug 1840500] [NEW] caget and cainfo return no data for any PV when one PV in arguments does not respond
From: Glenn Horton-Smith via Core-talk <[email protected]>
To: [email protected]
Date: Fri, 16 Aug 2019 20:16:08 -0000
Public bug reported:

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.

** Affects: epics-base
     Importance: Undecided
         Status: New

-- 
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

Replies:
[Bug 1840500] Re: caget and cainfo return no data for any PV when one PV in arguments does not respond Bruce Hill via Core-talk
[Bug 1840500] Re: caget and cainfo return no data for any PV when one PV in arguments does not respond mdavidsaver via Core-talk
[Bug 1840500] Re: caget and cainfo return no data for any PV when one PV in arguments does not respond mdavidsaver via Core-talk
[Bug 1840500] Re: caget and cainfo return no data for any PV when one PV in arguments does not respond Andrew Johnson via Core-talk
[Bug 1840500] Re: caget and cainfo return no data for any PV when one PV in arguments does not respond Bruce Hill via Core-talk
[Bug 1840500] Re: caget and cainfo return no data for any PV when one PV in arguments does not respond Andrew Johnson via Core-talk

Navigate by Date:
Prev: Jenkins build is back to normal : EPICS-3.14 #398 Jenkins EPICS PSI via Core-talk
Next: [Bug 1840500] Re: caget and cainfo return no data for any PV when one PV in arguments does not respond Bruce Hill via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Jenkins build is back to normal : EPICS-3.14 #398 Jenkins EPICS PSI via Core-talk
Next: [Bug 1840500] Re: caget and cainfo return no data for any PV when one PV in arguments does not respond Bruce Hill via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
ANJ, 31 Oct 2019 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·