On 8/7/21 12:35 PM, Kasemir, Kay via Tech-talk wrote:
> Hi:
>
>> I subsequently tried out on EPICS base version 7.0.3.1 ..
>> It works fine ..
>> I am suspecting the bug may be due to newer version of EPICS.
>
> Looks like you found a problem in R7.0.6.
From a quick test, it looks like this call to dbPut() is erroneously taking
a code path intended for a scalar value even though nRequest==4.
https://github.com/epics-base/epics-base/blob/cb8c7998b62701a849a6fa9c299cc1613f66a627/modules/database/src/ioc/db/dbAccess.c#L1372
This change went into 7.0.5 as part of
https://code.launchpad.net/~dirk.zimoch/epics-base/+git/epics-base/+merge/386175
I guess the oversight was assuming that all array operations are on SPC_DBADDR fields,
while CALC is SPC_CALC.
> Take this example record, executed by softIoc:
>
> record(calc, "test_calc")
> {
> field(SCAN, "1 second")
> field(CALC, "RNDM*100")
> }
>
> $ caget -S test_calc.CALC$
> test_calc.CALC$ RNDM*100
>
> $ caput -S test_calc.CALC$ "300"
> Old : test_calc.CALC$ RNDM*100
> CA.Client.Exception...............................................
> Warning: "Channel write request failed"
> Context: "op=1, channel=test_calc.CALC$, type=DBR_CHAR, count=4, ctx="test_calc""
> Source File: ../oldChannelNotify.cpp line 159
> Current Time: Sat Aug 07 2021 15:27:54.755166000
> ..................................................................
> New : test_calc.CALC$ 3NDM*100
>
> .. and the softIoc shows this error:
>
> Illegal field value PV: test_calc calc: Illegal CALC field
> test_calc.CALC: Syntax error, unknown operator/operand in expression "3NDM*100"
>
> So the IOC didn't receive "300" as written, it only took "3" _and_ kept the rest of the previous CALC field value.
>
> When instead using R7.0.4.1, all works fine.
> In fact the test also succeeds with softIoc from R7.0.4.1 and caget/caput from base-7.0.6.
> The issue starts when using the base-7.0.6 softIoc.
>
> -Kay
>
- References:
- Calc Module of SynApps: Issue with long string CALC$ Kuldeep Joshi via Tech-talk
- Re: [EXTERNAL] Calc Module of SynApps: Issue with long string CALC$ Kasemir, Kay via Tech-talk
- Re: [EXTERNAL] Calc Module of SynApps: Issue with long string CALC$ Kuldeep Joshi via Tech-talk
- Re: [EXTERNAL] Calc Module of SynApps: Issue with long string CALC$ Kasemir, Kay via Tech-talk
- Re: Calc Module of SynApps: Issue with long string CALC$ Kuldeep Joshi via Tech-talk
- Re: Calc Module of SynApps: Issue with long string CALC$ Kuldeep Joshi via Tech-talk
- base-7.0.6 long string$ bug? Re: Calc Module of SynApps: Issue with long string CALC$ Kasemir, Kay via Tech-talk
- Navigate by Date:
- Prev:
Re: base-7.0.6 long string$ bug? Re: Calc Module of SynApps: Issue with long string CALC$ Pete Jemian via Tech-talk
- Next:
Re: base-7.0.6 long string$ bug? Re: Calc Module of SynApps: Issue with long string CALC$ Michael Davidsaver via Tech-talk
- 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:
Re: base-7.0.6 long string$ bug? Re: Calc Module of SynApps: Issue with long string CALC$ Pete Jemian via Tech-talk
- Next:
Re: base-7.0.6 long string$ bug? Re: Calc Module of SynApps: Issue with long string CALC$ Michael Davidsaver via Tech-talk
- 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
|