2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 <2017> 2018 2019 2020 2021 2022 2023 2024 | Index | 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 <2017> 2018 2019 2020 2021 2022 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: base-3.16.1 bug |
From: | Ralph Lange <[email protected]> |
To: | Andrew Johnson <[email protected]> |
Cc: | EPICS Core Talk <[email protected]> |
Date: | Wed, 6 Sep 2017 13:40:57 +0200 |
[...]
The problem is related to the new Link Support code: The OUT links in
both ao records are unset so are CONSTANT links, and the ao Soft Device
support returns the status value it gets from calling dbPutLink() as the
result of its write_ao() method, but for the CONSTANT link type there is
no lset::putValue() method, so the return value from dbPutLink() is
S_db_noLSET, which now gets returned all the way back through the
rset::process() method up to the routine dbChannel_put() so RSRV sees an
error from the put which it passes back to the CA client.
The same problem will probably occur with bo, stringout and lso records
because the soft device support for those record types also pass the
return value from dbPutLink() back to the record type. Other device
supports always return 0 independent of what dbPutLink() returns so
won't generate the error.
Ralph, Michael:
Where do you think is the correct place to squash this error? Should I
add a dummy lset::putValue() method to the dbConstLink type (that just
returns OK), or change the soft device supports to discard the return
value from dbPutLink()?
- Andrew
--
Arguing for surveillance because you have nothing to hide is no
different than making the claim, "I don't care about freedom of
speech because I have nothing to say." -- Edward Snowdon