googleapis / google-cloud-ruby

Google Cloud Client Library for Ruby
https://googleapis.github.io/google-cloud-ruby/
Apache License 2.0
1.35k stars 545 forks source link

Segfault using Speech Stream API #1093

Closed frankyn closed 7 years ago

frankyn commented 7 years ago

I'm having trouble with the Speech Stream API. I have a segmentation fault in Mac OS X. Below I have added the code with the segmentation fault. If there's any information I should provide please let me know.

Thank you.

Environment information

Mac: Sierra 10.12.1
Ruby: ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin16]

Segmentation Fault

https://gist.github.com/frankyn/6c8df2281b420d454228111dd11071b7

Audio file

https://github.com/GoogleCloudPlatform/ruby-docs-samples/blob/master/speech/audio_files/audio.raw

Gemfile

source 'https://rubygems.org'

gem 'google-cloud-speech'

Gemfile.lock

GEM
  remote: https://rubygems.org/
  specs:
    addressable (2.5.0)
      public_suffix (~> 2.0, >= 2.0.2)
    faraday (0.10.0)
      multipart-post (>= 1.2, < 3)
    google-cloud-core (0.21.1)
      googleauth (~> 0.5.1)
    google-cloud-speech (0.21.1)
      google-cloud-core (~> 0.21.0)
      google-gax (~> 0.6.0)
      google-protobuf (~> 3.0)
      googleapis-common-protos (~> 1.3)
      grpc (~> 1.0)
    google-gax (0.6.0)
      googleapis-common-protos (~> 1.3.1)
      googleauth (~> 0.5.1)
      grpc (~> 1.0)
      rly (~> 0.2.3)
    google-protobuf (3.0.2)
    googleapis-common-protos (1.3.4)
      google-protobuf (~> 3.0)
      grpc (~> 1.0)
    googleauth (0.5.1)
      faraday (~> 0.9)
      jwt (~> 1.4)
      logging (~> 2.0)
      memoist (~> 0.12)
      multi_json (~> 1.11)
      os (~> 0.9)
      signet (~> 0.7)
    grpc (1.0.1)
      google-protobuf (~> 3.0.2)
      googleauth (~> 0.5.1)
    jwt (1.5.6)
    little-plugger (1.1.4)
    logging (2.1.0)
      little-plugger (~> 1.1)
      multi_json (~> 1.10)
    memoist (0.15.0)
    multi_json (1.12.1)
    multipart-post (2.0.0)
    os (0.9.6)
    public_suffix (2.0.4)
    rly (0.2.3)
    signet (0.7.3)
      addressable (~> 2.3)
      faraday (~> 0.9)
      jwt (~> 1.5)
      multi_json (~> 1.10)

PLATFORMS
  ruby

DEPENDENCIES
  google-cloud-speech

BUNDLED WITH
   1.13.6

Code

require 'google/cloud/speech'

# Stream to speech and wait for transcription... 
speech = Google::Cloud::Speech.new

# Set up a stream
stream = speech.stream encoding: :raw, sample_rate: 16000, language: 'en'

stream.on_result do |results|
 result = results.last
 puts result.transcript
end

stream.on_error do |error|
  puts error
end

# Audio data
audio_content = File.binread("audio.raw")

bytes_sent = 0
chunk_size = 32000
bytes_total = audio_content.size
puts bytes_total

while bytes_sent < bytes_total do 
  stream.send audio_content[bytes_sent, chunk_size]
  bytes_sent += chunk_size
  sleep 1 
end

stream.stop
beccasaurus commented 7 years ago

fyi I get the same error

Gemfile.lock and my error output: https://gist.github.com/remi/053a51baa2c374af1d29946e5f40bead

quartzmo commented 7 years ago

@frankyn Thanks for finding and reporting this. (And thanks for including your audio file!) I will try to reproduce.

frankyn commented 7 years ago

@quartzmo , could I get an update on this? Thanks!

blowmage commented 7 years ago

@murgatroid99 Any input on this?

blowmage commented 7 years ago

@frankyn Do you still get a segfault using grpc 1.1.2?

frankyn commented 7 years ago

@blowmage I test it again with the updated grpc gem. At first it looked like it worked, because it didn't segfault. Then I noticed there was no transcribed output from this script.

I added a delay to the script shown below and then a segfault occurred again.

Script

require 'google/cloud/speech'

# Stream to speech and wait for transcription... 
speech = Google::Cloud::Speech.new

# Set up a stream
stream = speech.stream encoding: :raw, sample_rate: 16000, language: 'en'

stream.on_result do |results|
 result = results.last
 puts result.transcript
end

stream.on_error do |error|
  puts error
end

# Audio data
audio_content = File.binread "audio.raw"

bytes_sent = 0
chunk_size = 32000
bytes_total = audio_content.size
puts bytes_total

while bytes_sent < bytes_total do 
  stream.send audio_content[bytes_sent, chunk_size]
  bytes_sent += chunk_size
  sleep 1 
end

sleep 10

stream.stop 

Gemfile

GEM
  remote: https://rubygems.org/
  specs:
    addressable (2.5.0)
      public_suffix (~> 2.0, >= 2.0.2)
    faraday (0.11.0)
      multipart-post (>= 1.2, < 3)
    google-cloud-core (0.21.1)
      googleauth (~> 0.5.1)
    google-cloud-speech (0.21.1)
      google-cloud-core (~> 0.21.0)
      google-gax (~> 0.6.0)
      google-protobuf (~> 3.0)
      googleapis-common-protos (~> 1.3)
      grpc (~> 1.0)
    google-gax (0.6.0)
      googleapis-common-protos (~> 1.3.1)
      googleauth (~> 0.5.1)
      grpc (~> 1.0)
      rly (~> 0.2.3)
    google-protobuf (3.1.0)
    googleapis-common-protos (1.3.4)
      google-protobuf (~> 3.0)
      grpc (~> 1.0)
    googleauth (0.5.1)
      faraday (~> 0.9)
      jwt (~> 1.4)
      logging (~> 2.0)
      memoist (~> 0.12)
      multi_json (~> 1.11)
      os (~> 0.9)
      signet (~> 0.7)
    grpc (1.1.2)
      google-protobuf (~> 3.1)
      googleauth (~> 0.5.1)
    jwt (1.5.6)
    little-plugger (1.1.4)
    logging (2.1.0)
      little-plugger (~> 1.1)
      multi_json (~> 1.10)
    memoist (0.15.0)
    multi_json (1.12.1)
    multipart-post (2.0.0)
    os (0.9.6)
    public_suffix (2.0.5)
    rly (0.2.3)
    signet (0.7.3)
      addressable (~> 2.3)
      faraday (~> 0.9)
      jwt (~> 1.5)
      multi_json (~> 1.10)

PLATFORMS
  ruby

DEPENDENCIES
  google-cloud-speech

BUNDLED WITH
   1.13.6

Segfault

bundle exec ruby scribe2.rb 
57958
scribe2.rb: [BUG] Segmentation fault at 0x0070000cc027f8
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin16]

-- Crash Report log information --------------------------------------------
   See Crash Report log file under the one of following:                    
     * ~/Library/Logs/CrashReporter                                         
     * /Library/Logs/CrashReporter                                          
     * ~/Library/Logs/DiagnosticReports                                     
     * /Library/Logs/DiagnosticReports                                      
   for more details.                                                        
Don't forget to include the above Crash Report log file in bug reports.     

-- Control frame information -----------------------------------------------
c:0001 p:0000 s:0002 E:001520 (none) [FINISH]

-- Machine register context ------------------------------------------------
 rax: 0x000070000cc027f8 rbx: 0x00007fc06f237000 rcx: 0x0000160000001600
 rdx: 0x00007fc06f237060 rdi: 0x00007fc06f237040 rsi: 0x0000160000000000
 rbp: 0x00007fff5ce9c2e0 rsp: 0x00007fff5ce9c2b0  r8: 0x00007fc06f237058
  r9: 0x0000000000019fcb r10: 0x00007fc06f237060 r11: 0xffffffff00000000
 r12: 0x00007fc06f237000 r13: 0x00007fc06f237000 r14: 0x00007fff5ce9c330
 r15: 0x00007fc06f237090 rip: 0x000000010369aeb8 rfl: 0x0000000000010246

-- C level backtrace information -------------------------------------------
0   ruby                                0x0000000102f0bb64 rb_vm_bugreport + 388
1   ruby                                0x0000000102da7bca rb_bug_context + 490
2   ruby                                0x0000000102e7c0d4 sigsegv + 68
3   libsystem_platform.dylib            0x00007fffaa861bba _sigtramp + 26
4   grpc_c.bundle                       0x000000010369aeb8 grpc_call_error_to_string + 3784
5   ???                                 0x00007fff5ce9c330 0x0 + 140734752211760

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

* Loaded script: scribe2.rb

* Loaded features:

    0 enumerator.so
    1 thread.rb
    2 rational.so
    3 complex.so
    4 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/enc/encdb.bundle
    5 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/enc/trans/transdb.bundle
    6 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/unicode_normalize.rb
    7 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/rbconfig.rb
    8 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/compatibility.rb
    9 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/defaults.rb
   10 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/deprecate.rb
   11 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/errors.rb
   12 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/version.rb
   13 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/requirement.rb
   14 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/platform.rb
   15 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/basic_specification.rb
   16 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/stub_specification.rb
   17 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/util/list.rb
   18 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/stringio.bundle
   19 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/specification.rb
   20 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/exceptions.rb
   21 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_gem.rb
   22 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/monitor.rb
   23 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb
   24 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems.rb
   25 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/path_support.rb
   26 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/dependency.rb
   27 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/version.rb
   28 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/core_ext/name_error.rb
   29 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/levenshtein.rb
   30 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/jaro_winkler.rb
   31 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkable.rb
   32 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/delegate.rb
   33 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb
   34 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
   35 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/name_error_checkers.rb
   36 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/method_name_checker.rb
   37 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/spell_checkers/null_checker.rb
   38 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean/formatter.rb
   39 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib/did_you_mean.rb
   40 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/postit_trampoline.rb
   41 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/pathname.bundle
   42 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/pathname.rb
   43 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/constants.rb
   44 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/io/console.bundle
   45 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/user_interaction.rb
   46 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/etc.bundle
   47 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/config_file.rb
   48 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/rubygems_integration.rb
   49 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/current_ruby.rb
   50 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/shared_helpers.rb
   51 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/fileutils.rb
   52 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/errors.rb
   53 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/environment_preserver.rb
   54 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/socket.bundle
   55 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/io/wait.bundle
   56 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/socket.rb
   57 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/timeout.rb
   58 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/net/protocol.rb
   59 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/uri/rfc2396_parser.rb
   60 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/uri/rfc3986_parser.rb
   61 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/uri/common.rb
   62 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/uri/generic.rb
   63 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/uri/ftp.rb
   64 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/uri/http.rb
   65 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/uri/https.rb
   66 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/uri/ldap.rb
   67 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/uri/ldaps.rb
   68 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/uri/mailto.rb
   69 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/uri.rb
   70 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/zlib.bundle
   71 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/net/http/exceptions.rb
   72 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/net/http/header.rb
   73 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/enc/windows_31j.bundle
   74 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/net/http/generic_request.rb
   75 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/net/http/request.rb
   76 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/net/http/requests.rb
   77 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/net/http/response.rb
   78 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/net/http/responses.rb
   79 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/net/http/proxy_delta.rb
   80 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/net/http/backward.rb
   81 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/net/http.rb
   82 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/date_core.bundle
   83 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/date.rb
   84 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/time.rb
   85 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/request/http_pool.rb
   86 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/request/https_pool.rb
   87 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/request/connection_pools.rb
   88 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/request.rb
   89 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/cgi/core.rb
   90 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/cgi/escape.bundle
   91 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/cgi/util.rb
   92 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/cgi/cookie.rb
   93 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/cgi.rb
   94 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/uri_formatter.rb
   95 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/digest.bundle
   96 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/digest.rb
   97 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/openssl.bundle
   98 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/openssl/bn.rb
   99 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/openssl/pkey.rb
  100 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/openssl/cipher.rb
  101 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/openssl/config.rb
  102 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/openssl/digest.rb
  103 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/openssl/x509.rb
  104 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/openssl/buffering.rb
  105 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/io/nonblock.bundle
  106 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/openssl/ssl.rb
  107 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/openssl.rb
  108 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/securerandom.rb
  109 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/resolv.rb
  110 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/remote_fetcher.rb
  111 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/gem_remote_fetcher.rb
  112 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/digest/sha1.bundle
  113 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/plugin/api/source.rb
  114 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/plugin/api.rb
  115 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/plugin.rb
  116 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/util.rb
  117 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/source/git.rb
  118 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/source/installed.rb
  119 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/source/specific_file.rb
  120 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/source/local.rb
  121 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/source/lock.rb
  122 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/source/vendor.rb
  123 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/source.rb
  124 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/gem_helpers.rb
  125 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/match_platform.rb
  126 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/rubygems_ext.rb
  127 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/version.rb
  128 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler.rb
  129 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/settings.rb
  130 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/ext/build_error.rb
  131 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/ext/builder.rb
  132 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/ext/configure_builder.rb
  133 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/tmpdir.rb
  134 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/tempfile.rb
  135 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/ext/ext_conf_builder.rb
  136 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/ext/rake_builder.rb
  137 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/optparse.rb
  138 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/command.rb
  139 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/ext/cmake_builder.rb
  140 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/ext.rb
  141 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/yaml_serializer.rb
  142 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/strscan.bundle
  143 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/source.rb
  144 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/source/path.rb
  145 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/source/git.rb
  146 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/text.rb
  147 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/name_tuple.rb
  148 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/spec_fetcher.rb
  149 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/source/rubygems.rb
  150 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/lockfile_parser.rb
  151 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/set.rb
  152 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/definition.rb
  153 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/dependency.rb
  154 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/ruby_dsl.rb
  155 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/dsl.rb
  156 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/source_list.rb
  157 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/lazy_specification.rb
  158 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/tsort.rb
  159 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/forwardable.rb
  160 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/spec_set.rb
  161 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/gem_version_promoter.rb
  162 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/source/gemspec.rb
  163 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/runtime.rb
  164 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/dep_proxy.rb
  165 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/ui.rb
  166 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/ui/silent.rb
  167 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/ui/rg_proxy.rb
  168 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/index.rb
  169 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/remote_specification.rb
  170 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/stub_specification.rb
  171 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/endpoint_specification.rb
  172 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/bundler-1.13.6/lib/bundler/setup.rb
  173 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-cloud-core-0.21.1/lib/google/cloud/core/version.rb
  174 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-cloud-core-0.21.1/lib/google/cloud.rb
  175 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-cloud-speech-0.21.1/lib/google-cloud-speech.rb
  176 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-cloud-core-0.21.1/lib/google/cloud/errors.rb
  177 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/faraday-0.11.0/lib/faraday/utils.rb
  178 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/faraday-0.11.0/lib/faraday/options.rb
  179 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/faraday-0.11.0/lib/faraday/connection.rb
  180 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/faraday-0.11.0/lib/faraday/rack_builder.rb
  181 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/faraday-0.11.0/lib/faraday/parameters.rb
  182 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/faraday-0.11.0/lib/faraday/middleware.rb
  183 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/faraday-0.11.0/lib/faraday/adapter.rb
  184 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/faraday-0.11.0/lib/faraday/request.rb
  185 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/faraday-0.11.0/lib/faraday/response.rb
  186 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/multipart-post-2.0.0/lib/composite_io.rb
  187 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/multipart-post-2.0.0/lib/parts.rb
  188 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/faraday-0.11.0/lib/faraday/upload_io.rb
  189 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/faraday-0.11.0/lib/faraday/error.rb
  190 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/faraday-0.11.0/lib/faraday/autoload.rb
  191 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/faraday-0.11.0/lib/faraday.rb
  192 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-cloud-core-0.21.1/lib/google/cloud/core/environment.rb
  193 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/json/version.rb
  194 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/ostruct.rb
  195 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/json/generic_object.rb
  196 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/json/common.rb
  197 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/enc/utf_16be.bundle
  198 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/enc/utf_16le.bundle
  199 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/enc/utf_32be.bundle
  200 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/enc/utf_32le.bundle
  201 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/json/ext/parser.bundle
  202 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/json/ext/generator.bundle
  203 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/json/ext.rb
  204 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/json.rb
  205 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/addressable-2.5.0/lib/addressable/version.rb
  206 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/addressable-2.5.0/lib/addressable/idna/pure.rb
  207 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/addressable-2.5.0/lib/addressable/idna.rb
  208 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/public_suffix-2.0.5/lib/public_suffix/domain.rb
  209 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/public_suffix-2.0.5/lib/public_suffix/version.rb
  210 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/public_suffix-2.0.5/lib/public_suffix/errors.rb
  211 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/public_suffix-2.0.5/lib/public_suffix/rule.rb
  212 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/public_suffix-2.0.5/lib/public_suffix/list.rb
  213 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/public_suffix-2.0.5/lib/public_suffix.rb
  214 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/addressable-2.5.0/lib/addressable/uri.rb
  215 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/signet-0.7.3/lib/signet/version.rb
  216 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/signet-0.7.3/lib/signet.rb
  217 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/signet-0.7.3/lib/signet/errors.rb
  218 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/base64.rb
  219 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/multi_json-1.12.1/lib/multi_json/options.rb
  220 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/multi_json-1.12.1/lib/multi_json/version.rb
  221 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/multi_json-1.12.1/lib/multi_json/adapter_error.rb
  222 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/multi_json-1.12.1/lib/multi_json/parse_error.rb
  223 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/multi_json-1.12.1/lib/multi_json/options_cache.rb
  224 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/multi_json-1.12.1/lib/multi_json.rb
  225 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/signet-0.7.3/lib/compat/multi_json.rb
  226 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/signet-0.7.3/lib/signet/oauth_2.rb
  227 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/jwt-1.5.6/lib/jwt/json.rb
  228 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/jwt-1.5.6/lib/jwt/error.rb
  229 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/jwt-1.5.6/lib/jwt/verify.rb
  230 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/jwt-1.5.6/lib/jwt/decode.rb
  231 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/jwt-1.5.6/lib/jwt.rb
  232 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/signet-0.7.3/lib/signet/oauth_2/client.rb
  233 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/memoist-0.15.0/lib/memoist/version.rb
  234 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/memoist-0.15.0/lib/memoist/core_ext/singleton_class.rb
  235 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/memoist-0.15.0/lib/memoist.rb
  236 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/exception.rb
  237 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/syntax_error.rb
  238 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/x86_64-darwin16/psych.bundle
  239 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/omap.rb
  240 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/set.rb
  241 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/class_loader.rb
  242 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/scalar_scanner.rb
  243 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/nodes/node.rb
  244 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/nodes/stream.rb
  245 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/nodes/document.rb
  246 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/nodes/sequence.rb
  247 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/nodes/scalar.rb
  248 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/nodes/mapping.rb
  249 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/nodes/alias.rb
  250 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/nodes.rb
  251 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/streaming.rb
  252 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/visitor.rb
  253 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/to_ruby.rb
  254 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/emitter.rb
  255 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/handler.rb
  256 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/tree_builder.rb
  257 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/yaml_tree.rb
  258 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/json/ruby_events.rb
  259 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/json_tree.rb
  260 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors/depth_first.rb
  261 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/visitors.rb
  262 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/parser.rb
  263 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/coder.rb
  264 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/core_ext.rb
  265 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/deprecated.rb
  266 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/stream.rb
  267 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/json/yaml_events.rb
  268 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/json/tree_builder.rb
  269 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/json/stream.rb
  270 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych/handlers/document_stream.rb
  271 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/psych.rb
  272 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/yaml.rb
  273 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/os-0.9.6/lib/os.rb
  274 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/googleauth-0.5.1/lib/googleauth/credentials_loader.rb
  275 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/googleauth-0.5.1/lib/googleauth/signet.rb
  276 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/googleauth-0.5.1/lib/googleauth/compute_engine.rb
  277 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/googleauth-0.5.1/lib/googleauth/service_account.rb
  278 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/googleauth-0.5.1/lib/googleauth/scope_util.rb
  279 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/googleauth-0.5.1/lib/googleauth/user_refresh.rb
  280 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/googleauth-0.5.1/lib/googleauth/client_id.rb
  281 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/googleauth-0.5.1/lib/googleauth/user_authorizer.rb
  282 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/googleauth-0.5.1/lib/googleauth/web_user_authorizer.rb
  283 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/googleauth-0.5.1/lib/googleauth.rb
  284 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-cloud-core-0.21.1/lib/google/cloud/credentials.rb
  285 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/English.rb
  286 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-gax-0.6.0/lib/google/gax/errors.rb
  287 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-gax-0.6.0/lib/google/gax/bundling.rb
  288 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-gax-0.6.0/lib/google/gax/api_callable.rb
  289 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rly-0.2.3/lib/rly/version.rb
  290 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rly-0.2.3/lib/rly/lex_token.rb
  291 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rly-0.2.3/lib/rly/lex.rb
  292 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rly-0.2.3/lib/rly/file_lex.rb
  293 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rly-0.2.3/lib/rly/parse/production.rb
  294 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rly-0.2.3/lib/rly/parse/lr_item.rb
  295 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rly-0.2.3/lib/rly/parse/grammar.rb
  296 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rly-0.2.3/lib/rly/parse/yacc_production.rb
  297 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rly-0.2.3/lib/rly/parse/yacc_symbol.rb
  298 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rly-0.2.3/lib/rly/parse/lr_table.rb
  299 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/erb.rb
  300 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rly-0.2.3/lib/rly/parse/ply_dump.rb
  301 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rly-0.2.3/lib/rly/yacc.rb
  302 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rly-0.2.3/lib/rly/parse/rule_parser.rb
  303 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rly-0.2.3/lib/rly.rb
  304 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-gax-0.6.0/lib/google/gax/path_template.rb
  305 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-gax-0.6.0/lib/google/gax/settings.rb
  306 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-gax-0.6.0/lib/google/gax/version.rb
  307 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-gax-0.6.0/lib/google/gax.rb
  308 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-protobuf-3.1.0-universal-darwin/lib/google/protobuf/message_exts.rb
  309 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-protobuf-3.1.0-universal-darwin/lib/google/2.3/protobuf_c.bundle
  310 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-protobuf-3.1.0-universal-darwin/lib/google/protobuf/repeated_field.rb
  311 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-protobuf-3.1.0-universal-darwin/lib/google/protobuf.rb
  312 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/googleapis-common-protos-1.3.4/lib/google/api/http_pb.rb
  313 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/googleapis-common-protos-1.3.4/lib/google/api/annotations_pb.rb
  314 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-protobuf-3.1.0-universal-darwin/lib/google/protobuf/any_pb.rb
  315 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-protobuf-3.1.0-universal-darwin/lib/google/protobuf/empty_pb.rb
  316 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/googleapis-common-protos-1.3.4/lib/google/rpc/status_pb.rb
  317 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/googleapis-common-protos-1.3.4/lib/google/longrunning/operations_pb.rb
  318 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-protobuf-3.1.0-universal-darwin/lib/google/protobuf/timestamp_pb.rb
  319 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-cloud-speech-0.21.1/lib/google/cloud/speech/v1beta1/cloud_speech_pb.rb
  320 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-cloud-speech-0.21.1/lib/google/cloud/speech/v1beta1/speech_api.rb
  321 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-gax-0.6.0/lib/google/longrunning/operations_api.rb
  322 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-cloud-speech-0.21.1/lib/google/cloud/speech/v1beta1.rb
  323 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-cloud-speech-0.21.1/lib/google/cloud/speech/credentials.rb
  324 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-cloud-speech-0.21.1/lib/google/cloud/speech/version.rb
  325 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-cloud-speech-0.21.1/lib/google/cloud/speech/service.rb
  326 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-cloud-speech-0.21.1/lib/google/cloud/speech/audio.rb
  327 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-cloud-speech-0.21.1/lib/google/cloud/speech/result.rb
  328 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-cloud-speech-0.21.1/lib/google/cloud/speech/job.rb
  329 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-cloud-speech-0.21.1/lib/google/cloud/speech/stream.rb
  330 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-cloud-speech-0.21.1/lib/google/cloud/speech/project.rb
  331 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-cloud-speech-0.21.1/lib/google/cloud/speech.rb
  332 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/faraday-0.11.0/lib/faraday/request/url_encoded.rb
  333 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/net/https.rb
  334 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/faraday-0.11.0/lib/faraday/adapter/net_http.rb
  335 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/singleton.rb
  336 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/multi_json-1.12.1/lib/multi_json/adapter.rb
  337 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/multi_json-1.12.1/lib/multi_json/adapters/json_common.rb
  338 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/multi_json-1.12.1/lib/multi_json/adapters/json_gem.rb
  339 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/grpc-1.1.2-universal-darwin/src/ruby/lib/grpc/2.3/grpc_c.bundle
  340 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/grpc-1.1.2-universal-darwin/src/ruby/lib/grpc/grpc.rb
  341 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/grpc-1.1.2-universal-darwin/src/ruby/lib/grpc/errors.rb
  342 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/grpc-1.1.2-universal-darwin/src/ruby/lib/grpc/logconfig.rb
  343 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/grpc-1.1.2-universal-darwin/src/ruby/lib/grpc/notifier.rb
  344 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/grpc-1.1.2-universal-darwin/src/ruby/lib/grpc/version.rb
  345 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/grpc-1.1.2-universal-darwin/src/ruby/lib/grpc/core/time_consts.rb
  346 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/2.3.0/weakref.rb
  347 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/grpc-1.1.2-universal-darwin/src/ruby/lib/grpc/generic/bidi_call.rb
  348 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/grpc-1.1.2-universal-darwin/src/ruby/lib/grpc/generic/active_call.rb
  349 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/grpc-1.1.2-universal-darwin/src/ruby/lib/grpc/generic/client_stub.rb
  350 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/grpc-1.1.2-universal-darwin/src/ruby/lib/grpc/generic/rpc_desc.rb
  351 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/grpc-1.1.2-universal-darwin/src/ruby/lib/grpc/generic/service.rb
  352 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/grpc-1.1.2-universal-darwin/src/ruby/lib/grpc/generic/rpc_server.rb
  353 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/grpc-1.1.2-universal-darwin/src/ruby/lib/grpc.rb
  354 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-gax-0.6.0/lib/google/gax/grpc.rb
  355 /Users/franknatividad/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/google-cloud-speech-0.21.1/lib/google/cloud/speech/v1beta1/cloud_speech_services_pb.rb

[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

Abort trap: 6
blowmage commented 7 years ago

@swcloud Can you escalate this to the GRPC team?

blowmage commented 7 years ago

@frankyn Looking at this again, I'm confused at what you are trying to do with the following code:

sleep 10

stream.stop

After you stream the bytes, you are keeping the stream alive for an additional 10 seconds. Then, you close the stream and immediately exit the ruby process. So the GRPC client, which is still in process of closing the stream, segfaults because it isn't handling the exit well. This effectively the same as pressing Control-C mid-stream, which will also make GRPC segfault.

I won't deny that the GRPC client has problems, but that doesn't seem like anything a user would try to do. I guess I don't know what that code is trying to demonstrate.

The thing about this code example is that the ruby process needs to continue to exist while it waits for the stream to complete, and for results to be returned. Exiting immediately after stopping sending bytes seems to be the cause of of the segfault.

frankyn commented 7 years ago

@blowmage, I'm probably misunderstanding the snippet provided in the client library docs.

I'm trying to use the Streaming API to transcribe an audio file. My end goal, which has not been added to this script, is to make a ML blog post with an example of using the Speech Streaming API to add English subtitles to a video in a different language.

I added sleep 10, because the script shown above would "complete" without printing a transcription of the audio.

How should I wait for the transcription to complete?

Thanks Mike, I really appreciate your help!

blowmage commented 7 years ago

Sleeping after stopping the stream would be a big improvement. That would give all the events time to fire before exiting the process.

I also think if you actually used the result the process would not be exiting so early. Another thing we have done is use the on_complete callback to know when all results are returned.

require 'google/cloud/speech'

# Stream to speech and wait for transcription...
speech = Google::Cloud::Speech.new

# Set up a stream
stream = speech.stream encoding: :raw, sample_rate: 16000, language: 'en'

stream.on_result do |results|
 result = results.last
 puts result.transcript
end

stream.on_error do |error|
  puts error
end

complete = false
stream.on_complete do
  complete = true
end

# Audio data
audio_content = File.binread "audio.raw"

bytes_sent = 0
chunk_size = 32000
bytes_total = audio_content.size
puts bytes_total

while bytes_sent < bytes_total do 
  stream.send audio_content[bytes_sent, chunk_size]
  bytes_sent += chunk_size
  sleep 1 
end

stream.stop

while complete == false do
  puts "waiting"
  sleep 1
end

results = stream.results
results.each do |result|
  puts result.transcript
end
frankyn commented 7 years ago

Thanks Mike!