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

Segmentation Fault (Segfault) on the ruby gem #4460

Open
larribas opened this issue Mar 31, 2018 · 33 comments
Open

Segmentation Fault (Segfault) on the ruby gem #4460

larribas opened this issue Mar 31, 2018 · 33 comments
Assignees
Labels

Comments

@larribas
Copy link

@larribas larribas commented Mar 31, 2018

Hello there,

The following segmentation fault pops up upon running

ruby -e 'require "google/cloud/trace"'

inside of a Docker container based on ruby:2.5-alpine (alpine 3.7.0)

Gemfile.lock (partial)

    google-cloud-core (1.2.0)
      google-cloud-env (~> 1.0)
    google-cloud-env (1.0.1)
      faraday (~> 0.11)
    google-cloud-trace (0.31.0)
      google-cloud-core (~> 1.2)
      google-gax (~> 1.0)
      stackdriver-core (~> 1.3)
    google-gax (1.0.1)
      google-protobuf (~> 3.2)
      googleapis-common-protos (>= 1.3.5, < 2.0)
      googleauth (~> 0.6.2)
      grpc (>= 1.7.2, < 2.0)
      rly (~> 0.2.3)
    google-protobuf (3.5.1.2)
    googleapis-common-protos (1.3.7)
      google-protobuf (~> 3.0)
      googleapis-common-protos-types (~> 1.0)
      grpc (~> 1.0)
    googleapis-common-protos-types (1.0.1)
      google-protobuf (~> 3.0)
    googleauth (0.6.2)
      faraday (~> 0.12)
      jwt (>= 1.4, < 3.0)
      logging (~> 2.0)
      memoist (~> 0.12)
      multi_json (~> 1.11)
      os (~> 0.9)
      signet (~> 0.7)
    grpc (1.10.0)
      google-protobuf (~> 3.1)
      googleapis-common-protos-types (~> 1.0.0)
      googleauth (>= 0.5.1, < 0.7)

Ruby Segfault Dump

/usr/local/bundle/gems/google-protobuf-3.5.1.2-x86_64-linux/lib/google/protobuf/any_pb.rb:15: [BUG] Segmentation fault at 0x0000000000016e16
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-musl]

-- Control frame information -----------------------------------------------
c:0039 p:---- s:0240 e:000239 CFUNC  :msgclass
c:0038 p:0022 s:0236 e:000235 CLASS  /usr/local/bundle/gems/google-protobuf-3.5.1.2-x86_64-linux/lib/google/protobuf/any_pb.rb:15
c:0037 p:0007 s:0233 e:000232 CLASS  /usr/local/bundle/gems/google-protobuf-3.5.1.2-x86_64-linux/lib/google/protobuf/any_pb.rb:14
c:0036 p:0033 s:0230 E:001380 TOP    /usr/local/bundle/gems/google-protobuf-3.5.1.2-x86_64-linux/lib/google/protobuf/any_pb.rb:13 [FINISH]
c:0035 p:---- s:0227 e:000226 CFUNC  :require
c:0034 p:0110 s:0222 e:000221 METHOD /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59
c:0033 p:0013 s:0210 e:000209 TOP    /usr/local/bundle/gems/googleapis-common-protos-types-1.0.1/lib/google/rpc/status_pb.rb:6 [FINISH]
c:0032 p:---- s:0207 e:000206 CFUNC  :require
c:0031 p:0110 s:0202 e:000201 METHOD /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59
c:0030 p:0013 s:0190 e:000189 TOP    /usr/local/bundle/gems/grpc-1.10.0-x86_64-linux/src/ruby/lib/grpc/google_rpc_status_utils.rb:16 [FINISH]
c:0029 p:---- s:0187 e:000186 CFUNC  :require
c:0028 p:0110 s:0182 e:000181 METHOD /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59
c:0027 p:0013 s:0170 e:000169 TOP    /usr/local/bundle/gems/google-gax-1.0.1/lib/google/gax/grpc.rb:31 [FINISH]
c:0026 p:---- s:0167 e:000166 CFUNC  :require
c:0025 p:0110 s:0162 e:000161 METHOD /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59
c:0024 p:0013 s:0150 e:000149 TOP    /usr/local/bundle/gems/google-gax-1.0.1/lib/google/gax/errors.rb:32 [FINISH]
c:0023 p:---- s:0147 e:000146 CFUNC  :require
c:0022 p:0110 s:0142 e:000141 METHOD /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59
c:0021 p:0013 s:0130 e:000129 TOP    /usr/local/bundle/gems/google-gax-1.0.1/lib/google/gax/api_callable.rb:32 [FINISH]
c:0020 p:---- s:0127 e:000126 CFUNC  :require
c:0019 p:0110 s:0122 e:000121 METHOD /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59
c:0018 p:0006 s:0110 e:000109 TOP    /usr/local/bundle/gems/google-gax-1.0.1/lib/google/gax.rb:30 [FINISH]
c:0017 p:---- s:0107 e:000106 CFUNC  :require
c:0016 p:0110 s:0102 e:000101 METHOD /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59
c:0015 p:0020 s:0090 e:000089 TOP    /usr/local/bundle/gems/google-cloud-trace-0.31.0/lib/google/cloud/trace/v1/trace_service_client.rb:28 [FINISH]
c:0014 p:---- s:0087 e:000086 CFUNC  :require
c:0013 p:0110 s:0082 e:000081 METHOD /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59
c:0012 p:0006 s:0070 e:000069 TOP    /usr/local/bundle/gems/google-cloud-trace-0.31.0/lib/google/cloud/trace/v1.rb:16 [FINISH]
c:0011 p:---- s:0067 e:000066 CFUNC  :require
c:0010 p:0110 s:0062 e:000061 METHOD /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59
c:0009 p:0020 s:0050 e:000049 TOP    /usr/local/bundle/gems/google-cloud-trace-0.31.0/lib/google/cloud/trace/service.rb:18 [FINISH]
c:0008 p:---- s:0047 e:000046 CFUNC  :require
c:0007 p:0110 s:0042 e:000041 METHOD /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59
c:0006 p:0062 s:0030 e:000029 TOP    /usr/local/bundle/gems/google-cloud-trace-0.31.0/lib/google/cloud/trace.rb:24 [FINISH]
c:0005 p:---- s:0027 e:000026 CFUNC  :require
c:0004 p:0091 s:0022 e:000021 RESCUE /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135
c:0003 p:0376 s:0018 e:000017 METHOD /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:39
c:0002 p:0006 s:0006 e:000005 EVAL   -e:1 [FINISH]
c:0001 p:0000 s:0003 E:000d00 (none) [FINISH]

-- Ruby level backtrace information ----------------------------------------
-e:1:in `<main>'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:39:in `require'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135:in `rescue in require'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135:in `require'
/usr/local/bundle/gems/google-cloud-trace-0.31.0/lib/google/cloud/trace.rb:24:in `<top (required)>'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/local/bundle/gems/google-cloud-trace-0.31.0/lib/google/cloud/trace/service.rb:18:in `<top (required)>'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/local/bundle/gems/google-cloud-trace-0.31.0/lib/google/cloud/trace/v1.rb:16:in `<top (required)>'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/local/bundle/gems/google-cloud-trace-0.31.0/lib/google/cloud/trace/v1/trace_service_client.rb:28:in `<top (required)>'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/local/bundle/gems/google-gax-1.0.1/lib/google/gax.rb:30:in `<top (required)>'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/local/bundle/gems/google-gax-1.0.1/lib/google/gax/api_callable.rb:32:in `<top (required)>'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/local/bundle/gems/google-gax-1.0.1/lib/google/gax/errors.rb:32:in `<top (required)>'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/local/bundle/gems/google-gax-1.0.1/lib/google/gax/grpc.rb:31:in `<top (required)>'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/local/bundle/gems/grpc-1.10.0-x86_64-linux/src/ruby/lib/grpc/google_rpc_status_utils.rb:16:in `<top (required)>'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/local/bundle/gems/googleapis-common-protos-types-1.0.1/lib/google/rpc/status_pb.rb:6:in `<top (required)>'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
/usr/local/bundle/gems/google-protobuf-3.5.1.2-x86_64-linux/lib/google/protobuf/any_pb.rb:13:in `<top (required)>'
/usr/local/bundle/gems/google-protobuf-3.5.1.2-x86_64-linux/lib/google/protobuf/any_pb.rb:14:in `<module:Google>'
/usr/local/bundle/gems/google-protobuf-3.5.1.2-x86_64-linux/lib/google/protobuf/any_pb.rb:15:in `<module:Protobuf>'
/usr/local/bundle/gems/google-protobuf-3.5.1.2-x86_64-linux/lib/google/protobuf/any_pb.rb:15:in `msgclass'

-- Machine register context ------------------------------------------------
 RIP: 0x0000000000016e16 RBP: 0x00007ffda9865780 RSP: 0x00007ffda9865738
 RAX: 0x000000000000000a RBX: 0x000055d0f91e09c0 RCX: 0x0000000000000008
 RDX: 0x0000000000000001 RDI: 0x00007ffda9865740 RSI: 0x00007ffda986574e
  R8: 0x0000000000000003  R9: 0xffffffffffffffff R10: 0x0000000000000000
 R11: 0x000055d0f92be2c0 R12: 0x0000000000000000 R13: 0x0000000000000002
 R14: 0x00007ffda98657e8 R15: 0x000055d0f91e09c0 EFL: 0x0000000000010246

-- Other runtime information -----------------------------------------------

* Loaded script: -e

* Loaded features:

    0 enumerator.so
    1 thread.rb
    2 rational.so
    3 complex.so
    4 /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/enc/encdb.so
    5 /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/enc/trans/transdb.so
    6 /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/rbconfig.rb
    7 /usr/local/lib/ruby/2.5.0/rubygems/compatibility.rb
    8 /usr/local/lib/ruby/2.5.0/rubygems/defaults.rb
    9 /usr/local/lib/ruby/2.5.0/rubygems/deprecate.rb
   10 /usr/local/lib/ruby/2.5.0/rubygems/errors.rb
   11 /usr/local/lib/ruby/2.5.0/rubygems/version.rb
   12 /usr/local/lib/ruby/2.5.0/rubygems/requirement.rb
   13 /usr/local/lib/ruby/2.5.0/rubygems/platform.rb
   14 /usr/local/lib/ruby/2.5.0/rubygems/basic_specification.rb
   15 /usr/local/lib/ruby/2.5.0/rubygems/stub_specification.rb
   16 /usr/local/lib/ruby/2.5.0/rubygems/util/list.rb
   17 /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/stringio.so
   18 /usr/local/lib/ruby/2.5.0/uri/rfc2396_parser.rb
   19 /usr/local/lib/ruby/2.5.0/uri/rfc3986_parser.rb
   20 /usr/local/lib/ruby/2.5.0/uri/common.rb
   21 /usr/local/lib/ruby/2.5.0/uri/generic.rb
   22 /usr/local/lib/ruby/2.5.0/uri/ftp.rb
   23 /usr/local/lib/ruby/2.5.0/uri/http.rb
   24 /usr/local/lib/ruby/2.5.0/uri/https.rb
   25 /usr/local/lib/ruby/2.5.0/uri/ldap.rb
   26 /usr/local/lib/ruby/2.5.0/uri/ldaps.rb
   27 /usr/local/lib/ruby/2.5.0/uri/mailto.rb
   28 /usr/local/lib/ruby/2.5.0/uri.rb
   29 /usr/local/lib/ruby/2.5.0/rubygems/specification.rb
   30 /usr/local/lib/ruby/2.5.0/rubygems/exceptions.rb
   31 /usr/local/lib/ruby/2.5.0/rubygems/dependency.rb
   32 /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_gem.rb
   33 /usr/local/lib/ruby/2.5.0/monitor.rb
   34 /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb
   35 /usr/local/lib/ruby/2.5.0/rubygems.rb
   36 /usr/local/lib/ruby/2.5.0/rubygems/path_support.rb
   37 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/version.rb
   38 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/core_ext/name_error.rb
   39 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/levenshtein.rb
   40 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/jaro_winkler.rb
   41 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/spell_checker.rb
   42 /usr/local/lib/ruby/2.5.0/delegate.rb
   43 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb
   44 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
   45 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/spell_checkers/name_error_checkers.rb
   46 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/spell_checkers/method_name_checker.rb
   47 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/spell_checkers/key_error_checker.rb
   48 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/spell_checkers/null_checker.rb
   49 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean/formatters/plain_formatter.rb
   50 /usr/local/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib/did_you_mean.rb
   51 /usr/local/lib/ruby/2.5.0/rubygems/bundler_version_finder.rb
   52 /usr/local/bundle/gems/google-cloud-core-1.2.0/lib/google/cloud/config.rb
   53 /usr/local/bundle/gems/google-cloud-core-1.2.0/lib/google/cloud/core/version.rb
   54 /usr/local/lib/ruby/2.5.0/cgi/core.rb
   55 /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/cgi/escape.so
   56 /usr/local/lib/ruby/2.5.0/cgi/util.rb
   57 /usr/local/lib/ruby/2.5.0/cgi/cookie.rb
   58 /usr/local/lib/ruby/2.5.0/cgi.rb
   59 /usr/local/lib/ruby/2.5.0/set.rb
   60 /usr/local/lib/ruby/2.5.0/forwardable/impl.rb
   61 /usr/local/lib/ruby/2.5.0/forwardable.rb
   62 /usr/local/lib/ruby/2.5.0/timeout.rb
   63 /usr/local/bundle/gems/faraday-0.12.2/lib/faraday/utils.rb
   64 /usr/local/bundle/gems/faraday-0.12.2/lib/faraday/options.rb
   65 /usr/local/bundle/gems/faraday-0.12.2/lib/faraday/connection.rb
   66 /usr/local/bundle/gems/faraday-0.12.2/lib/faraday/rack_builder.rb
   67 /usr/local/bundle/gems/faraday-0.12.2/lib/faraday/parameters.rb
   68 /usr/local/bundle/gems/faraday-0.12.2/lib/faraday/middleware.rb
   69 /usr/local/bundle/gems/faraday-0.12.2/lib/faraday/adapter.rb
   70 /usr/local/bundle/gems/faraday-0.12.2/lib/faraday/request.rb
   71 /usr/local/bundle/gems/faraday-0.12.2/lib/faraday/response.rb
   72 /usr/local/bundle/gems/multipart-post-2.0.0/lib/composite_io.rb
   73 /usr/local/bundle/gems/multipart-post-2.0.0/lib/parts.rb
   74 /usr/local/bundle/gems/faraday-0.12.2/lib/faraday/upload_io.rb
   75 /usr/local/bundle/gems/faraday-0.12.2/lib/faraday/error.rb
   76 /usr/local/bundle/gems/faraday-0.12.2/lib/faraday/autoload.rb
   77 /usr/local/bundle/gems/faraday-0.12.2/lib/faraday.rb
   78 /usr/local/lib/ruby/2.5.0/json/version.rb
   79 /usr/local/lib/ruby/2.5.0/ostruct.rb
   80 /usr/local/lib/ruby/2.5.0/json/generic_object.rb
   81 /usr/local/lib/ruby/2.5.0/json/common.rb
   82 /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/json/ext/parser.so
   83 /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/json/ext/generator.so
   84 /usr/local/lib/ruby/2.5.0/json/ext.rb
   85 /usr/local/lib/ruby/2.5.0/json.rb
   86 /usr/local/bundle/gems/faraday-0.12.2/lib/faraday/request/url_encoded.rb
   87 /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/socket.so
   88 /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/io/wait.so
   89 /usr/local/lib/ruby/2.5.0/socket.rb
   90 /usr/local/lib/ruby/2.5.0/net/protocol.rb
   91 /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/zlib.so
   92 /usr/local/lib/ruby/2.5.0/net/http/exceptions.rb
   93 /usr/local/lib/ruby/2.5.0/net/http/header.rb
   94 /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/enc/windows_31j.so
   95 /usr/local/lib/ruby/2.5.0/net/http/generic_request.rb
   96 /usr/local/lib/ruby/2.5.0/net/http/request.rb
   97 /usr/local/lib/ruby/2.5.0/net/http/requests.rb
   98 /usr/local/lib/ruby/2.5.0/net/http/response.rb
   99 /usr/local/lib/ruby/2.5.0/net/http/responses.rb
  100 /usr/local/lib/ruby/2.5.0/net/http/proxy_delta.rb
  101 /usr/local/lib/ruby/2.5.0/net/http/backward.rb
  102 /usr/local/lib/ruby/2.5.0/net/http.rb
  103 /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/digest.so
  104 /usr/local/lib/ruby/2.5.0/digest.rb
  105 /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/openssl.so
  106 /usr/local/lib/ruby/2.5.0/openssl/bn.rb
  107 /usr/local/lib/ruby/2.5.0/openssl/pkey.rb
  108 /usr/local/lib/ruby/2.5.0/openssl/cipher.rb
  109 /usr/local/lib/ruby/2.5.0/openssl/config.rb
  110 /usr/local/lib/ruby/2.5.0/openssl/digest.rb
  111 /usr/local/lib/ruby/2.5.0/openssl/x509.rb
  112 /usr/local/lib/ruby/2.5.0/openssl/buffering.rb
  113 /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/io/nonblock.so
  114 /usr/local/lib/ruby/2.5.0/openssl/ssl.rb
  115 /usr/local/lib/ruby/2.5.0/openssl/pkcs5.rb
  116 /usr/local/lib/ruby/2.5.0/openssl.rb
  117 /usr/local/lib/ruby/2.5.0/net/https.rb
  118 /usr/local/bundle/gems/faraday-0.12.2/lib/faraday/adapter/net_http.rb
  119 /usr/local/bundle/gems/google-cloud-env-1.0.1/lib/google/cloud/env.rb
  120 /usr/local/bundle/gems/google-cloud-env-1.0.1/lib/google/cloud/env/version.rb
  121 /usr/local/bundle/gems/google-cloud-env-1.0.1/lib/google-cloud-env.rb
  122 /usr/local/bundle/gems/google-cloud-core-1.2.0/lib/google/cloud.rb
  123 /usr/local/bundle/gems/addressable-2.5.2/lib/addressable/version.rb
  124 /usr/local/bundle/gems/addressable-2.5.2/lib/addressable/idna/pure.rb
  125 /usr/local/bundle/gems/addressable-2.5.2/lib/addressable/idna.rb
  126 /usr/local/bundle/gems/public_suffix-3.0.2/lib/public_suffix/domain.rb
  127 /usr/local/bundle/gems/public_suffix-3.0.2/lib/public_suffix/version.rb
  128 /usr/local/bundle/gems/public_suffix-3.0.2/lib/public_suffix/errors.rb
  129 /usr/local/bundle/gems/public_suffix-3.0.2/lib/public_suffix/rule.rb
  130 /usr/local/bundle/gems/public_suffix-3.0.2/lib/public_suffix/list.rb
  131 /usr/local/bundle/gems/public_suffix-3.0.2/lib/public_suffix.rb
  132 /usr/local/bundle/gems/addressable-2.5.2/lib/addressable/uri.rb
  133 /usr/local/bundle/gems/signet-0.8.1/lib/signet/version.rb
  134 /usr/local/bundle/gems/signet-0.8.1/lib/signet.rb
  135 /usr/local/bundle/gems/signet-0.8.1/lib/signet/errors.rb
  136 /usr/local/lib/ruby/2.5.0/base64.rb
  137 /usr/local/bundle/gems/multi_json-1.13.1/lib/multi_json/options.rb
  138 /usr/local/bundle/gems/multi_json-1.13.1/lib/multi_json/version.rb
  139 /usr/local/bundle/gems/multi_json-1.13.1/lib/multi_json/adapter_error.rb
  140 /usr/local/bundle/gems/multi_json-1.13.1/lib/multi_json/parse_error.rb
  141 /usr/local/bundle/gems/multi_json-1.13.1/lib/multi_json/options_cache.rb
  142 /usr/local/bundle/gems/multi_json-1.13.1/lib/multi_json.rb
  143 /usr/local/bundle/gems/signet-0.8.1/lib/signet/oauth_2.rb
  144 /usr/local/bundle/gems/jwt-1.5.6/lib/jwt/json.rb
  145 /usr/local/bundle/gems/jwt-1.5.6/lib/jwt/error.rb
  146 /usr/local/bundle/gems/jwt-1.5.6/lib/jwt/verify.rb
  147 /usr/local/bundle/gems/jwt-1.5.6/lib/jwt/decode.rb
  148 /usr/local/bundle/gems/jwt-1.5.6/lib/jwt.rb
  149 /usr/local/bundle/gems/signet-0.8.1/lib/signet/oauth_2/client.rb
  150 /usr/local/bundle/gems/googleauth-0.6.2/lib/googleauth/signet.rb
  151 /usr/local/bundle/gems/memoist-0.16.0/lib/memoist/version.rb
  152 /usr/local/bundle/gems/memoist-0.16.0/lib/memoist/core_ext/singleton_class.rb
  153 /usr/local/bundle/gems/memoist-0.16.0/lib/memoist.rb
  154 /usr/local/bundle/gems/googleauth-0.6.2/lib/googleauth/compute_engine.rb
  155 /usr/local/lib/ruby/2.5.0/psych/versions.rb
  156 /usr/local/lib/ruby/2.5.0/psych/exception.rb
  157 /usr/local/lib/ruby/2.5.0/psych/syntax_error.rb
  158 /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/psych.so
  159 /usr/local/lib/ruby/2.5.0/psych/omap.rb
  160 /usr/local/lib/ruby/2.5.0/psych/set.rb
  161 /usr/local/lib/ruby/2.5.0/psych/class_loader.rb
  162 /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/strscan.so
  163 /usr/local/lib/ruby/2.5.0/psych/scalar_scanner.rb
  164 /usr/local/lib/ruby/2.5.0/psych/nodes/node.rb
  165 /usr/local/lib/ruby/2.5.0/psych/nodes/stream.rb
  166 /usr/local/lib/ruby/2.5.0/psych/nodes/document.rb
  167 /usr/local/lib/ruby/2.5.0/psych/nodes/sequence.rb
  168 /usr/local/lib/ruby/2.5.0/psych/nodes/scalar.rb
  169 /usr/local/lib/ruby/2.5.0/psych/nodes/mapping.rb
  170 /usr/local/lib/ruby/2.5.0/psych/nodes/alias.rb
  171 /usr/local/lib/ruby/2.5.0/psych/nodes.rb
  172 /usr/local/lib/ruby/2.5.0/psych/streaming.rb
  173 /usr/local/lib/ruby/2.5.0/psych/visitors/visitor.rb
  174 /usr/local/lib/ruby/2.5.0/psych/visitors/to_ruby.rb
  175 /usr/local/lib/ruby/2.5.0/psych/visitors/emitter.rb
  176 /usr/local/lib/ruby/2.5.0/psych/handler.rb
  177 /usr/local/lib/ruby/2.5.0/psych/tree_builder.rb
  178 /usr/local/lib/ruby/2.5.0/psych/visitors/yaml_tree.rb
  179 /usr/local/lib/ruby/2.5.0/psych/json/ruby_events.rb
  180 /usr/local/lib/ruby/2.5.0/psych/visitors/json_tree.rb
  181 /usr/local/lib/ruby/2.5.0/psych/visitors/depth_first.rb
  182 /usr/local/lib/ruby/2.5.0/psych/visitors.rb
  183 /usr/local/lib/ruby/2.5.0/psych/parser.rb
  184 /usr/local/lib/ruby/2.5.0/psych/coder.rb
  185 /usr/local/lib/ruby/2.5.0/psych/core_ext.rb
  186 /usr/local/lib/ruby/2.5.0/psych/stream.rb
  187 /usr/local/lib/ruby/2.5.0/psych/json/yaml_events.rb
  188 /usr/local/lib/ruby/2.5.0/psych/json/tree_builder.rb
  189 /usr/local/lib/ruby/2.5.0/psych/json/stream.rb
  190 /usr/local/lib/ruby/2.5.0/psych/handlers/document_stream.rb
  191 /usr/local/lib/ruby/2.5.0/psych.rb
  192 /usr/local/lib/ruby/2.5.0/yaml.rb
  193 /usr/local/bundle/gems/os-0.9.6/lib/os.rb
  194 /usr/local/bundle/gems/googleauth-0.6.2/lib/googleauth/credentials_loader.rb
  195 /usr/local/bundle/gems/googleauth-0.6.2/lib/googleauth/service_account.rb
  196 /usr/local/bundle/gems/googleauth-0.6.2/lib/googleauth/scope_util.rb
  197 /usr/local/bundle/gems/googleauth-0.6.2/lib/googleauth/user_refresh.rb
  198 /usr/local/bundle/gems/googleauth-0.6.2/lib/googleauth/default_credentials.rb
  199 /usr/local/bundle/gems/googleauth-0.6.2/lib/googleauth/application_default.rb
  200 /usr/local/bundle/gems/googleauth-0.6.2/lib/googleauth/client_id.rb
  201 /usr/local/bundle/gems/googleauth-0.6.2/lib/googleauth/credentials.rb
  202 /usr/local/bundle/gems/googleauth-0.6.2/lib/googleauth/user_authorizer.rb
  203 /usr/local/lib/ruby/2.5.0/securerandom.rb
  204 /usr/local/bundle/gems/googleauth-0.6.2/lib/googleauth/web_user_authorizer.rb
  205 /usr/local/bundle/gems/googleauth-0.6.2/lib/googleauth.rb
  206 /usr/local/bundle/gems/google-cloud-trace-0.31.0/lib/google-cloud-trace.rb
  207 /usr/local/bundle/gems/google-cloud-trace-0.31.0/lib/google/cloud/trace/version.rb
  208 /usr/local/bundle/gems/google-cloud-trace-0.31.0/lib/google/cloud/trace/credentials.rb
  209 /usr/local/bundle/gems/google-cloud-trace-0.31.0/lib/google/cloud/trace/label_key.rb
  210 /usr/local/bundle/gems/stackdriver-core-1.3.0/lib/stackdriver/core/async_actor.rb
  211 /usr/local/bundle/gems/google-cloud-trace-0.31.0/lib/google/cloud/trace/async_reporter.rb
  212 /usr/local/bundle/gems/stackdriver-core-1.3.0/lib/stackdriver/core/trace_context.rb
  213 /usr/local/bundle/gems/google-cloud-trace-0.31.0/lib/google/cloud/trace/middleware.rb
  214 /usr/local/bundle/gems/google-cloud-trace-0.31.0/lib/google/cloud/trace/notifications.rb
  215 /usr/local/bundle/gems/google-cloud-trace-0.31.0/lib/google/cloud/trace/project.rb
  216 /usr/local/bundle/gems/google-cloud-trace-0.31.0/lib/google/cloud/trace/result_set.rb
  217 /usr/local/lib/ruby/2.5.0/English.rb
  218 /usr/local/bundle/gems/google-cloud-core-1.2.0/lib/google/cloud/errors.rb
  219 /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/pathname.so
  220 /usr/local/lib/ruby/2.5.0/pathname.rb
  221 /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/date_core.so
  222 /usr/local/lib/ruby/2.5.0/date.rb
  223 /usr/local/lib/ruby/2.5.0/time.rb
  224 /usr/local/bundle/gems/grpc-1.10.0-x86_64-linux/src/ruby/lib/grpc/2.5/grpc_c.so
  225 /usr/local/bundle/gems/grpc-1.10.0-x86_64-linux/src/ruby/lib/grpc/grpc.rb
  226 /usr/local/bundle/gems/grpc-1.10.0-x86_64-linux/src/ruby/lib/grpc/errors.rb
  227 /usr/local/bundle/gems/grpc-1.10.0-x86_64-linux/src/ruby/lib/grpc/logconfig.rb
  228 /usr/local/bundle/gems/grpc-1.10.0-x86_64-linux/src/ruby/lib/grpc/notifier.rb
  229 /usr/local/bundle/gems/grpc-1.10.0-x86_64-linux/src/ruby/lib/grpc/version.rb
  230 /usr/local/bundle/gems/grpc-1.10.0-x86_64-linux/src/ruby/lib/grpc/core/time_consts.rb
  231 /usr/local/lib/ruby/2.5.0/weakref.rb
  232 /usr/local/bundle/gems/grpc-1.10.0-x86_64-linux/src/ruby/lib/grpc/generic/bidi_call.rb
  233 /usr/local/bundle/gems/grpc-1.10.0-x86_64-linux/src/ruby/lib/grpc/generic/active_call.rb
  234 /usr/local/bundle/gems/grpc-1.10.0-x86_64-linux/src/ruby/lib/grpc/generic/client_stub.rb
  235 /usr/local/bundle/gems/grpc-1.10.0-x86_64-linux/src/ruby/lib/grpc/generic/rpc_desc.rb
  236 /usr/local/bundle/gems/grpc-1.10.0-x86_64-linux/src/ruby/lib/grpc/generic/service.rb
  237 /usr/local/bundle/gems/grpc-1.10.0-x86_64-linux/src/ruby/lib/grpc/generic/rpc_server.rb
  238 /usr/local/bundle/gems/grpc-1.10.0-x86_64-linux/src/ruby/lib/grpc/generic/interceptor_registry.rb
  239 /usr/local/bundle/gems/grpc-1.10.0-x86_64-linux/src/ruby/lib/grpc/generic/interceptors.rb
  240 /usr/local/bundle/gems/grpc-1.10.0-x86_64-linux/src/ruby/lib/grpc.rb
  241 /usr/local/bundle/gems/google-protobuf-3.5.1.2-x86_64-linux/lib/google/protobuf/message_exts.rb
  242 /usr/local/bundle/gems/google-protobuf-3.5.1.2-x86_64-linux/lib/google/2.5/protobuf_c.so
  243 /usr/local/bundle/gems/google-protobuf-3.5.1.2-x86_64-linux/lib/google/protobuf/repeated_field.rb
  244 /usr/local/bundle/gems/google-protobuf-3.5.1.2-x86_64-linux/lib/google/protobuf.rb

* Process memory map:

55d0f7453000-55d0f7454000 r-xp 00000000 08:06 154456                     /usr/local/bin/ruby
55d0f7653000-55d0f7654000 r--p 00000000 08:06 154456                     /usr/local/bin/ruby
55d0f7654000-55d0f7655000 rw-p 00001000 08:06 154456                     /usr/local/bin/ruby
55d0f89e8000-55d0f9987000 rw-p 00000000 00:00 0                          [heap]
7f6c3bcb9000-7f6c3bd1a000 rw-p 00000000 00:00 0
7f6c3bd1a000-7f6c3bf70000 r-xp 00000000 08:06 5929343                    /usr/local/bundle/gems/google-protobuf-3.5.1.2-x86_64-linux/lib/google/2.5/protobuf_c.so
7f6c3bf70000-7f6c3bf78000 r--p 00056000 08:06 5929343                    /usr/local/bundle/gems/google-protobuf-3.5.1.2-x86_64-linux/lib/google/2.5/protobuf_c.so
7f6c3bf78000-7f6c3bf7a000 rw-p 0005e000 08:06 5929343                    /usr/local/bundle/gems/google-protobuf-3.5.1.2-x86_64-linux/lib/google/2.5/protobuf_c.so
7f6c3bf7a000-7f6c3c169000 rw-p 00000000 00:00 0
7f6c3c169000-7f6c3c5af000 r-xp 00000000 08:06 10524010                   /usr/local/bundle/gems/grpc-1.10.0-x86_64-linux/src/ruby/lib/grpc/2.5/grpc_c.so
7f6c3c5af000-7f6c3c5c4000 r--p 00246000 08:06 10524010                   /usr/local/bundle/gems/grpc-1.10.0-x86_64-linux/src/ruby/lib/grpc/2.5/grpc_c.so
7f6c3c5c4000-7f6c3c5cb000 rw-p 0025b000 08:06 10524010                   /usr/local/bundle/gems/grpc-1.10.0-x86_64-linux/src/ruby/lib/grpc/2.5/grpc_c.so
7f6c3c5cb000-7f6c3c5d0000 rw-p 00000000 00:00 0
7f6c3c5d0000-7f6c3c803000 r-xp 00000000 08:06 155330                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/date_core.so
7f6c3c803000-7f6c3c804000 r--p 00033000 08:06 155330                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/date_core.so
7f6c3c804000-7f6c3c805000 rw-p 00034000 08:06 155330                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/date_core.so
7f6c3c805000-7f6c3c806000 rw-p 00000000 00:00 0
7f6c3c806000-7f6c3ca0d000 r-xp 00000000 08:06 155416                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/pathname.so
7f6c3ca0d000-7f6c3ca0e000 r--p 00007000 08:06 155416                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/pathname.so
7f6c3ca0e000-7f6c3ca0f000 rw-p 00008000 08:06 155416                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/pathname.so
7f6c3ca0f000-7f6c3cc15000 r-xp 00000000 08:06 155429                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/strscan.so
7f6c3cc15000-7f6c3cc16000 r--p 00006000 08:06 155429                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/strscan.so
7f6c3cc16000-7f6c3cc17000 rw-p 00007000 08:06 155429                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/strscan.so
7f6c3cc17000-7f6c3ce30000 r-xp 00000000 08:06 154434                     /usr/lib/libyaml-0.so.2.0.5
7f6c3ce30000-7f6c3ce31000 r--p 00019000 08:06 154434                     /usr/lib/libyaml-0.so.2.0.5
7f6c3ce31000-7f6c3ce32000 rw-p 0001a000 08:06 154434                     /usr/lib/libyaml-0.so.2.0.5
7f6c3ce32000-7f6c3d037000 r-xp 00000000 08:06 155417                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/psych.so
7f6c3d037000-7f6c3d038000 r--p 00005000 08:06 155417                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/psych.so
7f6c3d038000-7f6c3d039000 rw-p 00006000 08:06 155417                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/psych.so
7f6c3d039000-7f6c3d239000 r-xp 00000000 08:06 155407                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/io/nonblock.so
7f6c3d239000-7f6c3d23a000 r--p 00000000 08:06 155407                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/io/nonblock.so
7f6c3d23a000-7f6c3d23b000 rw-p 00001000 08:06 155407                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/io/nonblock.so
7f6c3d23b000-7f6c3d43e000 r-xp 00000000 08:06 155338                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/digest.so
7f6c3d43e000-7f6c3d43f000 r--p 00003000 08:06 155338                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/digest.so
7f6c3d43f000-7f6c3d440000 rw-p 00004000 08:06 155338                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/digest.so
7f6c3d440000-7f6c3d7bf000 r-xp 00000000 08:06 9849394                    /lib/libcrypto.so.42.0.0
7f6c3d7bf000-7f6c3d7dc000 r--p 0017f000 08:06 9849394                    /lib/libcrypto.so.42.0.0
7f6c3d7dc000-7f6c3d7e2000 rw-p 0019c000 08:06 9849394                    /lib/libcrypto.so.42.0.0
7f6c3d7e2000-7f6c3d7e6000 rw-p 00000000 00:00 0
7f6c3d7e6000-7f6c3da2a000 r-xp 00000000 08:06 9849396                    /lib/libssl.so.44.0.1
7f6c3da2a000-7f6c3da2e000 r--p 00044000 08:06 9849396                    /lib/libssl.so.44.0.1
7f6c3da2e000-7f6c3da32000 rw-p 00048000 08:06 9849396                    /lib/libssl.so.44.0.1
7f6c3da32000-7f6c3dc86000 r-xp 00000000 08:06 155415                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/openssl.so
7f6c3dc86000-7f6c3dc8a000 r--p 00054000 08:06 155415                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/openssl.so
7f6c3dc8a000-7f6c3dc8b000 rw-p 00058000 08:06 155415                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/openssl.so
7f6c3dc8b000-7f6c3de8d000 r-xp 00000000 08:06 155399                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/enc/windows_31j.so
7f6c3de8d000-7f6c3de8e000 r--p 00002000 08:06 155399                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/enc/windows_31j.so
7f6c3de8e000-7f6c3de8f000 rw-p 00003000 08:06 155399                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/enc/windows_31j.so
7f6c3de8f000-7f6c3e0a4000 r-xp 00000000 08:06 9849398                    /lib/libz.so.1.2.11
7f6c3e0a4000-7f6c3e0a5000 r--p 00015000 08:06 9849398                    /lib/libz.so.1.2.11
7f6c3e0a5000-7f6c3e0a6000 rw-p 00016000 08:06 9849398                    /lib/libz.so.1.2.11
7f6c3e0a6000-7f6c3e2b7000 r-xp 00000000 08:06 155431                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/zlib.so
7f6c3e2b7000-7f6c3e2b8000 r--p 00011000 08:06 155431                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/zlib.so
7f6c3e2b8000-7f6c3e2b9000 rw-p 00012000 08:06 155431                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/zlib.so
7f6c3e2b9000-7f6c3e4ba000 r-xp 00000000 08:06 155408                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/io/wait.so
7f6c3e4ba000-7f6c3e4bb000 r--p 00001000 08:06 155408                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/io/wait.so
7f6c3e4bb000-7f6c3e4bc000 rw-p 00002000 08:06 155408                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/io/wait.so
7f6c3e4bc000-7f6c3e6e8000 r-xp 00000000 08:06 155427                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/socket.so
7f6c3e6e8000-7f6c3e6e9000 r--p 0002c000 08:06 155427                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/socket.so
7f6c3e6e9000-7f6c3e6ea000 rw-p 0002d000 08:06 155427                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/socket.so
7f6c3e6ea000-7f6c3e8f3000 r-xp 00000000 08:06 155411                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/json/ext/generator.so
7f6c3e8f3000-7f6c3e8f4000 r--p 00009000 08:06 155411                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/json/ext/generator.so
7f6c3e8f4000-7f6c3e8f5000 rw-p 0000a000 08:06 155411                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/json/ext/generator.so
7f6c3e8f5000-7f6c3eafa000 r-xp 00000000 08:06 155412                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/json/ext/parser.so
7f6c3eafa000-7f6c3eafb000 r--p 00005000 08:06 155412                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/json/ext/parser.so
7f6c3eafb000-7f6c3eafc000 rw-p 00006000 08:06 155412                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/json/ext/parser.so
7f6c3eafc000-7f6c3ecfe000 r-xp 00000000 08:06 155327                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/cgi/escape.so
7f6c3ecfe000-7f6c3ecff000 r--p 00002000 08:06 155327                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/cgi/escape.so
7f6c3ecff000-7f6c3ed00000 rw-p 00003000 08:06 155327                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/cgi/escape.so
7f6c3ed00000-7f6c3ef08000 r-xp 00000000 08:06 155428                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/stringio.so
7f6c3ef08000-7f6c3ef09000 r--p 00008000 08:06 155428                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/stringio.so
7f6c3ef09000-7f6c3ef0a000 rw-p 00009000 08:06 155428                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/stringio.so
7f6c3ef0a000-7f6c3f10c000 r-xp 00000000 08:06 155386                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/enc/trans/transdb.so
7f6c3f10c000-7f6c3f10d000 r--p 00002000 08:06 155386                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/enc/trans/transdb.so
7f6c3f10d000-7f6c3f10e000 rw-p 00003000 08:06 155386                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/enc/trans/transdb.so
7f6c3f10e000-7f6c3f30f000 r-xp 00000000 08:06 155343                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/enc/encdb.so
7f6c3f30f000-7f6c3f310000 r--p 00001000 08:06 155343                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/enc/encdb.so
7f6c3f310000-7f6c3f311000 rw-p 00002000 08:06 155343                     /usr/local/lib/ruby/2.5.0/x86_64-linux-musl/enc/encdb.so
7f6c3f311000-7f6c3f824000 r-xp 00000000 08:06 154493                     /usr/local/lib/libruby.so.2.5.1
7f6c3f824000-7f6c3f82c000 r--p 00313000 08:06 154493                     /usr/local/lib/libruby.so.2.5.1
7f6c3f82c000-7f6c3f82d000 rw-p 0031b000 08:06 154493                     /usr/local/lib/libruby.so.2.5.1
7f6c3f82d000-7f6c3f83b000 rw-p 00000000 00:00 0
7f6c3f83b000-7f6c3f8c4000 r-xp 00000000 08:06 154211                     /lib/ld-musl-x86_64.so.1
7f6c3f8d2000-7f6c3f916000 rw-p 00000000 00:00 0
7f6c3f916000-7f6c3f9ba000 rw-p 00000000 00:00 0
7f6c3f9ba000-7f6c3f9bb000 r--s 00000000 08:06 9723329                    /etc/localtime
7f6c3f9bb000-7f6c3f9bd000 ---p 00000000 00:00 0
7f6c3f9bd000-7f6c3fac3000 rw-p 00000000 00:00 0
7f6c3fac3000-7f6c3fac4000 r--p 00088000 08:06 154211                     /lib/ld-musl-x86_64.so.1
7f6c3fac4000-7f6c3fac5000 rw-p 00089000 08:06 154211                     /lib/ld-musl-x86_64.so.1
7f6c3fac5000-7f6c3fac8000 rw-p 00000000 00:00 0
7ffda984e000-7ffda986f000 rw-p 00000000 00:00 0                          [stack]
7ffda99f5000-7ffda99f8000 r--p 00000000 00:00 0                          [vvar]
7ffda99f8000-7ffda99fa000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]


[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

Aborted (core dumped)
@TeBoring

This comment has been minimized.

Copy link
Contributor

@TeBoring TeBoring commented Apr 11, 2018

Could you include all steps to reproduce the bug?
e.g., Dockerfile, command line, download files.

@TeBoring

This comment has been minimized.

Copy link
Contributor

@TeBoring TeBoring commented Apr 11, 2018

I can reproduce it in docker now.

@TeBoring

This comment has been minimized.

Copy link
Contributor

@TeBoring TeBoring commented Apr 11, 2018

@pherl, I can reproduce the bug with the gem downloaded from ruby gem repository. However, I cannot reproduce the bug with the gem locally built on alpine3.7 docker container. Is cross-compiling related to the issue?

@TeBoring

This comment has been minimized.

Copy link
Contributor

@TeBoring TeBoring commented Apr 11, 2018

@larribas Can you try install locally built protobuf gem? If you have difficulty building it, I can show you.

@larribas

This comment has been minimized.

Copy link
Author

@larribas larribas commented Apr 14, 2018

Just tested it. It does look like a cross-compilation bug. Here's what I did:

Within docker run -it --rm --entrypoint=sh ruby:2.5-alpine

apk add  --update git gcc make cmake libc-dev linux-headers bash wget libc6-compat autoconf automake libtool curl make g++ unzip

# SEGFAULT
gem install google-protobuf
ruby -e 'require "google/protobuf/any_pb"'

# GOOD
git submodule update --init --recursive
./autogen.sh
./configure
make
make check
make install
ldconfig
cd ruby
gem install bundler
bundle
rake
rake clobber_package gem
gem install `ls pkg/google-protobuf-*.gem`
ruby -e 'require "google/protobuf/any_pb"'

Let me know if I can help with anything else

@xfxyjwf xfxyjwf added bug ruby and removed wait for user action labels Apr 16, 2018
@carlpartridge

This comment has been minimized.

Copy link

@carlpartridge carlpartridge commented Jun 5, 2018

I am having a very similar issue:
ruby 2.4.4 alpine 3.7, using google-cloud-pubsub gem
#4728

@TeBoring

This comment has been minimized.

Copy link
Contributor

@TeBoring TeBoring commented Jun 6, 2018

I tested 3.6.x branch. Unfortunately, the linux-x86_64 gem still doesn't work on alpine.
The workaround is to install a native gem which is built on target platform:

apk add  --update git gcc make cmake libc-dev linux-headers bash wget libc6-compat autoconf automake libtool curl make g++ unzip
gem install google-protobuf --version=3.5.1.2 --platform=ruby

Feel free to reopen this issue if this workaround is unacceptable.

@carlpartridge

This comment has been minimized.

Copy link

@carlpartridge carlpartridge commented Jun 6, 2018

Hello, thanks for looking into this.

Your workaround is not working for us. Same segfault error. Here is our dockerfile:

FROM ruby:2.4.4-alpine3.7

ENV RAILS_ROOT /rails/prism
ENV PAGER /usr/bin/less
ENV TERM xterm

RUN mkdir -p $RAILS_ROOT/tmp/pids
WORKDIR $RAILS_ROOT
ADD Gemfile* ./

RUN apk --update --no-cache add \
    autoconf \
    automake \
    bash \
    cmake \
    curl \
    curl-dev \
    dbus \
    fontconfig \
    g++ \
    gcc \
    git \
    libc-dev \
    libc6-compat \
    libcurl \
    libtool \
    libxml2-dev \
    libxslt-dev \
    linux-headers \
    make \
    mysql-client \
    mysql-dev \
    nodejs \
    pdftk \
    poppler-utils \
    qt5-qtbase-dev \
    ttf-freefont \
    unzip    \
    wget \
    && gem install google-protobuf --version=3.5.1.2 --platform=ruby \
    && apk --update add --virtual build-dependencies build-base build-dependencies gcc git less \
    && bundle install --jobs `expr $(cat /proc/cpuinfo | grep -c "cpu cores") - 1` --retry 3 --without test development\
    && apk del build-dependencies

COPY . $RAILS_ROOT

EXPOSE 3000

CMD ["bin/rails", "server", "-b", "0.0.0.0"]

Were you suggesting we try alpine 3.6.x? Anything else you can think of trying?

@TeBoring

@TeBoring

This comment has been minimized.

Copy link
Contributor

@TeBoring TeBoring commented Jun 6, 2018

Did you try ruby -e 'require "google/protobuf/any_pb"' after you install the gem?

@carlpartridge

This comment has been minimized.

Copy link

@carlpartridge carlpartridge commented Jun 6, 2018

Just tried it, same error :(

FROM ruby:2.4.4-alpine3.7

ENV RAILS_ROOT /rails/prism
ENV PAGER /usr/bin/less
ENV TERM xterm

RUN mkdir -p $RAILS_ROOT/tmp/pids
WORKDIR $RAILS_ROOT
ADD Gemfile* ./

RUN apk --update --no-cache add \
    autoconf \
    automake \
    bash \
    cmake \
    curl \
    curl-dev \
    dbus \
    fontconfig \
    g++ \
    gcc \
    git \
    libc-dev \
    libc6-compat \
    libcurl \
    libtool \
    libxml2-dev \
    libxslt-dev \
    linux-headers \
    make \
    mysql-client \
    mysql-dev \
    nodejs \
    pdftk \
    poppler-utils \
    qt5-qtbase-dev \
    ttf-freefont \
    unzip    \
    wget \
    && gem install google-protobuf --version=3.5.1.2 --platform=ruby \
    && ruby -e 'require "google/protobuf/any_pb"' \
    && apk --update add --virtual build-dependencies build-base build-dependencies gcc git less \
    && bundle install --jobs `expr $(cat /proc/cpuinfo | grep -c "cpu cores") - 1` --retry 3 --without test development\
    && apk del build-dependencies

COPY . $RAILS_ROOT

EXPOSE 3000

CMD ["bin/rails", "server", "-b", "0.0.0.0"]

@TeBoring

This comment has been minimized.

Copy link
Contributor

@TeBoring TeBoring commented Jun 6, 2018

The segmentation happens after the docker file is executed or at the place of calling ruby -e 'require "google/protobuf/any_pb"'?

@carlpartridge

This comment has been minimized.

Copy link

@carlpartridge carlpartridge commented Jun 7, 2018

The segmentation occurs after the build, when I try to run the rails app itself (instantiate the class that requires google-cloud-pubsub).

Thanks again for all your timely help!

@jeffdeville

This comment has been minimized.

Copy link

@jeffdeville jeffdeville commented Jun 8, 2018

@TeBoring - I've recreated our bug in minimal form, including an attempt to follow the workaround @larribas demonstrated.

https://github.com/BenefitsDataTrust/tmp-protobuf-segfault

To replicate, just clone, drop a creds.json file in the repo, and docker build .

@jeffdeville

This comment has been minimized.

Copy link

@jeffdeville jeffdeville commented Jun 8, 2018

(I added your workaround suggestion in the ./teboring subdir if you want to check that out as well.)

@TeBoring

This comment has been minimized.

Copy link
Contributor

@TeBoring TeBoring commented Jun 11, 2018

@jeffdeville, thanks, I'll take a look.

@TeBoring TeBoring reopened this Jun 11, 2018
@ravindar

This comment has been minimized.

Copy link

@ravindar ravindar commented Jun 20, 2018

@TeBoring any updates on this issue?

@gentlemich

This comment has been minimized.

Copy link

@gentlemich gentlemich commented Jul 9, 2018

Hi guys, Any workaround for this issue?

@aniketdivekar

This comment has been minimized.

Copy link

@aniketdivekar aniketdivekar commented Jul 13, 2018

Hi guys, facing the same issue. Any fix/workaround available? @TeBoring

@dalekurt

This comment has been minimized.

Copy link

@dalekurt dalekurt commented Sep 17, 2018

I'm experiencing the same issue using ruby:2.4.4-alpine3.7. Has anyone found a workaround for this?

@kam1kaze

This comment has been minimized.

Copy link

@kam1kaze kam1kaze commented Oct 31, 2018

As work-a-round, you could set bundle config option to ignore the current machine's platform and install only ruby platform gems: export BUNDLE_FORCE_RUBY_PLATFORM=1

So Dockerfile would look like:

FROM ruby:2.5.1-alpine

RUN apk add --update build-base

ADD . .

RUN BUNDLE_FORCE_RUBY_PLATFORM=1 bundle install --jobs $(nproc)

CMD ./start.rb
@theodorosidmar

This comment has been minimized.

Copy link

@theodorosidmar theodorosidmar commented Nov 5, 2018

Thank you, @kam1kaze
I was trying to build a Dockerfile from ruby:2.5.1-alpine with grpc gem and that (your suggest) just worked fine!

@nmammeri

This comment has been minimized.

Copy link

@nmammeri nmammeri commented Nov 6, 2018

Many thanks @kam1kaze your workaround works for me. I'm using ruby:2.5.3-alpine3.8.

stepanstipl added a commit to stepanstipl/exekube that referenced this issue Dec 17, 2018
Includes fixes to build and run `google-cloud-monitoring` and `-logging`
gems, which depend on `grpc` and `protobuf` and their native extensions
(see  protocolbuffers/protobuf#4460,
protocolbuffers/protobuf#2335,
gliderlabs/docker-alpine#424,
grpc/grpc#6525 for details)
@TeBoring

This comment has been minimized.

Copy link
Contributor

@TeBoring TeBoring commented Dec 28, 2018

We are currently using rake-compiler-docker to cross compile ruby gems: https://github.com/rake-compiler/rake-compiler-dock/blob/v0.6.2/Dockerfile
However, the gem built by that docker image doesn't work on alpine.
Previously, I doubt whether it's the problem of ruby 2.5.0 (protobuf doesn't work on ruby 2.5.0 for ruby's internal bug). I tried to build a docker image for ruby 2.5.1 and build gem on that. But same error.
I don't have a way to go now. If any one knows how to build a gem for x86_64 that also work on alpine, please let me know.

@TeBoring

This comment has been minimized.

Copy link
Contributor

@TeBoring TeBoring commented Dec 28, 2018

docker-library/ruby#196
Maybe this is related?

@archonic

This comment has been minimized.

Copy link

@archonic archonic commented Feb 28, 2019

FWIW I encountered this on ruby:2.6.1-stretch as well.

@ilyutov

This comment has been minimized.

Copy link

@ilyutov ilyutov commented Mar 19, 2019

Here's another hack that worked for me on ruby:2.5.1-alpine. It should be faster as you don't specify BUNDLE_FORCE_RUBY_PLATFORM for entire Gemfile.

  1. Lock google-protobuf version in your Gemfile: gem "google-protobuf", '3.7.0'
  2. After bundle install remove the installed version and re-install it manually like this:
RUN bundle install --jobs $(nproc) --retry 2
RUN gem uninstall -I google-protobuf
RUN gem install google-protobuf --version=3.7.0 --platform=ruby
@quinn

This comment has been minimized.

Copy link

@quinn quinn commented Apr 3, 2019

For me, i have to first add the gcompat package to get the segfault. It is segfaulting with or without BUNDLE_FORCE_RUBY_PLATFORM=1.

@shideneyu

This comment has been minimized.

Copy link

@shideneyu shideneyu commented May 3, 2019

I have exactly the same issue @quinn . Did you find any workaround ?

@quinn

This comment has been minimized.

Copy link

@quinn quinn commented May 5, 2019

@shideneyu I never did and had to switch from alpine to Ubuntu for the base image. Image size went from 50MB to 850MB, or something like that lol

If someone has this working can they post a Dockerfile with a Gemfile that works??

@quinn

This comment has been minimized.

Copy link

@quinn quinn commented May 23, 2019

it seems like people in this thread have gotten this to work, and the great thing about deterministic tools like bundler and docker is that it makes it incredibly easy to reproduce other's results. Can someone share their working:

  1. Gemfile
  2. Gemfile.lock
  3. Dockerfile

🙏

@nplusp

This comment has been minimized.

Copy link

@nplusp nplusp commented Jun 17, 2019

This does work for me on 2.6.3-alpine.

I have this in Gemfile:

gem "grpc", "1.21.0", platforms: ["ruby"]
gem "google-protobuf", "3.8.0", platforms: ["ruby"]

And this in Dockerfile:

RUN CFLAGS="-Wno-cast-function-type" \
      BUNDLE_FORCE_RUBY_PLATFORM=1 \
      bundle install
@OpakAlex

This comment has been minimized.

Copy link

@OpakAlex OpakAlex commented Dec 18, 2019

Same issue with ruby:2.6.5-alpine3.10

Tried:
CFLAGS="-Wno-cast-function-type" BUNDLE_FORCE_RUBY_PLATFORM=1 bundle install --jobs 20 --retry 5 --path /bundle

into Docker, no luck(

@OpakAlex

This comment has been minimized.

Copy link

@OpakAlex OpakAlex commented Dec 20, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
You can’t perform that action at this time.