grpc / grpc

The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
https://grpc.io
Apache License 2.0
41.62k stars 10.5k forks source link

Cannot use grpc 1.18.0 under ruby 2.6.0 #17744

Closed graywolf-at-work closed 5 years ago

graywolf-at-work commented 5 years ago

What version of gRPC and what language are you using?

1.18.0 and ruby

What operating system (Linux, Windows, …) and version?

linux 4.20.2

What runtime / compiler are you using (e.g. python version or version of gcc)

ruby 2.6.0

What did you do?

Clone davissp14/etcdv3-ruby, bundle install and bundle exec rspec.

+   $ cd /tmp

+   $ git clone https://github.com/davissp14/etcdv3-ruby
Cloning into 'etcdv3-ruby'...
remote: Enumerating objects: 36, done.
remote: Counting objects: 100% (36/36), done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 1224 (delta 6), reused 22 (delta 5), pack-reused 1188
Receiving objects: 100% (1224/1224), 215.03 KiB | 830.00 KiB/s, done.
Resolving deltas: 100% (647/647), done.

+   $ cd etcdv3-ruby/

+   $ RBENV_VERSION=2.6.0 bundle install --path .bundle/vendor
Fetching gem metadata from https://rubygems.org/........
Resolving dependencies...
Fetching rake 12.3.2
Installing rake 12.3.2
Using bundler 2.0.1
Fetching byebug 10.0.2
Installing byebug 10.0.2 with native extensions
Using json 2.1.0
Fetching docile 1.3.1
Installing docile 1.3.1
Fetching simplecov-html 0.10.2
Installing simplecov-html 0.10.2
Fetching simplecov 0.16.1
Installing simplecov 0.16.1
Fetching url 0.3.2
Installing url 0.3.2
Fetching codecov 0.1.14
Installing codecov 0.1.14
Fetching coderay 1.1.2
Installing coderay 1.1.2
Fetching diff-lcs 1.3
Installing diff-lcs 1.3
Fetching google-protobuf 3.6.1 (x86_64-linux)
Installing google-protobuf 3.6.1 (x86_64-linux)
Fetching googleapis-common-protos-types 1.0.2
Installing googleapis-common-protos-types 1.0.2
Fetching grpc 1.18.0 (x86_64-linux)
Installing grpc 1.18.0 (x86_64-linux)
Using etcdv3 0.9.0 from source at `.`
Fetching method_source 0.9.2
Installing method_source 0.9.2
Fetching pry 0.12.2
Installing pry 0.12.2
Fetching pry-byebug 3.6.0
Installing pry-byebug 3.6.0
Fetching rspec-support 3.8.0
Installing rspec-support 3.8.0
Fetching rspec-core 3.8.0
Installing rspec-core 3.8.0
Fetching rspec-expectations 3.8.2
Installing rspec-expectations 3.8.2
Fetching rspec-mocks 3.8.0
Installing rspec-mocks 3.8.0
Fetching rspec 3.8.0
Installing rspec 3.8.0
Bundle complete! 5 Gemfile dependencies, 23 gems now installed.
Bundled gems are installed into `./.bundle/vendor`

+   $ RBENV_VERSION=2.6.0 bundle exec rake download-etcd
--2019-01-17 14:37:54--  https://github.com/coreos/etcd/releases/download/v3.2.0/etcd-v3.2.0-linux-amd64.tar.gz
Loaded CA certificate '/etc/ssl/certs/ca-certificates.crt'
Resolving github.com (github.com)... 140.82.118.3, 140.82.118.4
Connecting to github.com (github.com)|140.82.118.3|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://github.com/etcd-io/etcd/releases/download/v3.2.0/etcd-v3.2.0-linux-amd64.tar.gz [following]
--2019-01-17 14:37:55--  https://github.com/etcd-io/etcd/releases/download/v3.2.0/etcd-v3.2.0-linux-amd64.tar.gz
Reusing existing connection to github.com:443.
HTTP request sent, awaiting response... 302 Found
Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/11225014/e0a5fbe6-4d06-11e7-91b6-73853151119d?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20190117%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190117T133755Z&X-Amz-Expires=300&X-Amz-Signature=e13c6161d4eb5591df2bbc96d61f69a948e4c7e2c981de613c34d039882cfab8&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Detcd-v3.2.0-linux-amd64.tar.gz&response-content-type=application%2Foctet-stream [following]
--2019-01-17 14:37:55--  https://github-production-release-asset-2e65be.s3.amazonaws.com/11225014/e0a5fbe6-4d06-11e7-91b6-73853151119d?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20190117%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190117T133755Z&X-Amz-Expires=300&X-Amz-Signature=e13c6161d4eb5591df2bbc96d61f69a948e4c7e2c981de613c34d039882cfab8&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Detcd-v3.2.0-linux-amd64.tar.gz&response-content-type=application%2Foctet-stream
Resolving github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)... 52.216.85.131
Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.216.85.131|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10168120 (9.7M) [application/octet-stream]
Saving to: ‘/tmp/d20190117-29835-9ahzkc/etcd.tar.gz’

/tmp/d20190117-29835-9ahzkc/etcd.tar.gz         100%[======================================================================================================>]   9.70M  4.98MB/s    in 1.9s

2019-01-17 14:37:58 (4.98 MB/s) - ‘/tmp/d20190117-29835-9ahzkc/etcd.tar.gz’ saved [10168120/10168120]

etcd-v3.2.0-linux-amd64/
etcd-v3.2.0-linux-amd64/Documentation/
etcd-v3.2.0-linux-amd64/Documentation/tuning.md
etcd-v3.2.0-linux-amd64/Documentation/rfc/
etcd-v3.2.0-linux-amd64/Documentation/rfc/v3api.md
etcd-v3.2.0-linux-amd64/Documentation/dl_build.md
etcd-v3.2.0-linux-amd64/Documentation/metrics.md
etcd-v3.2.0-linux-amd64/Documentation/v2/
etcd-v3.2.0-linux-amd64/Documentation/v2/runtime-configuration.md
etcd-v3.2.0-linux-amd64/Documentation/v2/admin_guide.md
etcd-v3.2.0-linux-amd64/Documentation/v2/tuning.md
etcd-v3.2.0-linux-amd64/Documentation/v2/glossary.md
etcd-v3.2.0-linux-amd64/Documentation/v2/rfc/
etcd-v3.2.0-linux-amd64/Documentation/v2/rfc/v3api.md
etcd-v3.2.0-linux-amd64/Documentation/v2/discovery_protocol.md
etcd-v3.2.0-linux-amd64/Documentation/v2/errorcode.md
etcd-v3.2.0-linux-amd64/Documentation/v2/metrics.md
etcd-v3.2.0-linux-amd64/Documentation/v2/security.md
etcd-v3.2.0-linux-amd64/Documentation/v2/configuration.md
etcd-v3.2.0-linux-amd64/Documentation/v2/docker_guide.md
etcd-v3.2.0-linux-amd64/Documentation/v2/dev/
etcd-v3.2.0-linux-amd64/Documentation/v2/dev/release.md
etcd-v3.2.0-linux-amd64/Documentation/v2/members_api.md
etcd-v3.2.0-linux-amd64/Documentation/v2/auth_api.md
etcd-v3.2.0-linux-amd64/Documentation/v2/backward_compatibility.md
etcd-v3.2.0-linux-amd64/Documentation/v2/etcd_alert.rules
etcd-v3.2.0-linux-amd64/Documentation/v2/platforms/
etcd-v3.2.0-linux-amd64/Documentation/v2/platforms/freebsd.md
etcd-v3.2.0-linux-amd64/Documentation/v2/libraries-and-tools.md
etcd-v3.2.0-linux-amd64/Documentation/v2/implementation-faq.md
etcd-v3.2.0-linux-amd64/Documentation/v2/reporting_bugs.md
etcd-v3.2.0-linux-amd64/Documentation/v2/upgrade_2_2.md
etcd-v3.2.0-linux-amd64/Documentation/v2/internal-protocol-versioning.md
etcd-v3.2.0-linux-amd64/Documentation/v2/README.md
etcd-v3.2.0-linux-amd64/Documentation/v2/upgrade_2_1.md
etcd-v3.2.0-linux-amd64/Documentation/v2/faq.md
etcd-v3.2.0-linux-amd64/Documentation/v2/api_v3.md
etcd-v3.2.0-linux-amd64/Documentation/v2/runtime-reconf-design.md
etcd-v3.2.0-linux-amd64/Documentation/v2/clustering.md
etcd-v3.2.0-linux-amd64/Documentation/v2/proxy.md
etcd-v3.2.0-linux-amd64/Documentation/v2/branch_management.md
etcd-v3.2.0-linux-amd64/Documentation/v2/other_apis.md
etcd-v3.2.0-linux-amd64/Documentation/v2/benchmarks/
etcd-v3.2.0-linux-amd64/Documentation/v2/benchmarks/etcd-2-2-0-rc-memory-benchmarks.md
etcd-v3.2.0-linux-amd64/Documentation/v2/benchmarks/etcd-3-demo-benchmarks.md
etcd-v3.2.0-linux-amd64/Documentation/v2/benchmarks/etcd-2-2-0-benchmarks.md
etcd-v3.2.0-linux-amd64/Documentation/v2/benchmarks/etcd-2-1-0-alpha-benchmarks.md
etcd-v3.2.0-linux-amd64/Documentation/v2/benchmarks/etcd-storage-memory-benchmark.md
etcd-v3.2.0-linux-amd64/Documentation/v2/benchmarks/README.md
etcd-v3.2.0-linux-amd64/Documentation/v2/benchmarks/etcd-2-2-0-rc-benchmarks.md
etcd-v3.2.0-linux-amd64/Documentation/v2/benchmarks/etcd-3-watch-memory-benchmark.md
etcd-v3.2.0-linux-amd64/Documentation/v2/api.md
etcd-v3.2.0-linux-amd64/Documentation/v2/authentication.md
etcd-v3.2.0-linux-amd64/Documentation/v2/04_to_2_snapshot_migration.md
etcd-v3.2.0-linux-amd64/Documentation/v2/upgrade_2_3.md
etcd-v3.2.0-linux-amd64/Documentation/v2/production-users.md
etcd-v3.2.0-linux-amd64/Documentation/dev-guide/
etcd-v3.2.0-linux-amd64/Documentation/dev-guide/grpc_naming.md
etcd-v3.2.0-linux-amd64/Documentation/dev-guide/interacting_v3.md
etcd-v3.2.0-linux-amd64/Documentation/dev-guide/api_reference_v3.md
etcd-v3.2.0-linux-amd64/Documentation/dev-guide/local_cluster.md
etcd-v3.2.0-linux-amd64/Documentation/dev-guide/limit.md
etcd-v3.2.0-linux-amd64/Documentation/dev-guide/experimental_apis.md
etcd-v3.2.0-linux-amd64/Documentation/dev-guide/apispec/
etcd-v3.2.0-linux-amd64/Documentation/dev-guide/apispec/swagger/
etcd-v3.2.0-linux-amd64/Documentation/dev-guide/apispec/swagger/rpc.swagger.json
etcd-v3.2.0-linux-amd64/Documentation/dev-guide/apispec/swagger/v3election.swagger.json
etcd-v3.2.0-linux-amd64/Documentation/dev-guide/apispec/swagger/v3lock.swagger.json
etcd-v3.2.0-linux-amd64/Documentation/dev-guide/api_concurrency_reference_v3.md
etcd-v3.2.0-linux-amd64/Documentation/dev-guide/api_grpc_gateway.md
etcd-v3.2.0-linux-amd64/Documentation/docs.md
etcd-v3.2.0-linux-amd64/Documentation/op-guide/
etcd-v3.2.0-linux-amd64/Documentation/op-guide/runtime-configuration.md
etcd-v3.2.0-linux-amd64/Documentation/op-guide/failures.md
etcd-v3.2.0-linux-amd64/Documentation/op-guide/grpc_proxy.md
etcd-v3.2.0-linux-amd64/Documentation/op-guide/gateway.md
etcd-v3.2.0-linux-amd64/Documentation/op-guide/maintenance.md
etcd-v3.2.0-linux-amd64/Documentation/op-guide/recovery.md
etcd-v3.2.0-linux-amd64/Documentation/op-guide/performance.md
etcd-v3.2.0-linux-amd64/Documentation/op-guide/security.md
etcd-v3.2.0-linux-amd64/Documentation/op-guide/configuration.md
etcd-v3.2.0-linux-amd64/Documentation/op-guide/supported-platform.md
etcd-v3.2.0-linux-amd64/Documentation/op-guide/etcd-sample-grafana.png
etcd-v3.2.0-linux-amd64/Documentation/op-guide/grafana.json
etcd-v3.2.0-linux-amd64/Documentation/op-guide/v2-migration.md
etcd-v3.2.0-linux-amd64/Documentation/op-guide/hardware.md
etcd-v3.2.0-linux-amd64/Documentation/op-guide/etcd3_alert.rules
etcd-v3.2.0-linux-amd64/Documentation/op-guide/runtime-reconf-design.md
etcd-v3.2.0-linux-amd64/Documentation/op-guide/clustering.md
etcd-v3.2.0-linux-amd64/Documentation/op-guide/container.md
etcd-v3.2.0-linux-amd64/Documentation/op-guide/versioning.md
etcd-v3.2.0-linux-amd64/Documentation/op-guide/monitoring.md
etcd-v3.2.0-linux-amd64/Documentation/op-guide/authentication.md
etcd-v3.2.0-linux-amd64/Documentation/dev-internal/
etcd-v3.2.0-linux-amd64/Documentation/dev-internal/discovery_protocol.md
etcd-v3.2.0-linux-amd64/Documentation/dev-internal/release.md
etcd-v3.2.0-linux-amd64/Documentation/dev-internal/logging.md
etcd-v3.2.0-linux-amd64/Documentation/platforms/
etcd-v3.2.0-linux-amd64/Documentation/platforms/freebsd.md
etcd-v3.2.0-linux-amd64/Documentation/platforms/container-linux-systemd.md
etcd-v3.2.0-linux-amd64/Documentation/platforms/aws.md
etcd-v3.2.0-linux-amd64/Documentation/reporting_bugs.md
etcd-v3.2.0-linux-amd64/Documentation/integrations.md
etcd-v3.2.0-linux-amd64/Documentation/README.md
etcd-v3.2.0-linux-amd64/Documentation/demo.md
etcd-v3.2.0-linux-amd64/Documentation/faq.md
etcd-v3.2.0-linux-amd64/Documentation/branch_management.md
etcd-v3.2.0-linux-amd64/Documentation/upgrades/
etcd-v3.2.0-linux-amd64/Documentation/upgrades/upgrade_3_1.md
etcd-v3.2.0-linux-amd64/Documentation/upgrades/upgrade_3_2.md
etcd-v3.2.0-linux-amd64/Documentation/upgrades/upgrade_3_0.md
etcd-v3.2.0-linux-amd64/Documentation/benchmarks/
etcd-v3.2.0-linux-amd64/Documentation/benchmarks/etcd-2-2-0-rc-memory-benchmarks.md
etcd-v3.2.0-linux-amd64/Documentation/benchmarks/etcd-3-demo-benchmarks.md
etcd-v3.2.0-linux-amd64/Documentation/benchmarks/etcd-2-2-0-benchmarks.md
etcd-v3.2.0-linux-amd64/Documentation/benchmarks/etcd-2-1-0-alpha-benchmarks.md
etcd-v3.2.0-linux-amd64/Documentation/benchmarks/etcd-storage-memory-benchmark.md
etcd-v3.2.0-linux-amd64/Documentation/benchmarks/README.md
etcd-v3.2.0-linux-amd64/Documentation/benchmarks/etcd-2-2-0-rc-benchmarks.md
etcd-v3.2.0-linux-amd64/Documentation/benchmarks/etcd-3-watch-memory-benchmark.md
etcd-v3.2.0-linux-amd64/Documentation/production-users.md
etcd-v3.2.0-linux-amd64/Documentation/learning/
etcd-v3.2.0-linux-amd64/Documentation/learning/why.md
etcd-v3.2.0-linux-amd64/Documentation/learning/glossary.md
etcd-v3.2.0-linux-amd64/Documentation/learning/data_model.md
etcd-v3.2.0-linux-amd64/Documentation/learning/auth_design.md
etcd-v3.2.0-linux-amd64/Documentation/learning/api_guarantees.md
etcd-v3.2.0-linux-amd64/Documentation/learning/api.md
etcd-v3.2.0-linux-amd64/README-etcdctl.md
etcd-v3.2.0-linux-amd64/etcdctl
etcd-v3.2.0-linux-amd64/etcd
etcd-v3.2.0-linux-amd64/README.md
etcd-v3.2.0-linux-amd64/READMEv2-etcdctl.md
Etcd downloaded and extracted. Add it to the path:
    export PATH="/tmp/d20190117-29835-9ahzkc/etcd-v3.2.0-linux-amd64:$PATH"

+   $ RBENV_VERSION=2.6.0 PATH="/tmp/d20190117-29835-9ahzkc/etcd-v3.2.0-linux-amd64:$PATH" bundle exec rspec

An error occurred while loading spec_helper.
Failure/Error: require 'google/protobuf'

LoadError:
  cannot load such file -- google/protobuf_c
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:50:in `require'
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:50:in `rescue in <top (required)>'
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:47:in `<top (required)>'
# ./lib/etcdv3/etcdrpc/rpc_pb.rb:4:in `require'
# ./lib/etcdv3/etcdrpc/rpc_pb.rb:4:in `<top (required)>'
# ./lib/etcdv3/etcdrpc/rpc_services_pb.rb:5:in `require_relative'
# ./lib/etcdv3/etcdrpc/rpc_services_pb.rb:5:in `<top (required)>'
# ./lib/etcdv3.rb:4:in `require'
# ./lib/etcdv3.rb:4:in `<top (required)>'
# ./spec/spec_helper.rb:9:in `require'
# ./spec/spec_helper.rb:9:in `<top (required)>'
# ------------------
# --- Caused by: ---
# LoadError:
#   cannot load such file -- google/2.6/protobuf_c
#   ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:48:in `require'

An error occurred while loading ./spec/etcdv3/auth_spec.rb.
Failure/Error: require 'google/protobuf'

LoadError:
  cannot load such file -- google/protobuf_c
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:50:in `require'
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:50:in `rescue in <top (required)>'
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:47:in `<top (required)>'
# ./lib/etcdv3/etcdrpc/rpc_pb.rb:4:in `require'
# ./lib/etcdv3/etcdrpc/rpc_pb.rb:4:in `<top (required)>'
# ./lib/etcdv3/etcdrpc/rpc_services_pb.rb:5:in `require_relative'
# ./lib/etcdv3/etcdrpc/rpc_services_pb.rb:5:in `<top (required)>'
# ./lib/etcdv3.rb:4:in `require'
# ./lib/etcdv3.rb:4:in `<top (required)>'
# ./spec/spec_helper.rb:9:in `require'
# ./spec/spec_helper.rb:9:in `<top (required)>'
# ./spec/etcdv3/auth_spec.rb:1:in `require'
# ./spec/etcdv3/auth_spec.rb:1:in `<top (required)>'
# ------------------
# --- Caused by: ---
# LoadError:
#   cannot load such file -- google/2.6/protobuf_c
#   ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:48:in `require'

An error occurred while loading ./spec/etcdv3/connection_spec.rb.
Failure/Error: require 'google/protobuf'

LoadError:
  cannot load such file -- google/protobuf_c
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:50:in `require'
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:50:in `rescue in <top (required)>'
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:47:in `<top (required)>'
# ./lib/etcdv3/etcdrpc/rpc_pb.rb:4:in `require'
# ./lib/etcdv3/etcdrpc/rpc_pb.rb:4:in `<top (required)>'
# ./lib/etcdv3/etcdrpc/rpc_services_pb.rb:5:in `require_relative'
# ./lib/etcdv3/etcdrpc/rpc_services_pb.rb:5:in `<top (required)>'
# ./lib/etcdv3.rb:4:in `require'
# ./lib/etcdv3.rb:4:in `<top (required)>'
# ./spec/spec_helper.rb:9:in `require'
# ./spec/spec_helper.rb:9:in `<top (required)>'
# ./spec/etcdv3/connection_spec.rb:1:in `require'
# ./spec/etcdv3/connection_spec.rb:1:in `<top (required)>'
# ------------------
# --- Caused by: ---
# LoadError:
#   cannot load such file -- google/2.6/protobuf_c
#   ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:48:in `require'

An error occurred while loading ./spec/etcdv3/connection_wrapper_spec.rb.
Failure/Error: require 'google/protobuf'

LoadError:
  cannot load such file -- google/protobuf_c
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:50:in `require'
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:50:in `rescue in <top (required)>'
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:47:in `<top (required)>'
# ./lib/etcdv3/etcdrpc/rpc_pb.rb:4:in `require'
# ./lib/etcdv3/etcdrpc/rpc_pb.rb:4:in `<top (required)>'
# ./lib/etcdv3/etcdrpc/rpc_services_pb.rb:5:in `require_relative'
# ./lib/etcdv3/etcdrpc/rpc_services_pb.rb:5:in `<top (required)>'
# ./lib/etcdv3.rb:4:in `require'
# ./lib/etcdv3.rb:4:in `<top (required)>'
# ./spec/spec_helper.rb:9:in `require'
# ./spec/spec_helper.rb:9:in `<top (required)>'
# ./spec/etcdv3/connection_wrapper_spec.rb:1:in `require'
# ./spec/etcdv3/connection_wrapper_spec.rb:1:in `<top (required)>'
# ------------------
# --- Caused by: ---
# LoadError:
#   cannot load such file -- google/2.6/protobuf_c
#   ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:48:in `require'

An error occurred while loading ./spec/etcdv3/kv_spec.rb.
Failure/Error: require 'google/protobuf'

LoadError:
  cannot load such file -- google/protobuf_c
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:50:in `require'
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:50:in `rescue in <top (required)>'
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:47:in `<top (required)>'
# ./lib/etcdv3/etcdrpc/rpc_pb.rb:4:in `require'
# ./lib/etcdv3/etcdrpc/rpc_pb.rb:4:in `<top (required)>'
# ./lib/etcdv3/etcdrpc/rpc_services_pb.rb:5:in `require_relative'
# ./lib/etcdv3/etcdrpc/rpc_services_pb.rb:5:in `<top (required)>'
# ./lib/etcdv3.rb:4:in `require'
# ./lib/etcdv3.rb:4:in `<top (required)>'
# ./spec/spec_helper.rb:9:in `require'
# ./spec/spec_helper.rb:9:in `<top (required)>'
# ./spec/etcdv3/kv_spec.rb:1:in `require'
# ./spec/etcdv3/kv_spec.rb:1:in `<top (required)>'
# ------------------
# --- Caused by: ---
# LoadError:
#   cannot load such file -- google/2.6/protobuf_c
#   ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:48:in `require'

An error occurred while loading ./spec/etcdv3/lease_spec.rb.
Failure/Error: require 'google/protobuf'

LoadError:
  cannot load such file -- google/protobuf_c
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:50:in `require'
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:50:in `rescue in <top (required)>'
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:47:in `<top (required)>'
# ./lib/etcdv3/etcdrpc/rpc_pb.rb:4:in `require'
# ./lib/etcdv3/etcdrpc/rpc_pb.rb:4:in `<top (required)>'
# ./lib/etcdv3/etcdrpc/rpc_services_pb.rb:5:in `require_relative'
# ./lib/etcdv3/etcdrpc/rpc_services_pb.rb:5:in `<top (required)>'
# ./lib/etcdv3.rb:4:in `require'
# ./lib/etcdv3.rb:4:in `<top (required)>'
# ./spec/spec_helper.rb:9:in `require'
# ./spec/spec_helper.rb:9:in `<top (required)>'
# ./spec/etcdv3/lease_spec.rb:1:in `require'
# ./spec/etcdv3/lease_spec.rb:1:in `<top (required)>'
# ------------------
# --- Caused by: ---
# LoadError:
#   cannot load such file -- google/2.6/protobuf_c
#   ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:48:in `require'

An error occurred while loading ./spec/etcdv3/lock_spec.rb.
Failure/Error: require 'google/protobuf'

LoadError:
  cannot load such file -- google/protobuf_c
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:50:in `require'
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:50:in `rescue in <top (required)>'
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:47:in `<top (required)>'
# ./lib/etcdv3/etcdrpc/rpc_pb.rb:4:in `require'
# ./lib/etcdv3/etcdrpc/rpc_pb.rb:4:in `<top (required)>'
# ./lib/etcdv3/etcdrpc/rpc_services_pb.rb:5:in `require_relative'
# ./lib/etcdv3/etcdrpc/rpc_services_pb.rb:5:in `<top (required)>'
# ./lib/etcdv3.rb:4:in `require'
# ./lib/etcdv3.rb:4:in `<top (required)>'
# ./spec/spec_helper.rb:9:in `require'
# ./spec/spec_helper.rb:9:in `<top (required)>'
# ./spec/etcdv3/lock_spec.rb:1:in `require'
# ./spec/etcdv3/lock_spec.rb:1:in `<top (required)>'
# ------------------
# --- Caused by: ---
# LoadError:
#   cannot load such file -- google/2.6/protobuf_c
#   ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:48:in `require'

An error occurred while loading ./spec/etcdv3/maintenance_spec.rb.
Failure/Error: require 'google/protobuf'

LoadError:
  cannot load such file -- google/protobuf_c
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:50:in `require'
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:50:in `rescue in <top (required)>'
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:47:in `<top (required)>'
# ./lib/etcdv3/etcdrpc/rpc_pb.rb:4:in `require'
# ./lib/etcdv3/etcdrpc/rpc_pb.rb:4:in `<top (required)>'
# ./lib/etcdv3/etcdrpc/rpc_services_pb.rb:5:in `require_relative'
# ./lib/etcdv3/etcdrpc/rpc_services_pb.rb:5:in `<top (required)>'
# ./lib/etcdv3.rb:4:in `require'
# ./lib/etcdv3.rb:4:in `<top (required)>'
# ./spec/spec_helper.rb:9:in `require'
# ./spec/spec_helper.rb:9:in `<top (required)>'
# ./spec/etcdv3/maintenance_spec.rb:1:in `require'
# ./spec/etcdv3/maintenance_spec.rb:1:in `<top (required)>'
# ------------------
# --- Caused by: ---
# LoadError:
#   cannot load such file -- google/2.6/protobuf_c
#   ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:48:in `require'

An error occurred while loading ./spec/etcdv3_spec.rb.
Failure/Error: require 'google/protobuf'

LoadError:
  cannot load such file -- google/protobuf_c
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:50:in `require'
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:50:in `rescue in <top (required)>'
# ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:47:in `<top (required)>'
# ./lib/etcdv3/etcdrpc/rpc_pb.rb:4:in `require'
# ./lib/etcdv3/etcdrpc/rpc_pb.rb:4:in `<top (required)>'
# ./lib/etcdv3/etcdrpc/rpc_services_pb.rb:5:in `require_relative'
# ./lib/etcdv3/etcdrpc/rpc_services_pb.rb:5:in `<top (required)>'
# ./lib/etcdv3.rb:4:in `require'
# ./lib/etcdv3.rb:4:in `<top (required)>'
# ./spec/spec_helper.rb:9:in `require'
# ./spec/spec_helper.rb:9:in `<top (required)>'
# ./spec/etcdv3_spec.rb:1:in `require'
# ./spec/etcdv3_spec.rb:1:in `<top (required)>'
# ------------------
# --- Caused by: ---
# LoadError:
#   cannot load such file -- google/2.6/protobuf_c
#   ./.bundle/vendor/ruby/2.6.0/gems/google-protobuf-3.6.1-x86_64-linux/lib/google/protobuf.rb:48:in `require'
No examples found.

Finished in 0.00038 seconds (files took 0.5553 seconds to load)
0 examples, 0 failures, 9 errors occurred outside of examples

{"meta": {"status": 400}, "error": {"reason": "Please provide the repository token to upload reports via `-t :repository-token`", "context": null}}

What did you expect to see?

For it to work.

What did you see instead?

cannot load such file -- google/2.6/protobuf_c

Anything else we should know about your project / environment?

sanjaypujare commented 5 years ago

@apolcyn or @graywolf-at-work please adjust the priority as appropriate (currently P1)

apolcyn commented 5 years ago

Failure/Error: require 'google/protobuf'

This is an issue in the google-protobuf gem, rather than with grpc.

cc @TeBoring - google-protobuf needs to release a package with a pre-compiled extension that will load on ruby 2.6

@graywolf-at-work The workaround before then would be to build google-protobuf from source - i.e., install the google-protobuf gem targetting "platform == ruby".

E.g.:

$ gem install google-protobuf --platform ruby
$ gem install grpc

... will wind up with a useable set of packages