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  2019  2020  <20212022  2023  2024  2025  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024  2025 
<== Date ==> <== Thread ==>

Subject: Re: Base 7.0.5 / pvDatabaseCPP 4.5.3 / pvDataCPP 8.0.4 (8.1.0?)
From: Ralph Lange via Core-talk <core-talk at aps.anl.gov>
To: EPICS Core Talk <core-talk at aps.anl.gov>
Date: Fri, 12 Mar 2021 17:53:18 +0100
On Fri, 12 Mar 2021 at 17:29, Michael Davidsaver <mdavidsaver at gmail.com> wrote:
On 3/12/21 8:05 AM, Ralph Lange via Core-talk wrote:
> On Fri, 12 Mar 2021 at 16:06, Michael Davidsaver <mdavidsaver at gmail.com <mailto:mdavidsaver at gmail.com>> wrote:
>
>     On 3/12/21 7:04 AM, Ralph Lange via Core-talk wrote:
>     > On Fri, 12 Mar 2021 at 16:01, Michael Davidsaver <mdavidsaver at gmail.com <mailto:mdavidsaver at gmail.com> <mailto:mdavidsaver at gmail.com <mailto:mdavidsaver at gmail.com>>> wrote:
>     >
>     >     On 3/12/21 12:07 AM, Ralph Lange via Core-talk wrote:
>     >     > In Base 7.0.5, which is a minor release, interfaces have been removed in some of the PVA modules:
>     >     >
>     >     > pvDatabaseCPP release 4.5.3
>     >     >
>     >     >     The previously deprecated destroy methods have been removed.
>     >     >
>     >     >
>     >     > pvDataCPP release 8.0.4 (claimed) / 8.1.0 (internal)
>     >     >
>     >     >     Incompatible changes
>     >     >
>     >     >         Remove ByteBuffer::align()
>     >     >
>     >     >
>     >     > I did not expect backward compatibility breaking code changes in a minor release.
>     >     > Can someone please clarify for me what changes are accepted for which level of release jump?!
>     >
>     >     wrt. ByteBuffer::align() was unused, and I guess I could have added that this method
>     >     was broken.  So in addition to being unused it was also unusable.
>     >
>     >
>     > So - should I just remove the call?
>
>     Remove from?  pvDataCPP or some ITER code?
>
>
> ITER code, of course. The EPICS modules you have taken care of, I guess.

Ah, then you have the larger problem of potentially being subject to the broken-ness.

Since I know you are under a time constraint, in the short term I would suggest reverting
07b79693af66812c02044c36f1eb2e7cc3cabe8c locally.

The larger issue is that ByteBuffer::align() is computing based on the alignment of
the char* internal to the ByteBuffer, as opposed to the start of serialization.
Since PVD supports serialization in multiple parts at the discretion of the sender,
this opens the possibility of unexpected padding being added to longer messages.

Got it.
Since we are building Base converted into a CODAC module from our Subversion repository with ~75 downstream modules depending on it, reverting a specific upstream git commit is pretty far from being a trivial and quick operation.
Is there any up-to-date doc on how user code should handle alignment nowadays? Or a piece of code that shows it?

Thanks a lot,
~Ralph


Replies:
Re: Base 7.0.5 / pvDatabaseCPP 4.5.3 / pvDataCPP 8.0.4 (8.1.0?) Michael Davidsaver via Core-talk
References:
Base 7.0.5 / pvDatabaseCPP 4.5.3 / pvDataCPP 8.0.4 (8.1.0?) Ralph Lange via Core-talk
Re: Base 7.0.5 / pvDatabaseCPP 4.5.3 / pvDataCPP 8.0.4 (8.1.0?) Michael Davidsaver via Core-talk
Re: Base 7.0.5 / pvDatabaseCPP 4.5.3 / pvDataCPP 8.0.4 (8.1.0?) Ralph Lange via Core-talk
Re: Base 7.0.5 / pvDatabaseCPP 4.5.3 / pvDataCPP 8.0.4 (8.1.0?) Michael Davidsaver via Core-talk
Re: Base 7.0.5 / pvDatabaseCPP 4.5.3 / pvDataCPP 8.0.4 (8.1.0?) Ralph Lange via Core-talk
Re: Base 7.0.5 / pvDatabaseCPP 4.5.3 / pvDataCPP 8.0.4 (8.1.0?) Michael Davidsaver via Core-talk

Navigate by Date:
Prev: Build failed: EPICS Base 7 base-7.0-233 AppVeyor via Core-talk
Next: Re: Base 7.0.5 / pvDatabaseCPP 4.5.3 / pvDataCPP 8.0.4 (8.1.0?) Michael Davidsaver via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024  2025 
Navigate by Thread:
Prev: Re: Base 7.0.5 / pvDatabaseCPP 4.5.3 / pvDataCPP 8.0.4 (8.1.0?) Michael Davidsaver via Core-talk
Next: Re: Base 7.0.5 / pvDatabaseCPP 4.5.3 / pvDataCPP 8.0.4 (8.1.0?) Michael Davidsaver via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024  2025 
ANJ, 12 Mar 2021 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions ·
· Download · Search · IRMIS · Talk · Documents · Links · Licensing ·