-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for Centos9 Stream + GCC12 #9903
Conversation
✅ Deploy Preview for meta-velox canceled.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we need to clean up scripts/ at some point ^^ The docker.yml workflow will need to be updated as well
LGTM so far, let's test it in CI like you suggested!
scripts/centos-9-stream.dockerfile
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is anything using this, a quick grep didn't show anything? If not we should remove it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
removed.
scripts/circleci-container.dockfile
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is also defunct imo and should be removed :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for these changes!
I have only a few comments.
scripts/setup-centos9.sh
Outdated
function install_cuda { | ||
# See https://developer.nvidia.com/cuda-downloads | ||
dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo | ||
yum install -y cuda-nvcc-$(echo $1 | tr '.' '-') cuda-cudart-devel-$(echo $1 | tr '.' '-') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As discussed the path on line 190 needs update to RHEL9.
https://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo
Should probably use dnf. Also this doesn't work with how the install functions are called. $1 is never set. $1 is representing a version in the form major.minor (e.g. 12.5) which gets converted to major-minor (e.g. 12-5) which is the suffix for the packages. We don't have to fix it here but without a change to the file this function cannot be used as input to the script.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the github workflow file, I see that this is invoked along with the version.
I don't see why we can't include the CUDA version in this script via an ENV variable.
I will followup on this separately.
scripts/setup-centos9.sh
Outdated
function install_velox_deps_from_dnf { | ||
dnf_install libevent-devel \ | ||
openssl-devel re2-devel libzstd-devel lz4-devel double-conversion-devel \ | ||
libdwarf-devel curl-devel libicu-devel bison flex libsodium-devel zlib-devel |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As discussed, lets add elfutils-libelf-devel
. This is needed to ensure that folly is able to turn on the symbolization for the stacktraces. It isn't present by default.
scripts/setup-centos9.sh
Outdated
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
# This script documents setting up a Centos8 host for Velox |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo: Centos8 -> Centos9.
scripts/setup-centos9.sh
Outdated
# Use "n" to never wipe directories. | ||
# | ||
# You can also run individual functions below by specifying them as arguments: | ||
# $ scripts/setup-centos8.sh install_googletest install_fmt |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo: centos8 -> centos9 or centos.
1aa2734
to
14f8e14
Compare
@assignUser CUDA 11.8 is not supported with GCC 12.2.1. |
bdbb779
to
3ca9cf9
Compare
I think there was some discussion about this in the PR adding cuda to adapters but I don't know any specifics #9335 |
We also need to upgrade the base image for the java build. |
c483cc6
to
37cb6dd
Compare
This should fix the abseil issue (it needs to be built with C++17 so absl::string_view == std::stringview): diff --git a/scripts/setup-adapters.sh b/scripts/setup-adapters.sh
index 7a487e877..679729f99 100755
--- a/scripts/setup-adapters.sh
+++ b/scripts/setup-adapters.sh
@@ -61,7 +61,7 @@ function install_gcs-sdk-cpp {
github_checkout abseil/abseil-cpp 20240116.2 --depth 1
cmake_install \
-DABSL_BUILD_TESTING=OFF \
- -DCMAKE_CXX_STANDARD=14 \
+ -DCMAKE_CXX_STANDARD=17 \
-DABSL_PROPAGATE_CXX_STD=ON \
-DABSL_ENABLE_INSTALL=ON |
11ecd48
to
78fae2c
Compare
@assignUser thanks for the pointer. I was searching for ABSL_USE_STRINGVIEW. I had a hunch that the CXX standard was different. |
@majetideepak any reason to keep it in draft ? |
@kgpai Multiple issues came up and are now fixed. |
In Linux release with adapters
|
I see |
It's a test dependency for gcs and should be installed in the env of the docker file. I can take a look |
I see it is installed in: However I don't really know how to add it to the image used in the current PR. |
@tigrux, I added a new |
@majetideepak I just rebuild the adapters image with the docker file from this PR and it does install testbench in the environment:
But when I run the same command in the tmp container used in ci nothing is installed:
You probably need to just rebuild and push your container? |
@assignUser thanks! I was using podman to build the image in a background shell. I now see the following log
|
ab742e3
to
0389831
Compare
There is one last test failure |
0389831
to
ee88f95
Compare
I opened a separate PR for the last commit #10079 |
All tests are now passing. |
ee88f95
to
f737f37
Compare
Summary: I noticed in #9903 that the upload errors due to missing credentials. This PR adds a guard that allows the job to finish ✔️ even from a fork. It will still run the upload (for testing) when the PR is from within the main repo. Pull Request resolved: #10080 Reviewed By: bikramSingh91 Differential Revision: D58244591 Pulled By: kevinwilfong fbshipit-source-id: e75bf84292ad046dfc85be9f1a3b813af474cf11
Summary: Pass by value to avoid strict aliasing issues for REAL and DOUBLE types. We are seeing the HivePartitionFunctionTest failing with GCC12 here #9903 Pull Request resolved: #10079 Reviewed By: Yuhta Differential Revision: D58294082 Pulled By: kevinwilfong fbshipit-source-id: 765af472a35d1f8f2b619d5c58ee4399a8359ee2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
f737f37
to
a5d847a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. Can mark for merge after fix of nit.
.github/workflows/build-metrics.yml
Outdated
@@ -37,7 +37,7 @@ jobs: | |||
name: Linux ${{ matrix.type }} with adapters | |||
if: ${{ github.repository == 'facebookincubator/velox' }} | |||
runs-on: ${{ matrix.runner }} | |||
container: ghcr.io/facebookincubator/velox-dev:adapters | |||
container: docker.io/majetideepak4/velox:adapters9 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: I presume this was for testing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed!
a5d847a
to
ff9351c
Compare
ff9351c
to
7da4072
Compare
@kgpai has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator. |
Summary: Resolves facebookincubator#9879 Pull Request resolved: facebookincubator#9903 Reviewed By: kevinwilfong Differential Revision: D58491851 Pulled By: kgpai fbshipit-source-id: 5edbb6c9b5eff40adc0888291a9107c078d1125e
Conbench analyzed the 1 benchmark run on commit There were no benchmark performance regressions. 🎉 The full Conbench report has more details. |
…bator#10080) Summary: I noticed in facebookincubator#9903 that the upload errors due to missing credentials. This PR adds a guard that allows the job to finish ✔️ even from a fork. It will still run the upload (for testing) when the PR is from within the main repo. Pull Request resolved: facebookincubator#10080 Reviewed By: bikramSingh91 Differential Revision: D58244591 Pulled By: kevinwilfong fbshipit-source-id: e75bf84292ad046dfc85be9f1a3b813af474cf11
Summary: Pass by value to avoid strict aliasing issues for REAL and DOUBLE types. We are seeing the HivePartitionFunctionTest failing with GCC12 here facebookincubator#9903 Pull Request resolved: facebookincubator#10079 Reviewed By: Yuhta Differential Revision: D58294082 Pulled By: kevinwilfong fbshipit-source-id: 765af472a35d1f8f2b619d5c58ee4399a8359ee2
Summary: Resolves facebookincubator#9879 Pull Request resolved: facebookincubator#9903 Reviewed By: kevinwilfong Differential Revision: D58491851 Pulled By: kgpai fbshipit-source-id: 5edbb6c9b5eff40adc0888291a9107c078d1125e
Resolves #9879