Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019 
<== Date ==> <== Thread ==>

Subject: Re: Small bug in 3.16
From: "Shankar, Murali" <mshankar@slac.stanford.edu>
To: Andrew Johnson <anj@aps.anl.gov>, EPICS core-talk <core-talk@aps.anl.gov>
Date: Thu, 18 Feb 2016 18:09:47 +0000
Got it; thanks.

Regards,
Murali

________________________________________
From: Andrew Johnson <anj@aps.anl.gov>
Sent: Thursday, February 18, 2016 8:45 AM
To: Shankar, Murali; EPICS core-talk
Subject: Re: Small bug in 3.16

Hi Murali,

On 02/17/2016 06:32 PM, Shankar, Murali wrote:
> We are starting to use 3.16 for
> LCLS-II development and I ran into a small bug that would core dump when
> doing a caget SOME:PV:NAME.[0:10]​. I have attached the patch; it does
> fix this issue and "make runtests" passes after this change.

Unfortunately I don't think your fix is correct, but I suspect I have
already found the problem (I've been working on creating a regression
test for the bug) and developed a fix for it — please undo your changes
and try the attached patch instead. This fix will be applied to the 3.15
branch as well as to 3.16.

> Would you
> know where the documentation for these server side filters is? Should I
> expect "caput SOME:PV:NAME.[2] 1​" to work?

Unfortunately server-side filters currently only work on gets and
monitors, not on puts, so no you cannot do a put to an individual
element of an array. This limitation is not documented anywhere that I
remember, although it should be. You can find some documentation for the
built-in filters in base-3.16/html/filters.html but I don't think the
individual filters currently explain which ones work on which operations
(get/put/monitor).

Ralph — am I right that there is no way for filters to support puts at
the moment? I get a seg-fault trying to do a sub-array put even with my
current patch, so that needs fixing. Should we try to support this? The
documentation for each filter should at least say what operations it
does support.

- Andrew


> $ bzr diff src/ioc/db/dbAccess.c
> === modified file 'src/ioc/db/dbAccess.c'
> --- src/ioc/db/dbAccess.c       2015-09-07 04:15:21 +0000
> +++ src/ioc/db/dbAccess.c       2016-02-17 23:42:01 +0000
> @@ -878,7 +878,7 @@
>              if (pfl->type == dbfl_type_val)
>                  localAddr.pfield = (char *) &pfl->u.v.field;
>              else
> -                localAddr.pfield = (char *)  pfl->u.r.field;
> +                localAddr.pfield = (char *) &pfl->u.r.field;
>              status = dbFastGetConvertRoutine[field_type][dbrType]
>                  (localAddr.pfield, pbuf, &localAddr);
>          }
>

--
There are only two hard problems in distributed systems:
  2. Exactly-once delivery
  1. Guaranteed order of messages
  2. Exactly-once delivery
 -- Mathias Verraes


References:
Re: Small bug in 3.16 Andrew Johnson

Navigate by Date:
Prev: Re: Small bug in 3.16 Andrew Johnson
Next: Jenkins build became unstable: epics-base-3.14-win64 #105 APS Jenkins
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019 
Navigate by Thread:
Prev: Re: Small bug in 3.16 Andrew Johnson
Next: Jenkins build became unstable: epics-base-3.14-win64 #105 APS Jenkins
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019 
ANJ, 23 Feb 2016 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·