grpc: [setuptools] [distutils] Python builds failed on master

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 17 (15 by maintainers)

Most upvoted comments

~I don’t think pinning back setuptools is sufficient. Right now, if someone on Debian or Ubuntu does pip install grpcio, it won’t work.~

Just tested the debian:latest Docker image with setuptools 50.0.0. It worked with no modifications. A Debian user would have to explicitly update their setuptools to hit this problem, so I agree that pinning back in CI should be sufficient for now. If we receive any user issues about this, we can just recommend the SETUPTOOLS_USE_DISTUTILS environment variable.

It’s worth mentioning the PR removing wrap-memory hack. This would be helpful to stay with setuptool 50 in future. Note that it sill has another problem with Windows Python, TypeError: _commandfile_spawn() got an unexpected keyword argument 'env'. (test)

Interesting. Whatever changed in setuptools, it’s causing the __wrap_memcpy hack to fail:

    /usr/include/unistd.h:366:16: note: code may be misoptimized unless -fno-strict-aliasing is used
    /tmp/ccdqoMwn.ltrans1.ltrans.o: In function `grpc_core::(anonymous namespace)::XdsRoutingLb::RoutePicker::Pick(grpc_core::LoadBalancingPolicy::PickArgs) [clone .lto_priv.4464]':
    <artificial>:(.text+0x389e): undefined reference to `__wrap_memcpy'
    <artificial>:(.text+0x38c8): undefined reference to `__wrap_memcpy'
    <artificial>:(.text+0x39a5): undefined reference to `__wrap_memcpy'
    /tmp/ccdqoMwn.ltrans3.ltrans.o: In function `http_client_start_transport_stream_op_batch(grpc_call_element*, grpc_transport_stream_op_batch*)':
    <artificial>:(.text+0x17034): undefined reference to `__wrap_memcpy'
    <artificial>:(.text+0x170bd): undefined reference to `__wrap_memcpy'
    /tmp/ccdqoMwn.ltrans3.ltrans.o:<artificial>:(.text+0x1742a): more undefined references to `__wrap_memcpy' follow
    collect2: error: ld returned 1 exit status