Skip to content
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

Error when running the Python Sample #53

Open
ochowie opened this issue Aug 7, 2015 · 7 comments
Open

Error when running the Python Sample #53

ochowie opened this issue Aug 7, 2015 · 7 comments

Comments

@ochowie
Copy link

ochowie commented Aug 7, 2015

After installing the package either on Linux or Mac I get the following error when I run a sample from the grpc-common repo.

*** Linux Version ****
File "greeter_server.py", line 34, in
import helloworld_pb2
File "/home/arthur_zeyda/grpc-common/python/helloworld/helloworld_pb2.py", line 111, in
from grpc.early_adopter import implementations
File "/usr/local/lib/python2.7/dist-packages/grpc/early_adopter/implementations.py", line 34, in
from grpc._adapter import fore as _fore
File "/usr/local/lib/python2.7/dist-packages/grpc/_adapter/fore.py", line 38, in
from grpc._adapter import _intermediary_low as _low
File "/usr/local/lib/python2.7/dist-packages/grpc/_adapter/_intermediary_low.py", line 57, in
from grpc._adapter import _low
File "/usr/local/lib/python2.7/dist-packages/grpc/_adapter/_low.py", line 30, in
from grpc._adapter import _c
ImportError: /usr/local/lib/python2.7/dist-packages/grpc/_adapter/_c.so: undefined symbol: grpc_jwt_credentials_create

*** Mac Version *****
ImportError: dlopen(/Users/azeyda/Code/grpc/python_virtual_environment/lib/python2.7/site-packages/grpc/_adapter/_c.so, 2): Symbol not found: _gpr_convert_clock_type
Referenced from: /Users/azeyda/Code/grpc/python_virtual_environment/lib/python2.7/site-packages/grpc/_adapter/_c.so
Expected in: flat namespace
in /Users/azeyda/Code/grpc/python_virtual_environment/lib/python2.7/site-packages/grpc/_adapter/_c.so

@soltanmm
Copy link

soltanmm commented Aug 7, 2015

Where are you getting/building the gRPC library binaries from? Where are you getting/building the gRPC Python library binary _c.so from?

First thoughts:

On July 7 this commit went in via this PR. That changed the symbols, and this commit changed the Python code on July 22nd via this PR.

I'm not sure, but this might be a problem upstream given that the bottle uses the 0.10.0 release, as that release doesn't appear to contain either of the commits above. I'm not sure, though, without knowing a little more explicitly about how you got your libs.

@ochowie
Copy link
Author

ochowie commented Aug 7, 2015

So I'm building the core gRPC binaries from the main gRPC repo and I assume I'm getting the Python library binary from the bottle(?). As an experiment, I tried following the steps in the GRPC python docker image (which doesn't use brew) and that worked so it seems like your hunch is correct. In fact, on one of my failed iterations, I followed the dockerfile steps for everything but that doesn't build the grpc_python_plugin and when I tried getting that via brew I got the same error as above. However, on the next attempt when i build the grpc_python_plugin from source everything worked correctly. So it seems like there is something missing from the brew installation.

@soltanmm
Copy link

soltanmm commented Aug 7, 2015

Yeah, I don't think we have any guarantees that branch master of the gRPC repo will work with anything anywhere at any time. Your best bet's sticking with the release branches (release 0.10.0 should work with the homebrew install).

@ochowie
Copy link
Author

ochowie commented Aug 7, 2015

So you would suggest either building everything from master or grabbing the
release branch? Can I grab the most recent release or does the bottle only
work with specific releases? Also, should the brew install be self
contained or do I still need the core grpc binary?

Thanks,
Arthur

On Fri, Aug 7, 2015 at 4:42 PM, Masood Malekghassemi <
[email protected]> wrote:

Yeah, I don't think we have any guarantees that branch master of the gRPC
repo will work with anything anywhere at any time. Your best bet's sticking
with the release branches.


Reply to this email directly or view it on GitHub
#53 (comment).

@soltanmm
Copy link

soltanmm commented Aug 8, 2015

@tbetbetbe What's the policy?

@nicolasnoble
Copy link
Member

The policy is that while we're still in alpha, we're very much prone to
break the API and backward compatibility. As we're going to enter Beta,
we'll start to guarantee that the API/ABI will be stable from that point
forward. We might still do API/ABI-breaking changes, but we'll try to
minimize them the best we can, and limit them to crucial updates only. A GA
release will then certify we won't change the API/ABI anymore until the
next major version of grpc.

On Fri, Aug 7, 2015 at 5:14 PM, Masood Malekghassemi <
[email protected]> wrote:

@tbetbetbe https://github.com/tbetbetbe What's the policy?


Reply to this email directly or view it on GitHub
#53 (comment).

@soltanmm
Copy link

soltanmm commented Aug 8, 2015

I meant more along the lines of: what are our guarantees with respect to this homebrew install in terms of releases and versioning, if any? e.g. the homebrew install references release 0.10.0; do we guarantee that when installed it should work as intended with an install from the release branch of 0.10.0? etc. etc. etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants