Skip to content

Conversation

barakmich
Copy link
Contributor

Why are these changes needed?

We've been building our wheels from an apache-arrow manylinux1 container. In discussion with the community and the team, we feel manylinux2014 is an appropriate standard for our users going forward. This change makes that happen, and also uses the upstream, standard manylinux build containers (https://github.com/pypa/manylinux) instead of one we maintain.

Related issue number

Closes #9666

Checks

  • I've run scripts/format.sh to lint the changes in this PR.
  • I've included any doc changes needed for https://docs.ray.io/en/master/.
  • I've made sure the tests are passing. Note that there might be a few flaky tests, see the recent failures at https://flakey-tests.ray.io/
  • Testing Strategy
    • Unit tests
    • Release tests
    • This PR is not tested :(

@barakmich
Copy link
Contributor Author

Now to see if Travis builds it correctly.... 🤔

@ericl ericl self-assigned this Oct 27, 2020
@ericl
Copy link
Contributor

ericl commented Oct 27, 2020

Is this ready for review? Removing tag for now

build --remote_upload_local_results=false
EOF
fi
fi
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need this new script?

@ericl ericl added @author-action-required The PR author is responsible for the next step. Remove tag to send back to the reviewer. and removed ray-team-action-required labels Oct 27, 2020
@barakmich barakmich force-pushed the manylinux2014 branch 4 times, most recently from 90c718c to 52236f1 Compare October 28, 2020 05:27
@@ -54,6 +60,8 @@ for ((i=0; i<${#PYTHONS[@]}; ++i)); do
# dashboard directory.
git clean -f -f -x -d -e .whl -e python/ray/new_dashboard/client -e dashboard/client

export BAZEL_LINKLIBS="-l%:libstdc++.a"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, does this mean we are linking libstdc++ statically? That looks a little sketchy to me. Probably we should dynamically link against the C++ standard library that comes with the manylinux2014 container.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep. That's exactly what's happening though -- we're linking the libstdc++ in the manylinux2014 container.

Copy link
Contributor

@pcmoritz pcmoritz Oct 28, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is linking it statically, but we should be linking it dynamically. I have seen problems in the past where we have had two different versions of the standard library used in one executable which produced segfaults because some global objects clashed. My understanding is that this could be happening with this if e.g. a python module imports the c++ standard lib dynamically.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@barakmich What happens if you remove this line, does it still work?

@@ -9,7 +9,7 @@ produce .whl files owned by root.
Inside the root directory (i.e., one level above this python directory), run

```
docker run -e TRAVIS_COMMIT=<commit_number_to_use> --rm -w /ray -v `pwd`:/ray -ti rayproject/arrow_linux_x86_64_base:python-3.8.0 /ray/python/build-wheel-manylinux1.sh
docker run -e TRAVIS_COMMIT=<commit_number_to_use> --rm -w /ray -v `pwd`:/ray -ti quay.io/pypa/manylinux2014_x86_64 /ray/python/build-wheel-manylinux2014.sh
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

@@ -110,8 +110,8 @@ def _build_cpu_gpu_images(image_name) -> List[str]:
) - current_iter >= datetime.timedelta(minutes=5):
current_iter = datetime.datetime.now()
elapsed = datetime.datetime.now() - start
print(f"Still building {tagged_name} after "
f"{elapsed.seconds} seconds")
# print(f"Still building {tagged_name} after "
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cleanup?

@@ -54,6 +61,8 @@ for ((i=0; i<${#PYTHONS[@]}; ++i)); do
# dashboard directory.
git clean -f -f -x -d -e .whl -e python/ray/new_dashboard/client -e dashboard/client

# export BAZEL_LINKLIBS="-l%:libstdc++.a"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove this?

Copy link
Contributor

@pcmoritz pcmoritz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, there are two small cleanups I marked :)

@pcmoritz pcmoritz merged commit 05c4e3f into ray-project:master Nov 4, 2020
@barakmich barakmich deleted the manylinux2014 branch November 4, 2020 21:21
@ericl
Copy link
Contributor

ericl commented Nov 4, 2020

This is great!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
@author-action-required The PR author is responsible for the next step. Remove tag to send back to the reviewer.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add manylinux2014 wheels to build
3 participants