rgw: upgrade Apache Arrow submodule to 15.0.0 - #56585
Conversation
|
jenkins test make check |
|
jenkins test api |
|
Ping @kalebskeithley @galsalomon66 . |
|
strange error from 'make check'
|
3f95e54 to
61f6223
Compare
|
I was hoping I could make local changes to the submodule, but that generated a different commit hash, and that could not be fetched. I think to maintain local changes we'd have to either make it a subdirectory rather than a submodule, or temporarily create our own repo for the modified version. There was an accidental ABI change that originated in 15.0.1 and continues to 15.0.2, and is expected to revert in 16.*. Do we need to care about that, @kalebskeithley and @galsalomon66 ? |
|
jenkins test make check |
|
jenkins test api |
|
So this isn't building because Arrow apparently wants xsimd version >= 8.1.0. Need to figure out how best to resolve that. |
i did a limited test(standalone application) against 15.0.2, so .. I can not tell something about this ABI change. |
i see that epel9 has xsimd-devel-9.0.1 but ubuntu jammy (22.04LTS) is on libxsimd-dev 7.6.0. ubuntu 23.04 has 8.1.0 but we'd probably need to add a submodule as long as we support jammy |
|
Fails to build on F39 as well with a cmake ERROR.
If I install xsimd-devel manually it gets past that error and builds successfully so might need to add that package to install-deps of some other dependency list? |
Yeah, I'm OK using 15.0.0 until the ABI issue is correctred in 16.*. |
61f6223 to
3be99f0
Compare
|
Please note: the branch name ( |
3be99f0 to
fbea608
Compare
|
I can confirm this now resolves the issue with building on f39, thanks @ivancich |
|
jenkins test make check |
|
jenkins test api |
|
@galsalomon66 I believe I've resolved the xsimd issue. It's now not building due to arrow changes forcing s3select changes. Are you ready with the minimal patch or commit off of main that would make s3select compatible with Arrow 15.0.0, so we can add it to this PR and get it merged? |
There was a problem hiding this comment.
much better than another submodule 👍
|
this PR contains changes related to v15.0.0 it is not mandatory to merge it. |
Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
61f6223 to
cc2adc7
Compare
|
So it looks like this will pass CI tests as I added a commit to the |
Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
cc2adc7 to
b035d92
Compare
|
jenkins test make check |
|
|
yay! |
…sues Update arrow submodule. Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
b035d92 to
06d0574
Compare
|
Should this be backported to squid? |
we weren't planning to backport. is there a need for it? |
apache/arrow#13902 |
@cbodley The old arrow version fails compilation with upcoming Debian 13 "Trixie"'s libabseil version, as the old arrow version is using C++11 while Trixie's abseil lib is requiring at least C++17. This might be fixed otherwise, e.g., I did not look into how bad it would be to compile the old arrow version as C++17, but updating arrow would reduce some tech debt and fix it too. As Ceph Squid is currently the most recent stable release it would be great to have this fixed in one way or another. Edit: forgot to mention: Debian currently does not have |
great, no objection to backporting
thanks. it would be nice to address this, because it would allow Ceph to drop this submodule entirely ( |
|
alright, so I'll try to prepare this. Should I do a single tracking issue and PR for all backports that are required to get Ceph Squid to build on Debian Trixie, or do you prefer to have these split up and submitted separately? A bit more context: As of now I backported the Apache Arrow upgrade (#56585), using newer python APIs in mgr (#58199) that would bump the minimum required Python version to 3.9 though. And finally there is the removal of the Python distutils package with Python 3.12 as per PEP 632, which was partially addressed in #59888 and that has even been partially backported for other reasons, the commit ffcc157 ("pybind/mgr: replace imports of distutils.util") is still missing and if one searches the code base on the current main branch one still finds quite a few uses of distutils inside various Python files (e.g. src/pybind/rbd/setup.py), so not sure yet if that part is actually fully addressed already. But anyhow, that's now derailing the topic of this PR rather a bit much (sorry), but I'd be still thankful for a hint for my question about split PR or not. |
i won't be able to help with review/testing of the python stuff, so i'd prefer a separate backport for arrow changes |
Apache Arrow was basically never updated and we got a ancient version of 6.5, which breaks compilation due to using c++11, which the abseil library version from Bookworm doesn't support anymore. Upstream upgraded it's arrow git submodule [0] in response to compilation errors for the (future) Ceph 20 Tentacle release, but it's not (yet) backported to Squid. As we check in the processed source tarball we cannot just update a git submodule here, but rather I copied over the src/arrow directory from ceph tentacle branch. [0]: ceph/ceph#56585 Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Signed-off-by: Anagh Kumar Baranwal <6824881+darthShadow@users.noreply.github.com>
Upgrades Apache Arrow. Update RGW Arrow Flight code to work with Apache Arrow API changes.
Fixes: https://tracker.ceph.com/issues/64803
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "quincy"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
When filling out the below checklist, you may click boxes directly in the GitHub web UI. When entering or editing the entire PR message in the GitHub web UI editor, you may also select a checklist item by adding an
xbetween the brackets:[x]. Spaces and capitalization matter when checking off items this way.Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume toxjenkins test windowsjenkins test rook e2e