-
-
Notifications
You must be signed in to change notification settings - Fork 23
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
Compatibility issues with grpcio on conda-forge #136
Comments
Can you try again with ray-2.9.0 which was released a few hours ago? |
Using ray 2.9.0 and grpcio:
It seems like ray 2.9.0 is also broken in that it doesn't specify any minimum grpcio version pins - it should be Logs:
|
Hmm. I think the pin was removed in dcc2f63 by @timkpaine. Was there a reason for that? |
FWIW, the pin |
If this is not supported, then why does it solve? Additionally, the conda-forge pinning repo specifies 1.58, which is why my environment picked 1.58 - many other packages (correctly) pin to the grpcio version they built against. Where is the upstream pin you speak of? |
Really I think the problem here is two fold:
|
1.57.1 is the upstream version - https://github.com/ray-project/ray/blob/ray-2.9.0/bazel/ray_deps_setup.bzl#L246 This is unfortunate as it is broken on conda-forge:
1.57.0 works, but given the conda-forge wide pin it would be better to get 1.58 working: https://github.com/conda-forge/conda-forge-pinning-feedstock/blob/main/recipe/conda_build_config.yaml#L496-L497 |
Please address upstream https://github.com/ray-project/ray/blob/master/python/setup.py if pinning grpc is desired However I don't think this has anything to do with ray, grpcio-tools is not available for those versions you show as broken and grpc version must == grpcio-tools version. We don't have a dep on that, some other dependency must be bringing it in without a proper version constraint. (E.g. your conda-forge/grpcio-tools-feedstock#26) |
This is definitely a conda-forge packaging issue. Installing ray 2.8.1 and grpcio 1.58.0 using pip works:
Installing ray 2.8.1 and grpcio 1.58.1 using conda-forge does not:
As you can see, grpcio-tools is not installed in this environment:
|
@timkpaine I don't understand why you closed this. Clearly there is a problem, see the comment above. That is why we had a pin for grpcio in this recipe. Now it is true that pin does not come from upstream, but it is needed for conda-forge. I think there is something subtly wrong with the interaction between ray's vendored grpcio and the one in cond-forge. Also related to #90. |
I don't understand the comments about grpcio-tools. Could you explain a bit more what you mean by
|
There is nothing wrong with this recipe, and any pinning of grpc needs to be done upstream in ray. We shouldn't be pinning things that upstream doesn't do, except out of necessity. This issue should be closed as there's nothing actionable here. If you want to force certain grpc versions for certain prior ray versions, use https://github.com/conda-forge/conda-forge-repodata-patches-feedstock.
The pin used was arbitrary and not actively maintained, which is a good reason to avoid and fix the root cause of things |
It seems like perhaps the grpcio 1.58.x package itself is broken on conda-forge. env1.yml
env2.yml
Makefile
run run run Specifically copying the cython extension from the pypi release of grpcio 1.58.0 over top of the conda-forge build of grpcio 1.58.1 fixes this. Not sure how to proceed here. |
Probably worth reporting on the grpc-cpp feedstock, I also observed widespread problems with 1.58 on conda and went to 1.57, but I thought it was due to bad interactions with grpcio-tools which you've shown to not be the case. Again, if there's action to be taken, it needs to be in the repodata patches repo. If e.g. you add a pin here for ray and increment the build number to |
@timkpaine please do not close this issue until we have reached a resolution. |
@mattip please stop reopening it, it is not resolvable in this repo... Ray works fine with grpc 1.58 as already demonstrated above. If there is a problem with conda forge's grpc 1.58, it should not be resolved in this repo (will need to be |
I opened conda-forge/grpc-cpp-feedstock#343. I am not convinced that the problem lies elsewhere: the grpcio feedstock is in use by other projects and they did not report problems with 1.58 (from the feedstock). It may be some subtle interaction with the way conda-forge builds grpcio and the way bazel builds ray. I am glad we can suggest a solution, which is to avoid (ray2.8.0, ray2.9.0) + grpcio 1.58 (from conda-forge), even if we have no way to enforce it. Do we know if the same problem occurs with earlier versions of ray? Edit: try make it clear that the 1.58 problems are only with the conda-forge build, not with a pip-installed version |
@mattip There is a way to enforce it, which is the main way via repodata-patches. We can easily say "when you use ray on conda, don't use grpc 1.58" and it will be effective across all released versions vs e.g. putting a pin in this repo will not effect any of the existing released versions. I would also suspect a bad interaction given ray's vendoring of grpc, but its strange that it is only certain grpc versions (and there's issues on the grpc feedstock to suggest other bad interactions, so I wouldn't write-off the possibility that 1.58 is just subtley broken in general). |
Here's a great example (by the OP!) conda-forge/conda-forge-repodata-patches-feedstock#618 |
TL;DR: @apmorton did you come across this problem when trying to install a certain combination of packages without pinning versions? Or is there a reason you are interested in grpcio<1.59? I did a dependency analysis using
Here are the results
TL;DR: most packages have updated to 1.60. The packages that do not pin grpcio (like ray-core 2.9.0) are reported as depending on grpcio-1.14. Here are the ones that are left:
Trying to install these packages together with ray-client
Those last two packages seem to be unmaintained and not very popular. Bottom line: are there packages that in practice resolve with ray to a bad version of grpcio? |
I am going to close this for now. I think the problems with jax (mehtioined elsewhere as a source of problems with ray's grcpio pin) trancend just ray, and prevent jax being used with many other conda-forge packages that also adopted the current conda-forge migration to grcpio 1.59. |
Solution to issue cannot be found in the documentation.
Issue
The following works if you install
grpcio<1.56
:Installed packages
--- name: test channels: - conda-forge dependencies: - ray-all 2.8.1 - grpcio 1.58.2
Environment info
Related #90
The text was updated successfully, but these errors were encountered: