On 6/3/20 12:56 AM, Scott Little wrote:
This was an interesting one.
Yes, indeed, great investigative work!
We have been building librados2-13.2.2-0.el7.tis.25.x86_64.rpm as part of the distro layer for some time.
A recent update added librados2-13.2.10-0.el7.x86_64.rpm to the lst of the flock layer.
It looks like that commit actually added both librados2-13.2.10 and 13.2.2! My bad for not catching that. I was not aware that librados2 was being build as part of Ceph, I guess this is something we should be generally aware of. That change also brought in a load of Ceph related packages (ceph-common, libcephfs2, ...), so there might be additional collisions that we don't know about yet!
Now build-iso preferres locally built packages over downloaded ones, even if the downloaded on is of higher version. Now that policy is open for debate, but that is what it does.
Monolithic build uses the lst files of all layers, but having built librados2-13.2.2-0.el7.tis.25.x86_64.rpm, it selects librados2-13.2.2-0.el7.tis.25.x86_64.rpm over librados2-13.2.10-0.el7.x86_64.rpm when building the iso.
Flock layer build, downloads librados2-13.2.2-0.el7.tis.25.x86_64.rpm from the distro layer build. It doesn't build it itself. The downloads from the two sources are lumped into a common repo, so it has no reason to prefer the lower versioned rpm. It selects librados2-13.2.10-0.el7.x86_64.rpm.
Good research! This makes sense (I guess initially)
The final piece of the puzzle is the transitive list of requires for librados2-13.2.10-0.el7.x86_64.rpm. It has a new dependency that pulls in lttng-ust-2.10.0-1.el7.x86_64.rpm, which in turn needs userspace-rcu-0.10.0-3.el7.x86_64.rpm, which is not present. It's wasn't included in the recent lst file changes that added librados2-13.2.10-0.el7.x86_64.rpm.
We do have userspace-rcu in distro, and lttng-ust is only part of the flock. It seems we have userspace-rcu-devel only in flock. So yeah this seems to be some problem here.
A flock layer build-iso should have caught this. I suspect build-iso was only performed on a monolithic build.
I know we probably don't have time, but it would be interesting to verify why the monolithic build not catch this and if the flock layer would actually catch it.
Open questions. 1) Is there a need to move to librados2-13.2.10 from librados2-13.2.2. If yes, do we still need whatever modifications were applied to librados2-13.2.2? Do they need to be ported to librados2-13.2.10 , or can we drop librados2 from the set of packages we have patches against?
As I mentioned above, librados2 is build as part of Ceph, so an additional question is would Ceph-13.2.2 have issues using librados2-13.2.10? Or any of the other upgraded Ceph related packages that got updated? Do we need to up-rev Ceph and build for both python2 or python3?
2) For build-iso... should we prefer locally built packages even though there is a higher package named in an lst? If yes, then layered build needs apply the local first policy accross layers. Alternatively, perhaps drop the local first policy, but add an audit tool to detect when a locally built package is being masked in this way.
Is this an edge case or common? Do we know what other cases like this and maybe that informs what kind of audit tool is needed. So, adding an audit tool might have caught this. The librados2 is not actually in any list as it's build as part of Ceph, it comes in as a Requires: for Ceph. The python3 update added it to the flock/rpms_centos.lst file. Yes, I ducked the local vs higher question right now, maybe knowing the answer about Ceph's usage would help and if we have this issue elsewhere will help me. Sau!
Scott
On 2020-06-02 10:30 p.m., build.starlingx@gmail.com wrote:
Project: STX_build_layer_flock_master_master Build #: 132 Status: Still Failing Timestamp: 20200603T020359Z
Check logs at: http://mirror.starlingx.cengn.ca/mirror/starlingx/master/centos/flock/202006... -------------------------------------------------------------------------------- Parameters
FULL_BUILD: false FORCE_BUILD: false
_______________________________________________ Starlingx-discuss mailing list Starlingx-discuss@lists.starlingx.io http://lists.starlingx.io/cgi-bin/mailman/listinfo/starlingx-discuss
_______________________________________________ Starlingx-discuss mailing list Starlingx-discuss@lists.starlingx.io http://lists.starlingx.io/cgi-bin/mailman/listinfo/starlingx-discuss