Skip to content
This repository has been archived by the owner on Apr 14, 2021. It is now read-only.

Falling back to the dependency API on 1.14 #5373

Closed
jschnurholmes opened this issue Jan 26, 2017 · 15 comments · Fixed by #5826
Closed

Falling back to the dependency API on 1.14 #5373

jschnurholmes opened this issue Jan 26, 2017 · 15 comments · Fixed by #5826

Comments

@jschnurholmes
Copy link

jschnurholmes commented Jan 26, 2017

Specifying a ruby version in the Gemfile no longer causes bundler to find versions of gems compatible with the specified ruby version.

Gemfile used for testing:

source 'https://rubygems.org'

ruby '2.0.0'

gem 'chef', '~> 11.12.4'
gem 'ohai'
gem 'mime-types', '~> 1.25.0'
gem 'nokogiri', '~> 1.5.5'

output of ruby -v
ruby 2.0.0p648 (2015-12-16) [x86_64-linux]

output of bundle install:

Fetching gem metadata from https://rubygems.org/.........
Fetching version metadata from https://rubygems.org/..
Resolving dependencies...
Rubygems 2.0.14.1 is not threadsafe, so your gems will be installed one at a time. Upgrade to Rubygems 2.1.0 or higher to enable parallel gem installation.
Installing hashie 2.1.2
Installing json 1.8.1 with native extensions
Installing mixlib-log 1.7.1
Installing rack 2.0.1
Installing diff-lcs 1.3
Installing erubis 2.7.0
Installing highline 1.7.8
Installing mime-types 1.25.1
Installing mixlib-cli 1.7.0
Installing mixlib-config 2.2.4
Installing mixlib-shellout 1.6.1
Installing net-ssh 2.9.4
Installing ipaddress 0.8.3
Installing systemu 2.5.2
Installing yajl-ruby 1.3.0 with native extensions
Installing coderay 1.1.1
Installing method_source 0.8.2
Installing slop 3.6.0
Installing nokogiri 1.5.11 with native extensions
Using bundler 1.14.3
Installing mixlib-authentication 1.4.1
Gem::InstallError: rack requires Ruby version >= 2.2.2.
An error occurred while installing rack (2.0.1), and Bundler cannot continue.
Make sure that `gem install rack -v '2.0.1'` succeeds before bundling.

Tested with bundler version 1.14.0, 1.14.1, 1.14.2, 1.14.3. Command works on bundler v 1.13.7

@segiddins
Copy link
Member

I am unable to reproduce this -- can you please share the output of bundle env, as well as running with --verbose? Thanks!

@jschnurholmes
Copy link
Author

jschnurholmes commented Jan 26, 2017

Issue was initially encountered on a server running Amazon Linux, but I can also reproduce locally on OS X 10.12.2 using the system ruby. Output below is from the Linux box.

bundle env

Environment

Bundler   1.14.3
Rubygems  2.0.14.1
Ruby      2.0.0p648 (2015-12-16 revision 0) [x86_64-linux]
Git       not installed
Platform  x86_64-linux

## Gemfile

### Gemfile

```ruby
source 'https://rubygems.org'

ruby '2.0.0'

gem 'chef', '~> 11.12.4'
gem 'ohai'
gem 'mime-types', '~> 1.25.0'
gem 'nokogiri', '~> 1.5.5'

Gemfile.lock

<No /tmp/knifescape/Gemfile.lock found>

bundle install --verbose

Running `bundle install --verbose` with bundler 1.14.3
Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing your bundle as root will break this application for all non-root users on this machine.
Found changes from the lockfile, re-resolving dependencies because bundler is unlocking ruby
HTTP GET https://index.rubygems.org/api/v1/dependencies
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies
Fetching gem metadata from https://rubygems.org/
HTTP GET https://index.rubygems.org/api/v1/dependencies
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies
Query List: ["chef", "ohai", "mime-types", "nokogiri"]
Query Gemcutter Dependency Endpoint API: chef,ohai,mime-types,nokogiri
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=chef%2Cmime-types%2Cnokogiri%2Cohai
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=chef%2Cmime-types%2Cnokogiri%2Cohai
Query List: ["mixlib-config", "mixlib-cli", "mixlib-log", "mixlib-authentication", "rest-client", "bunny", "json", "treetop", "net-ssh", "net-ssh-multi", "erubis", "moneta", "highline", "uuidtools", "mixlib-shellout", "yajl-ruby", "syslog-logger", "specinfra", "serverspec", "rspec_junit_formatter", "rspec-mocks", "rspec-expectations", "rspec-core", "plist", "pry", "chef-zero", "diff-lcs", "ffi-yajl", "chef-config", "proxifier", "puma", "ffi", "rdp-ruby-wmi", "windows-api", "windows-pr", "win32-api", "win32-dir", "win32-event", "win32-mutex", "win32-process", "win32-service", "win32-mmap", "extlib", "wmi-lite", "win32-eventlog", "bundler", "net-sftp", "iniparse", "addressable", "mixlib-archive", "amqp", "ruby-hmac", "systemu", "ruby-openid", "stomp", "archive-tar-minitar", "rcov", "hoe", "mime-types-data", "weakling", "mini_portile", "mini_portile2", "racc", "rexical", "rake-compiler", "pkg-config", "tenderlove-frex", "ipaddress", "rake", "net-dhcp"]
Query Gemcutter Dependency Endpoint API: mixlib-config,mixlib-cli,mixlib-log,mixlib-authentication,rest-client,bunny,json,treetop,net-ssh,net-ssh-multi,erubis,moneta,highline,uuidtools,mixlib-shellout,yajl-ruby,syslog-logger,specinfra,serverspec,rspec_junit_formatter,rspec-mocks,rspec-expectations,rspec-core,plist,pry,chef-zero,diff-lcs,ffi-yajl,chef-config,proxifier,puma,ffi,rdp-ruby-wmi,windows-api,windows-pr,win32-api,win32-dir,win32-event,win32-mutex,win32-process,win32-service,win32-mmap,extlib,wmi-lite,win32-eventlog,bundler,net-sftp,iniparse,addressable,mixlib-archive,amqp,ruby-hmac,systemu,ruby-openid,stomp,archive-tar-minitar,rcov,hoe,mime-types-data,weakling,mini_portile,mini_portile2,racc,rexical,rake-compiler,pkg-config,tenderlove-frex,ipaddress,rake,net-dhcp
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=addressable%2Cbundler%2Cbunny%2Cchef-config%2Cchef-zero%2Cdiff-lcs%2Cerubis%2Cextlib%2Cffi%2Cffi-yajl%2Chighline%2Ciniparse%2Cjson%2Cmixlib-archive%2Cmixlib-authentication%2Cmixlib-cli%2Cmixlib-config%2Cmixlib-log%2Cmixlib-shellout%2Cmoneta%2Cnet-sftp%2Cnet-ssh%2Cnet-ssh-multi%2Cplist%2Cproxifier%2Cpry%2Cpuma%2Crdp-ruby-wmi%2Crest-client%2Crspec-core%2Crspec-expectations%2Crspec-mocks%2Crspec_junit_formatter%2Cserverspec%2Cspecinfra%2Csyslog-logger%2Ctreetop%2Cuuidtools%2Cwin32-api%2Cwin32-dir%2Cwin32-event%2Cwin32-eventlog%2Cwin32-mmap%2Cwin32-mutex%2Cwin32-process%2Cwin32-service%2Cwindows-api%2Cwindows-pr%2Cwmi-lite%2Cyajl-ruby
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=addressable%2Cbundler%2Cbunny%2Cchef-config%2Cchef-zero%2Cdiff-lcs%2Cerubis%2Cextlib%2Cffi%2Cffi-yajl%2Chighline%2Ciniparse%2Cjson%2Cmixlib-archive%2Cmixlib-authentication%2Cmixlib-cli%2Cmixlib-config%2Cmixlib-log%2Cmixlib-shellout%2Cmoneta%2Cnet-sftp%2Cnet-ssh%2Cnet-ssh-multi%2Cplist%2Cproxifier%2Cpry%2Cpuma%2Crdp-ruby-wmi%2Crest-client%2Crspec-core%2Crspec-expectations%2Crspec-mocks%2Crspec_junit_formatter%2Cserverspec%2Cspecinfra%2Csyslog-logger%2Ctreetop%2Cuuidtools%2Cwin32-api%2Cwin32-dir%2Cwin32-event%2Cwin32-eventlog%2Cwin32-mmap%2Cwin32-mutex%2Cwin32-process%2Cwin32-service%2Cwindows-api%2Cwindows-pr%2Cwmi-lite%2Cyajl-ruby
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=amqp%2Carchive-tar-minitar%2Choe%2Cipaddress%2Cmime-types-data%2Cmini_portile%2Cmini_portile2%2Cnet-dhcp%2Cpkg-config%2Cracc%2Crake%2Crake-compiler%2Crcov%2Crexical%2Cruby-hmac%2Cruby-openid%2Cstomp%2Csystemu%2Ctenderlove-frex%2Cweakling
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=amqp%2Carchive-tar-minitar%2Choe%2Cipaddress%2Cmime-types-data%2Cmini_portile%2Cmini_portile2%2Cnet-dhcp%2Cpkg-config%2Cracc%2Crake%2Crake-compiler%2Crcov%2Crexical%2Cruby-hmac%2Cruby-openid%2Cstomp%2Csystemu%2Ctenderlove-frex%2Cweakling
Query List: ["rspec", "launchy", "public_suffix", "amq-protocol", "fuzzyurl", "thin", "solve", "hashie", "rack", "abstract", "english", "bones", "libyajl2", "termios", "echoe", "needle", "jruby-pageant", "bcrypt_pbkdf", "rbnacl", "rbnacl-libsodium", "net-ssh-gateway", "ruby_parser", "coderay", "method_source", "win32console", "slop", "spoon", "yard", "netrc", "http-cookie", "rdoc", "rspec-support", "builder", "multi_json", "rspec-its", "net-scp", "sfl", "net-telnet", "polyglot", "facets", "test-unit", "win32-ipc", "ptools", "ffi-win32-extensions", "eventmachine", "amq-client", "rubyforge", "gemcutter", "RubyInline", "pcap", "ruby-yadis"]
Query Gemcutter Dependency Endpoint API: rspec,launchy,public_suffix,amq-protocol,fuzzyurl,thin,solve,hashie,rack,abstract,english,bones,libyajl2,termios,echoe,needle,jruby-pageant,bcrypt_pbkdf,rbnacl,rbnacl-libsodium,net-ssh-gateway,ruby_parser,coderay,method_source,win32console,slop,spoon,yard,netrc,http-cookie,rdoc,rspec-support,builder,multi_json,rspec-its,net-scp,sfl,net-telnet,polyglot,facets,test-unit,win32-ipc,ptools,ffi-win32-extensions,eventmachine,amq-client,rubyforge,gemcutter,RubyInline,pcap,ruby-yadis
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=RubyInline%2Cabstract%2Camq-client%2Camq-protocol%2Cbcrypt_pbkdf%2Cbones%2Cbuilder%2Ccoderay%2Cechoe%2Cenglish%2Ceventmachine%2Cfacets%2Cffi-win32-extensions%2Cfuzzyurl%2Cgemcutter%2Chashie%2Chttp-cookie%2Cjruby-pageant%2Claunchy%2Clibyajl2%2Cmethod_source%2Cmulti_json%2Cneedle%2Cnet-scp%2Cnet-ssh-gateway%2Cnet-telnet%2Cnetrc%2Cpcap%2Cpolyglot%2Cptools%2Cpublic_suffix%2Crack%2Crbnacl%2Crbnacl-libsodium%2Crdoc%2Crspec%2Crspec-its%2Crspec-support%2Cruby_parser%2Crubyforge%2Csfl%2Cslop%2Csolve%2Cspoon%2Ctermios%2Ctest-unit%2Cthin%2Cwin32-ipc%2Cwin32console%2Cyard
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=RubyInline%2Cabstract%2Camq-client%2Camq-protocol%2Cbcrypt_pbkdf%2Cbones%2Cbuilder%2Ccoderay%2Cechoe%2Cenglish%2Ceventmachine%2Cfacets%2Cffi-win32-extensions%2Cfuzzyurl%2Cgemcutter%2Chashie%2Chttp-cookie%2Cjruby-pageant%2Claunchy%2Clibyajl2%2Cmethod_source%2Cmulti_json%2Cneedle%2Cnet-scp%2Cnet-ssh-gateway%2Cnet-telnet%2Cnetrc%2Cpcap%2Cpolyglot%2Cptools%2Cpublic_suffix%2Crack%2Crbnacl%2Crbnacl-libsodium%2Crdoc%2Crspec%2Crspec-its%2Crspec-support%2Cruby_parser%2Crubyforge%2Csfl%2Cslop%2Csolve%2Cspoon%2Ctermios%2Ctest-unit%2Cthin%2Cwin32-ipc%2Cwin32console%2Cyard
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=ruby-yadis
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=ruby-yadis
Query List: ["ZenTest", "little-plugger", "loquacious", "bones-git", "bones-extras", "allison", "language", "json_pure", "domain_name", "sqlite3", "configuration", "win32-file", "test-spec", "camping", "fcgi", "memcache-client", "mongrel", "minitest", "syntax", "cucumber", "spicycode-rcov", "sexp_processor", "ParseTree", "dep_selector", "semverse", "molinillo", "power_assert", "daemons", "eventmachine-le", "http_parser.rb", "preforker"]
Query Gemcutter Dependency Endpoint API: ZenTest,little-plugger,loquacious,bones-git,bones-extras,allison,language,json_pure,domain_name,sqlite3,configuration,win32-file,test-spec,camping,fcgi,memcache-client,mongrel,minitest,syntax,cucumber,spicycode-rcov,sexp_processor,ParseTree,dep_selector,semverse,molinillo,power_assert,daemons,eventmachine-le,http_parser.rb,preforker
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=ParseTree%2CZenTest%2Callison%2Cbones-extras%2Cbones-git%2Ccamping%2Cconfiguration%2Ccucumber%2Cdaemons%2Cdep_selector%2Cdomain_name%2Ceventmachine-le%2Cfcgi%2Chttp_parser.rb%2Cjson_pure%2Clanguage%2Clittle-plugger%2Cloquacious%2Cmemcache-client%2Cminitest%2Cmolinillo%2Cmongrel%2Cpower_assert%2Cpreforker%2Csemverse%2Csexp_processor%2Cspicycode-rcov%2Csqlite3%2Csyntax%2Ctest-spec%2Cwin32-file
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=ParseTree%2CZenTest%2Callison%2Cbones-extras%2Cbones-git%2Ccamping%2Cconfiguration%2Ccucumber%2Cdaemons%2Cdep_selector%2Cdomain_name%2Ceventmachine-le%2Cfcgi%2Chttp_parser.rb%2Cjson_pure%2Clanguage%2Clittle-plugger%2Cloquacious%2Cmemcache-client%2Cminitest%2Cmolinillo%2Cmongrel%2Cpower_assert%2Cpreforker%2Csemverse%2Csexp_processor%2Cspicycode-rcov%2Csqlite3%2Csyntax%2Ctest-spec%2Cwin32-file
Query List: ["SexpProcessor", "bones-rcov", "bones-rubyforge", "bones-rspec", "bones-zentest", "git", "activerecord", "markaby", "metaid", "mab", "activesupport", "term-ansicolor", "gherkin", "multi_test", "cucumber-core", "event-bus", "cucumber-wire", "gherkin3", "dep-selector-libgecode", "unf", "spruz", "gem_plugin", "cgi_multipart_eof_fix", "fastthread", "pattern-match", "flexmock", "mocha", "win32-file-stat"]
Query Gemcutter Dependency Endpoint API: SexpProcessor,bones-rcov,bones-rubyforge,bones-rspec,bones-zentest,git,activerecord,markaby,metaid,mab,activesupport,term-ansicolor,gherkin,multi_test,cucumber-core,event-bus,cucumber-wire,gherkin3,dep-selector-libgecode,unf,spruz,gem_plugin,cgi_multipart_eof_fix,fastthread,pattern-match,flexmock,mocha,win32-file-stat
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=SexpProcessor%2Cactiverecord%2Cactivesupport%2Cbones-rcov%2Cbones-rspec%2Cbones-rubyforge%2Cbones-zentest%2Ccgi_multipart_eof_fix%2Ccucumber-core%2Ccucumber-wire%2Cdep-selector-libgecode%2Cevent-bus%2Cfastthread%2Cflexmock%2Cgem_plugin%2Cgherkin%2Cgherkin3%2Cgit%2Cmab%2Cmarkaby%2Cmetaid%2Cmocha%2Cmulti_test%2Cpattern-match%2Cspruz%2Cterm-ansicolor%2Cunf%2Cwin32-file-stat
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=SexpProcessor%2Cactiverecord%2Cactivesupport%2Cbones-rcov%2Cbones-rspec%2Cbones-rubyforge%2Cbones-zentest%2Ccgi_multipart_eof_fix%2Ccucumber-core%2Ccucumber-wire%2Cdep-selector-libgecode%2Cevent-bus%2Cfastthread%2Cflexmock%2Cgem_plugin%2Cgherkin%2Cgherkin3%2Cgit%2Cmab%2Cmarkaby%2Cmetaid%2Cmocha%2Cmulti_test%2Cpattern-match%2Cspruz%2Cterm-ansicolor%2Cunf%2Cwin32-file-stat
Query List: ["activemodel", "arel", "tzinfo", "activerecord-deprecated_finders", "thread_safe", "i18n", "concurrent-ruby", "backports", "trollop", "metaclass", "tins", "unf_ext"]
Query Gemcutter Dependency Endpoint API: activemodel,arel,tzinfo,activerecord-deprecated_finders,thread_safe,i18n,concurrent-ruby,backports,trollop,metaclass,tins,unf_ext
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=activemodel%2Cactiverecord-deprecated_finders%2Carel%2Cbackports%2Cconcurrent-ruby%2Ci18n%2Cmetaclass%2Cthread_safe%2Ctins%2Ctrollop%2Ctzinfo%2Cunf_ext
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=activemodel%2Cactiverecord-deprecated_finders%2Carel%2Cbackports%2Cconcurrent-ruby%2Ci18n%2Cmetaclass%2Cthread_safe%2Ctins%2Ctrollop%2Ctzinfo%2Cunf_ext
Query List: ["bcrypt-ruby", "functional-ruby", "ref", "atomic", "curses"]
Query Gemcutter Dependency Endpoint API: bcrypt-ruby,functional-ruby,ref,atomic,curses
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=atomic%2Cbcrypt-ruby%2Ccurses%2Cfunctional-ruby%2Cref
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=atomic%2Cbcrypt-ruby%2Ccurses%2Cfunctional-ruby%2Cref
Query List: ["bcrypt"]
Query Gemcutter Dependency Endpoint API: bcrypt
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=bcrypt
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=bcrypt
Query List: []
Fetching version metadata from https://rubygems.org/
HTTP GET https://index.rubygems.org/api/v1/dependencies
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies
Query List: ["bcrypt", "activesupport", "builder", "i18n", "bcrypt-ruby", "functional-ruby", "ref", "atomic", "curses", "hoe", "thread_safe", "sexp_processor", "activemodel", "arel", "tzinfo", "activerecord-deprecated_finders", "minitest", "json", "multi_json", "concurrent-ruby", "method_source", "memcache-client", "bones", "rcov", "rspec", "rubyforge", "ZenTest", "gherkin", "gherkin3", "backports", "rake", "trollop", "term-ansicolor", "metaclass", "tins", "unf_ext", "windows-pr", "ffi", "test-unit", "ffi-win32-extensions", "RubyInline", "SexpProcessor", "bones-rcov", "bones-rubyforge", "bones-rspec", "bones-zentest", "git", "activerecord", "markaby", "metaid", "rack", "mab", "treetop", "diff-lcs", "json_pure", "multi_test", "polyglot", "cucumber-core", "event-bus", "cucumber-wire", "dep-selector-libgecode", "unf", "spruz", "daemons", "gem_plugin", "cgi_multipart_eof_fix", "fastthread", "pattern-match", "flexmock", "mocha", "win32-file-stat", "win32-api", "eventmachine", "amq-protocol", "little-plugger", "loquacious", "rdoc", "bones-git", "bones-extras", "highline", "gemcutter", "allison", "facets", "language", "net-scp", "domain_name", "sqlite3", "addressable", "spoon", "configuration", "ruby_parser", "net-ssh", "echoe", "win32-file", "test-spec", "camping", "fcgi", "mongrel", "ruby-openid", "thin", "rbnacl", "syntax", "rspec-core", "rspec-expectations", "rspec-mocks", "cucumber", "spicycode-rcov", "ParseTree", "dep_selector", "semverse", "molinillo", "power_assert", "eventmachine-le", "http_parser.rb", "preforker", "erubis", "launchy", "public_suffix", "mixlib-config", "mixlib-shellout", "fuzzyurl", "mixlib-log", "solve", "hashie", "chef", "puma", "moneta", "ffi-yajl", "uuidtools", "abstract", "english", "libyajl2", "termios", "extlib", "wmi-lite", "win32-process", "windows-api", "needle", "jruby-pageant", "bcrypt_pbkdf", "rbnacl-libsodium", "net-ssh-gateway", "coderay", "win32console", "slop", "yard", "mime-types", "netrc", "http-cookie", "rspec-support", "specinfra", "rspec-its", "sfl", "net-telnet", "win32-ipc", "ptools", "win32-mmap", "amq-client", "pcap", "ruby-yadis", "stomp", "mixlib-cli", "mixlib-authentication", "ohai", "rest-client", "bunny", "net-ssh-multi", "yajl-ruby", "syslog-logger", "serverspec", "rspec_junit_formatter", "plist", "pry", "chef-zero", "chef-config", "proxifier", "rdp-ruby-wmi", "win32-dir", "win32-event", "win32-mutex", "win32-service", "win32-eventlog", "bundler", "net-sftp", "iniparse", "mixlib-archive", "amqp", "ruby-hmac", "systemu", "archive-tar-minitar", "nokogiri", "mime-types-data", "weakling", "mini_portile", "mini_portile2", "racc", "rexical", "rake-compiler", "pkg-config", "tenderlove-frex", "ipaddress", "net-dhcp"]
Query Gemcutter Dependency Endpoint API: bcrypt,activesupport,builder,i18n,bcrypt-ruby,functional-ruby,ref,atomic,curses,hoe,thread_safe,sexp_processor,activemodel,arel,tzinfo,activerecord-deprecated_finders,minitest,json,multi_json,concurrent-ruby,method_source,memcache-client,bones,rcov,rspec,rubyforge,ZenTest,gherkin,gherkin3,backports,rake,trollop,term-ansicolor,metaclass,tins,unf_ext,windows-pr,ffi,test-unit,ffi-win32-extensions,RubyInline,SexpProcessor,bones-rcov,bones-rubyforge,bones-rspec,bones-zentest,git,activerecord,markaby,metaid,rack,mab,treetop,diff-lcs,json_pure,multi_test,polyglot,cucumber-core,event-bus,cucumber-wire,dep-selector-libgecode,unf,spruz,daemons,gem_plugin,cgi_multipart_eof_fix,fastthread,pattern-match,flexmock,mocha,win32-file-stat,win32-api,eventmachine,amq-protocol,little-plugger,loquacious,rdoc,bones-git,bones-extras,highline,gemcutter,allison,facets,language,net-scp,domain_name,sqlite3,addressable,spoon,configuration,ruby_parser,net-ssh,echoe,win32-file,test-spec,camping,fcgi,mongrel,ruby-openid,thin,rbnacl,syntax,rspec-core,rspec-expectations,rspec-mocks,cucumber,spicycode-rcov,ParseTree,dep_selector,semverse,molinillo,power_assert,eventmachine-le,http_parser.rb,preforker,erubis,launchy,public_suffix,mixlib-config,mixlib-shellout,fuzzyurl,mixlib-log,solve,hashie,chef,puma,moneta,ffi-yajl,uuidtools,abstract,english,libyajl2,termios,extlib,wmi-lite,win32-process,windows-api,needle,jruby-pageant,bcrypt_pbkdf,rbnacl-libsodium,net-ssh-gateway,coderay,win32console,slop,yard,mime-types,netrc,http-cookie,rspec-support,specinfra,rspec-its,sfl,net-telnet,win32-ipc,ptools,win32-mmap,amq-client,pcap,ruby-yadis,stomp,mixlib-cli,mixlib-authentication,ohai,rest-client,bunny,net-ssh-multi,yajl-ruby,syslog-logger,serverspec,rspec_junit_formatter,plist,pry,chef-zero,chef-config,proxifier,rdp-ruby-wmi,win32-dir,win32-event,win32-mutex,win32-service,win32-eventlog,bundler,net-sftp,iniparse,mixlib-archive,amqp,ruby-hmac,systemu,archive-tar-minitar,nokogiri,mime-types-data,weakling,mini_portile,mini_portile2,racc,rexical,rake-compiler,pkg-config,tenderlove-frex,ipaddress,net-dhcp
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=RubyInline%2CSexpProcessor%2CZenTest%2Cactivemodel%2Cactiverecord%2Cactiverecord-deprecated_finders%2Cactivesupport%2Carel%2Catomic%2Cbackports%2Cbcrypt%2Cbcrypt-ruby%2Cbones%2Cbones-rcov%2Cbones-rspec%2Cbones-rubyforge%2Cbones-zentest%2Cbuilder%2Cconcurrent-ruby%2Ccurses%2Cffi%2Cffi-win32-extensions%2Cfunctional-ruby%2Cgherkin%2Cgherkin3%2Cgit%2Choe%2Ci18n%2Cjson%2Cmarkaby%2Cmemcache-client%2Cmetaclass%2Cmetaid%2Cmethod_source%2Cminitest%2Cmulti_json%2Crake%2Crcov%2Cref%2Crspec%2Crubyforge%2Csexp_processor%2Cterm-ansicolor%2Ctest-unit%2Cthread_safe%2Ctins%2Ctrollop%2Ctzinfo%2Cunf_ext%2Cwindows-pr
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=RubyInline%2CSexpProcessor%2CZenTest%2Cactivemodel%2Cactiverecord%2Cactiverecord-deprecated_finders%2Cactivesupport%2Carel%2Catomic%2Cbackports%2Cbcrypt%2Cbcrypt-ruby%2Cbones%2Cbones-rcov%2Cbones-rspec%2Cbones-rubyforge%2Cbones-zentest%2Cbuilder%2Cconcurrent-ruby%2Ccurses%2Cffi%2Cffi-win32-extensions%2Cfunctional-ruby%2Cgherkin%2Cgherkin3%2Cgit%2Choe%2Ci18n%2Cjson%2Cmarkaby%2Cmemcache-client%2Cmetaclass%2Cmetaid%2Cmethod_source%2Cminitest%2Cmulti_json%2Crake%2Crcov%2Cref%2Crspec%2Crubyforge%2Csexp_processor%2Cterm-ansicolor%2Ctest-unit%2Cthread_safe%2Ctins%2Ctrollop%2Ctzinfo%2Cunf_ext%2Cwindows-pr
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=addressable%2Callison%2Camq-protocol%2Cbones-extras%2Cbones-git%2Ccamping%2Ccgi_multipart_eof_fix%2Cconfiguration%2Ccucumber-core%2Ccucumber-wire%2Cdaemons%2Cdep-selector-libgecode%2Cdiff-lcs%2Cdomain_name%2Cechoe%2Cevent-bus%2Ceventmachine%2Cfacets%2Cfastthread%2Cfcgi%2Cflexmock%2Cgem_plugin%2Cgemcutter%2Chighline%2Cjson_pure%2Clanguage%2Clittle-plugger%2Cloquacious%2Cmab%2Cmocha%2Cmongrel%2Cmulti_test%2Cnet-scp%2Cnet-ssh%2Cpattern-match%2Cpolyglot%2Crack%2Crdoc%2Cruby-openid%2Cruby_parser%2Cspoon%2Cspruz%2Csqlite3%2Ctest-spec%2Cthin%2Ctreetop%2Cunf%2Cwin32-api%2Cwin32-file%2Cwin32-file-stat
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=addressable%2Callison%2Camq-protocol%2Cbones-extras%2Cbones-git%2Ccamping%2Ccgi_multipart_eof_fix%2Cconfiguration%2Ccucumber-core%2Ccucumber-wire%2Cdaemons%2Cdep-selector-libgecode%2Cdiff-lcs%2Cdomain_name%2Cechoe%2Cevent-bus%2Ceventmachine%2Cfacets%2Cfastthread%2Cfcgi%2Cflexmock%2Cgem_plugin%2Cgemcutter%2Chighline%2Cjson_pure%2Clanguage%2Clittle-plugger%2Cloquacious%2Cmab%2Cmocha%2Cmongrel%2Cmulti_test%2Cnet-scp%2Cnet-ssh%2Cpattern-match%2Cpolyglot%2Crack%2Crdoc%2Cruby-openid%2Cruby_parser%2Cspoon%2Cspruz%2Csqlite3%2Ctest-spec%2Cthin%2Ctreetop%2Cunf%2Cwin32-api%2Cwin32-file%2Cwin32-file-stat
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=ParseTree%2Cabstract%2Cbcrypt_pbkdf%2Cchef%2Ccoderay%2Ccucumber%2Cdep_selector%2Cenglish%2Cerubis%2Ceventmachine-le%2Cextlib%2Cffi-yajl%2Cfuzzyurl%2Chashie%2Chttp-cookie%2Chttp_parser.rb%2Cjruby-pageant%2Claunchy%2Clibyajl2%2Cmime-types%2Cmixlib-config%2Cmixlib-log%2Cmixlib-shellout%2Cmolinillo%2Cmoneta%2Cneedle%2Cnet-ssh-gateway%2Cnetrc%2Cpower_assert%2Cpreforker%2Cpublic_suffix%2Cpuma%2Crbnacl%2Crbnacl-libsodium%2Crspec-core%2Crspec-expectations%2Crspec-mocks%2Crspec-support%2Csemverse%2Cslop%2Csolve%2Cspicycode-rcov%2Csyntax%2Ctermios%2Cuuidtools%2Cwin32-process%2Cwin32console%2Cwindows-api%2Cwmi-lite%2Cyard
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=ParseTree%2Cabstract%2Cbcrypt_pbkdf%2Cchef%2Ccoderay%2Ccucumber%2Cdep_selector%2Cenglish%2Cerubis%2Ceventmachine-le%2Cextlib%2Cffi-yajl%2Cfuzzyurl%2Chashie%2Chttp-cookie%2Chttp_parser.rb%2Cjruby-pageant%2Claunchy%2Clibyajl2%2Cmime-types%2Cmixlib-config%2Cmixlib-log%2Cmixlib-shellout%2Cmolinillo%2Cmoneta%2Cneedle%2Cnet-ssh-gateway%2Cnetrc%2Cpower_assert%2Cpreforker%2Cpublic_suffix%2Cpuma%2Crbnacl%2Crbnacl-libsodium%2Crspec-core%2Crspec-expectations%2Crspec-mocks%2Crspec-support%2Csemverse%2Cslop%2Csolve%2Cspicycode-rcov%2Csyntax%2Ctermios%2Cuuidtools%2Cwin32-process%2Cwin32console%2Cwindows-api%2Cwmi-lite%2Cyard
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=amq-client%2Camqp%2Carchive-tar-minitar%2Cbundler%2Cbunny%2Cchef-config%2Cchef-zero%2Ciniparse%2Cmime-types-data%2Cmini_portile%2Cmini_portile2%2Cmixlib-archive%2Cmixlib-authentication%2Cmixlib-cli%2Cnet-sftp%2Cnet-ssh-multi%2Cnet-telnet%2Cnokogiri%2Cohai%2Cpcap%2Cpkg-config%2Cplist%2Cproxifier%2Cpry%2Cptools%2Cracc%2Crake-compiler%2Crdp-ruby-wmi%2Crest-client%2Crexical%2Crspec-its%2Crspec_junit_formatter%2Cruby-hmac%2Cruby-yadis%2Cserverspec%2Csfl%2Cspecinfra%2Cstomp%2Csyslog-logger%2Csystemu%2Ctenderlove-frex%2Cweakling%2Cwin32-dir%2Cwin32-event%2Cwin32-eventlog%2Cwin32-ipc%2Cwin32-mmap%2Cwin32-mutex%2Cwin32-service%2Cyajl-ruby
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=amq-client%2Camqp%2Carchive-tar-minitar%2Cbundler%2Cbunny%2Cchef-config%2Cchef-zero%2Ciniparse%2Cmime-types-data%2Cmini_portile%2Cmini_portile2%2Cmixlib-archive%2Cmixlib-authentication%2Cmixlib-cli%2Cnet-sftp%2Cnet-ssh-multi%2Cnet-telnet%2Cnokogiri%2Cohai%2Cpcap%2Cpkg-config%2Cplist%2Cproxifier%2Cpry%2Cptools%2Cracc%2Crake-compiler%2Crdp-ruby-wmi%2Crest-client%2Crexical%2Crspec-its%2Crspec_junit_formatter%2Cruby-hmac%2Cruby-yadis%2Cserverspec%2Csfl%2Cspecinfra%2Cstomp%2Csyslog-logger%2Csystemu%2Ctenderlove-frex%2Cweakling%2Cwin32-dir%2Cwin32-event%2Cwin32-eventlog%2Cwin32-ipc%2Cwin32-mmap%2Cwin32-mutex%2Cwin32-service%2Cyajl-ruby
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=ipaddress%2Cnet-dhcp
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=ipaddress%2Cnet-dhcp
Query List: []
Resolving dependencies...
Rubygems 2.0.14.1 is not threadsafe, so your gems will be installed one at a time. Upgrade to Rubygems 2.1.0 or higher to enable parallel gem installation.
Using hashie 2.1.2
0:  hashie (2.1.2) from /usr/local/share/ruby/gems/2.0/specifications/hashie-2.1.2.gemspec
Using json 1.8.1
0:  json (1.8.1) from /usr/local/share/ruby/gems/2.0/specifications/json-1.8.1.gemspec
Using mixlib-log 1.7.1
0:  mixlib-log (1.7.1) from /usr/local/share/ruby/gems/2.0/specifications/mixlib-log-1.7.1.gemspec
Installing rack 2.0.1
Using diff-lcs 1.3
0:  diff-lcs (1.3) from /usr/local/share/ruby/gems/2.0/specifications/diff-lcs-1.3.gemspec
Using erubis 2.7.0
0:  erubis (2.7.0) from /usr/local/share/ruby/gems/2.0/specifications/erubis-2.7.0.gemspec
Using highline 1.7.8
0:  highline (1.7.8) from /usr/local/share/ruby/gems/2.0/specifications/highline-1.7.8.gemspec
Using mime-types 1.25.1
0:  mime-types (1.25.1) from /usr/local/share/ruby/gems/2.0/specifications/mime-types-1.25.1.gemspec
Using mixlib-cli 1.7.0
0:  mixlib-cli (1.7.0) from /usr/local/share/ruby/gems/2.0/specifications/mixlib-cli-1.7.0.gemspec
Using mixlib-config 2.2.4
0:  mixlib-config (2.2.4) from /usr/local/share/ruby/gems/2.0/specifications/mixlib-config-2.2.4.gemspec
Using mixlib-shellout 1.6.1
0:  mixlib-shellout (1.6.1) from /usr/local/share/ruby/gems/2.0/specifications/mixlib-shellout-1.6.1.gemspec
Using net-ssh 2.9.4
0:  net-ssh (2.9.4) from /usr/local/share/ruby/gems/2.0/specifications/net-ssh-2.9.4.gemspec
Using ipaddress 0.8.3
0:  ipaddress (0.8.3) from /usr/local/share/ruby/gems/2.0/specifications/ipaddress-0.8.3.gemspec
Using systemu 2.5.2
0:  systemu (2.5.2) from /usr/local/share/ruby/gems/2.0/specifications/systemu-2.5.2.gemspec
Using yajl-ruby 1.3.0
0:  yajl-ruby (1.3.0) from /usr/local/share/ruby/gems/2.0/specifications/yajl-ruby-1.3.0.gemspec
Using coderay 1.1.1
0:  coderay (1.1.1) from /usr/local/share/ruby/gems/2.0/specifications/coderay-1.1.1.gemspec
Using method_source 0.8.2
0:  method_source (0.8.2) from /usr/local/share/ruby/gems/2.0/specifications/method_source-0.8.2.gemspec
Using slop 3.6.0
0:  slop (3.6.0) from /usr/local/share/ruby/gems/2.0/specifications/slop-3.6.0.gemspec
Using nokogiri 1.5.11
0:  nokogiri (1.5.11) from /usr/local/share/ruby/gems/2.0/specifications/nokogiri-1.5.11.gemspec
Using bundler 1.14.3
0:  bundler (1.14.3) from /usr/local/share/ruby/gems/2.0/specifications/bundler-1.14.3.gemspec
Using mixlib-authentication 1.4.1
0:  mixlib-authentication (1.4.1) from /usr/local/share/ruby/gems/2.0/specifications/mixlib-authentication-1.4.1.gemspec
Gem::InstallError: rack requires Ruby version >= 2.2.2.
  /usr/share/ruby/vendor_ruby/2.0/rubygems/installer.rb:518:in `ensure_required_ruby_version_met'
  /usr/share/ruby/vendor_ruby/2.0/rubygems/installer.rb:774:in `pre_install_checks'
  /usr/local/share/ruby/gems/2.0/gems/bundler-1.14.3/lib/bundler/rubygems_gem_installer.rb:17:in `pre_install_checks'
  /usr/share/ruby/vendor_ruby/2.0/rubygems/installer.rb:216:in `install'
  /usr/local/share/ruby/gems/2.0/gems/bundler-1.14.3/lib/bundler/source/rubygems.rb:146:in `block in install'
  /usr/local/share/ruby/gems/2.0/gems/bundler-1.14.3/lib/bundler/rubygems_integration.rb:187:in `preserve_paths'
  /usr/local/share/ruby/gems/2.0/gems/bundler-1.14.3/lib/bundler/source/rubygems.rb:136:in `install'
  /usr/local/share/ruby/gems/2.0/gems/bundler-1.14.3/lib/bundler/installer/gem_installer.rb:55:in `install'
  /usr/local/share/ruby/gems/2.0/gems/bundler-1.14.3/lib/bundler/installer/gem_installer.rb:15:in `install_from_spec'
  /usr/local/share/ruby/gems/2.0/gems/bundler-1.14.3/lib/bundler/installer/parallel_installer.rb:114:in `block in worker_pool'
  /usr/local/share/ruby/gems/2.0/gems/bundler-1.14.3/lib/bundler/worker.rb:63:in `call'
  /usr/local/share/ruby/gems/2.0/gems/bundler-1.14.3/lib/bundler/worker.rb:63:in `apply_func'
  /usr/local/share/ruby/gems/2.0/gems/bundler-1.14.3/lib/bundler/worker.rb:58:in `block in process_queue'
  /usr/local/share/ruby/gems/2.0/gems/bundler-1.14.3/lib/bundler/worker.rb:55:in `loop'
  /usr/local/share/ruby/gems/2.0/gems/bundler-1.14.3/lib/bundler/worker.rb:55:in `process_queue'
  /usr/local/share/ruby/gems/2.0/gems/bundler-1.14.3/lib/bundler/worker.rb:88:in `block (2 levels) in create_threads'

An error occurred while installing rack (2.0.1), and Bundler cannot continue.
Make sure that `gem install rack -v '2.0.1'` succeeds before bundling.

@segiddins
Copy link
Member

Issue is that bundler is hitting the dependency API for some reason instead of the new index (which is the only one of the ways of fetching dependencies that actually contains the required_ruby_version)

HTTP GET https://index.rubygems.org/api/v1/dependencies

@segiddins segiddins changed the title Bundler no longer respects 'ruby' directive as of v 1.14 Falling back to the dependency API on 1.14 Jan 26, 2017
@jschnurholmes
Copy link
Author

Reverting the change to lib/bundler/definition.rb from c8149f7 fixes the issue for me locally

@segiddins
Copy link
Member

Can you share the output with that commit reverted with DEBUG=1?

@jschnurholmes
Copy link
Author

@segiddins having trouble reproducing the issue once I've had the bundle install successfully. Tried uninstalling off the gems bundler installed and removing Gemfile.lock. Is there a cache somewhere I need to delete?

@segiddins
Copy link
Member

Not for the dependency API, no

@jschnurholmes
Copy link
Author

Tried the modified gem on the server, and it doesn't fix the issue there. Not sure what was going on in my local environment.

@colby-swandale
Copy link
Member

ping @jschnurholmes is this still an issue?

@jschnurholmes
Copy link
Author

I've seen this issue more recently, but I didn't notice what version of bundler I was running at the time.

@tsuwatch
Copy link

tsuwatch commented Jul 5, 2017

I reproduced, too in v1.15.1. v1.15.0 works properly.

@segiddins
Copy link
Member

@tsuwatch please share the output of bundle install --verbose with the failure, thank you!

@tsuwatch
Copy link

tsuwatch commented Jul 5, 2017

Running `bundle install --verbose` with bundler 1.15.1
Found changes from the lockfile, re-resolving dependencies because the list of sources changed, the dependencies in your gemfile changed, you added a new platform to your gemfile, the gemspecs for path gems changed
HTTP GET https://index.rubygems.org/versions
HTTP 416 Range Not Satisfiable https://index.rubygems.org/versions
Bundler::HTTPError: Net::HTTPRequestedRangeNotSatisfiable
/usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/fetcher/downloader.rb:36:in `fetch'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/fetcher/compact_index.rb:116:in `call'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/compact_index_client/updater.rb:43:in `block in update'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/2.2.0/tmpdir.rb:88:in `mktmpdir'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/compact_index_client/updater.rb:30:in `update'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/compact_index_client.rb:81:in `update'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/compact_index_client.rb:68:in `update_and_parse_checksums!'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/fetcher/compact_index.rb:68:in `available?'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/fetcher/compact_index.rb:15:in `call'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/fetcher/compact_index.rb:15:in `block in compact_index_request'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/fetcher.rb:157:in `use_api'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/source/rubygems.rb:343:in `block in api_fetchers'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/source/rubygems.rb:343:in `select'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/source/rubygems.rb:343:in `api_fetchers'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/source/rubygems.rb:348:in `block in remote_specs'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/index.rb:10:in `build'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/source/rubygems.rb:347:in `remote_specs'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/source/rubygems.rb:82:in `specs'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/definition.rb:246:in `block (2 levels) in index'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/definition.rb:244:in `each'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/definition.rb:244:in `block in index'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/index.rb:10:in `build'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/definition.rb:241:in `index'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/definition.rb:235:in `resolve'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/definition.rb:159:in `specs'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/definition.rb:147:in `resolve_remotely!'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/installer.rb:226:in `resolve_if_need'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/installer.rb:78:in `run'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/installer.rb:24:in `install'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/cli/install.rb:70:in `run'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/cli.rb:186:in `block in install'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/settings.rb:100:in `temporary'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/cli.rb:185:in `install'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor.rb:369:in `dispatch'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/cli.rb:20:in `dispatch'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/base.rb:444:in `start'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/cli.rb:10:in `start'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/exe/bundle:35:in `block in <top (required)>'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/lib/bundler/friendly_errors.rb:121:in `with_friendly_errors'
  /usr/local/opt/rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.15.1/exe/bundle:27:in `<top (required)>'
  /usr/local/opt/rbenv/versions/2.2.0/bin/bundle:23:in `load'
  /usr/local/opt/rbenv/versions/2.2.0/bin/bundle:23:in `<main>'
HTTP GET https://index.rubygems.org/api/v1/dependencies
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies
Fetching gem metadata from https://rubygems.org/
HTTP GET https://index.rubygems.org/api/v1/dependencies
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies
Query List: ["rubocop", "json", "rspec", "rack-test", "rake", "coveralls", "rabl", "iconv", "grape", "tilt", "i18n"]
Query Gemcutter Dependency Endpoint API: rubocop,json,rspec,rack-test,rake,coveralls,rabl,iconv,grape,tilt,i18n
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=coveralls%2Cgrape%2Ci18n%2Ciconv%2Cjson%2Crabl%2Crack-test%2Crake%2Crspec%2Crubocop%2Ctilt
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=coveralls%2Cgrape%2Ci18n%2Ciconv%2Cjson%2Crabl%2Crack-test%2Crake%2Crspec%2Crubocop%2Ctilt
Query List: ["rest-client", "term-ansicolor", "multi_json", "thor", "simplecov", "colorize", "tins", "builder", "virtus", "activesupport", "rack-accept", "mustermann-grape", "rack", "rack-mount", "multi_xml", "hashie", "rack-jsonp", "mustermann19", "rspec-core", "rspec-expectations", "rspec-mocks", "cucumber", "hoe", "diff-lcs", "syntax", "spicycode-rcov", "parallel", "unicode-display_width", "ruby-progressbar", "powerpack", "parser", "rainbow", "astrolabe", "backports"]
Query Gemcutter Dependency Endpoint API: rest-client,term-ansicolor,multi_json,thor,simplecov,colorize,tins,builder,virtus,activesupport,rack-accept,mustermann-grape,rack,rack-mount,multi_xml,hashie,rack-jsonp,mustermann19,rspec-core,rspec-expectations,rspec-mocks,cucumber,hoe,diff-lcs,syntax,spicycode-rcov,parallel,unicode-display_width,ruby-progressbar,powerpack,parser,rainbow,astrolabe,backports
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=activesupport%2Castrolabe%2Cbackports%2Cbuilder%2Ccolorize%2Ccucumber%2Cdiff-lcs%2Chashie%2Choe%2Cmulti_json%2Cmulti_xml%2Cmustermann-grape%2Cmustermann19%2Cparallel%2Cparser%2Cpowerpack%2Crack%2Crack-accept%2Crack-jsonp%2Crack-mount%2Crainbow%2Crest-client%2Crspec-core%2Crspec-expectations%2Crspec-mocks%2Cruby-progressbar%2Csimplecov%2Cspicycode-rcov%2Csyntax%2Cterm-ansicolor%2Cthor%2Ctins%2Cunicode-display_width%2Cvirtus
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=activesupport%2Castrolabe%2Cbackports%2Cbuilder%2Ccolorize%2Ccucumber%2Cdiff-lcs%2Chashie%2Choe%2Cmulti_json%2Cmulti_xml%2Cmustermann-grape%2Cmustermann19%2Cparallel%2Cparser%2Cpowerpack%2Crack%2Crack-accept%2Crack-jsonp%2Crack-mount%2Crainbow%2Crest-client%2Crspec-core%2Crspec-expectations%2Crspec-mocks%2Cruby-progressbar%2Csimplecov%2Cspicycode-rcov%2Csyntax%2Cterm-ansicolor%2Cthor%2Ctins%2Cunicode-display_width%2Cvirtus
Query List: ["thread_safe", "minitest", "tzinfo", "concurrent-ruby", "memcache-client", "method_source", "treetop", "polyglot", "gherkin", "multi_test", "json_pure", "cucumber-wire", "cucumber-core", "gherkin3", "event-bus", "rubyforge", "gemcutter", "RubyInline", "mustermann", "enumerable-lazy", "ast", "slop", "sexp_processor", "test-spec", "camping", "fcgi", "mongrel", "ruby-openid", "thin", "multimap", "ffi", "netrc", "mime-types", "http-cookie", "http-accept", "rdoc", "rspec-support", "simplecov-html", "docile", "lockfile", "descendants_tracker", "axiom-types", "coercible", "equalizer"]
Query Gemcutter Dependency Endpoint API: thread_safe,minitest,tzinfo,concurrent-ruby,memcache-client,method_source,treetop,polyglot,gherkin,multi_test,json_pure,cucumber-wire,cucumber-core,gherkin3,event-bus,rubyforge,gemcutter,RubyInline,mustermann,enumerable-lazy,ast,slop,sexp_processor,test-spec,camping,fcgi,mongrel,ruby-openid,thin,multimap,ffi,netrc,mime-types,http-cookie,http-accept,rdoc,rspec-support,simplecov-html,docile,lockfile,descendants_tracker,axiom-types,coercible,equalizer
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=RubyInline%2Cast%2Caxiom-types%2Ccamping%2Ccoercible%2Cconcurrent-ruby%2Ccucumber-core%2Ccucumber-wire%2Cdescendants_tracker%2Cdocile%2Cenumerable-lazy%2Cequalizer%2Cevent-bus%2Cfcgi%2Cffi%2Cgemcutter%2Cgherkin%2Cgherkin3%2Chttp-accept%2Chttp-cookie%2Cjson_pure%2Clockfile%2Cmemcache-client%2Cmethod_source%2Cmime-types%2Cminitest%2Cmongrel%2Cmulti_test%2Cmultimap%2Cmustermann%2Cnetrc%2Cpolyglot%2Crdoc%2Crspec-support%2Cruby-openid%2Crubyforge%2Csexp_processor%2Csimplecov-html%2Cslop%2Ctest-spec%2Cthin%2Cthread_safe%2Ctreetop%2Ctzinfo
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=RubyInline%2Cast%2Caxiom-types%2Ccamping%2Ccoercible%2Cconcurrent-ruby%2Ccucumber-core%2Ccucumber-wire%2Cdescendants_tracker%2Cdocile%2Cenumerable-lazy%2Cequalizer%2Cevent-bus%2Cfcgi%2Cffi%2Cgemcutter%2Cgherkin%2Cgherkin3%2Chttp-accept%2Chttp-cookie%2Cjson_pure%2Clockfile%2Cmemcache-client%2Cmethod_source%2Cmime-types%2Cminitest%2Cmongrel%2Cmulti_test%2Cmultimap%2Cmustermann%2Cnetrc%2Cpolyglot%2Crdoc%2Crspec-support%2Cruby-openid%2Crubyforge%2Csexp_processor%2Csimplecov-html%2Cslop%2Ctest-spec%2Cthin%2Cthread_safe%2Ctreetop%2Ctzinfo
Query List: ["ZenTest", "ice_nine", "mab", "markaby", "metaid", "activerecord", "ref", "functional-ruby", "adamantium", "bones", "net-scp", "trollop", "domain_name", "sqlite3", "spruz", "ruby_parser", "mime-types-data", "archive-tar-minitar", "nokogiri", "rcov", "gem_plugin", "cgi_multipart_eof_fix", "daemons", "fastthread", "tool", "ruby-yadis", "flexmock", "mocha", "eventmachine", "eventmachine-le", "http_parser.rb", "preforker", "atomic", "facets"]
Query Gemcutter Dependency Endpoint API: ZenTest,ice_nine,mab,markaby,metaid,activerecord,ref,functional-ruby,adamantium,bones,net-scp,trollop,domain_name,sqlite3,spruz,ruby_parser,mime-types-data,archive-tar-minitar,nokogiri,rcov,gem_plugin,cgi_multipart_eof_fix,daemons,fastthread,tool,ruby-yadis,flexmock,mocha,eventmachine,eventmachine-le,http_parser.rb,preforker,atomic,facets
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=ZenTest%2Cactiverecord%2Cadamantium%2Carchive-tar-minitar%2Catomic%2Cbones%2Ccgi_multipart_eof_fix%2Cdaemons%2Cdomain_name%2Ceventmachine%2Ceventmachine-le%2Cfacets%2Cfastthread%2Cflexmock%2Cfunctional-ruby%2Cgem_plugin%2Chttp_parser.rb%2Cice_nine%2Cmab%2Cmarkaby%2Cmetaid%2Cmime-types-data%2Cmocha%2Cnet-scp%2Cnokogiri%2Cpreforker%2Crcov%2Cref%2Cruby-yadis%2Cruby_parser%2Cspruz%2Csqlite3%2Ctool%2Ctrollop
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=ZenTest%2Cactiverecord%2Cadamantium%2Carchive-tar-minitar%2Catomic%2Cbones%2Ccgi_multipart_eof_fix%2Cdaemons%2Cdomain_name%2Ceventmachine%2Ceventmachine-le%2Cfacets%2Cfastthread%2Cflexmock%2Cfunctional-ruby%2Cgem_plugin%2Chttp_parser.rb%2Cice_nine%2Cmab%2Cmarkaby%2Cmetaid%2Cmime-types-data%2Cmocha%2Cnet-scp%2Cnokogiri%2Cpreforker%2Crcov%2Cref%2Cruby-yadis%2Cruby_parser%2Cspruz%2Csqlite3%2Ctool%2Ctrollop
Query List: ["arel", "activemodel", "activerecord-deprecated_finders", "memoizable", "minitar-cli", "minitar", "loquacious", "little-plugger", "bones-git", "bones-extras", "unf", "metaclass", "net-ssh", "mini_portile2", "mini_portile", "weakling", "pkg-config", "racc", "rexical", "rake-compiler", "tenderlove-frex", "ParseTree", "curses"]
Query Gemcutter Dependency Endpoint API: arel,activemodel,activerecord-deprecated_finders,memoizable,minitar-cli,minitar,loquacious,little-plugger,bones-git,bones-extras,unf,metaclass,net-ssh,mini_portile2,mini_portile,weakling,pkg-config,racc,rexical,rake-compiler,tenderlove-frex,ParseTree,curses
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=ParseTree%2Cactivemodel%2Cactiverecord-deprecated_finders%2Carel%2Cbones-extras%2Cbones-git%2Ccurses%2Clittle-plugger%2Cloquacious%2Cmemoizable%2Cmetaclass%2Cmini_portile%2Cmini_portile2%2Cminitar%2Cminitar-cli%2Cnet-ssh%2Cpkg-config%2Cracc%2Crake-compiler%2Crexical%2Ctenderlove-frex%2Cunf%2Cweakling
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=ParseTree%2Cactivemodel%2Cactiverecord-deprecated_finders%2Carel%2Cbones-extras%2Cbones-git%2Ccurses%2Clittle-plugger%2Cloquacious%2Cmemoizable%2Cmetaclass%2Cmini_portile%2Cmini_portile2%2Cminitar%2Cminitar-cli%2Cnet-ssh%2Cpkg-config%2Cracc%2Crake-compiler%2Crexical%2Ctenderlove-frex%2Cunf%2Cweakling
Query List: ["SexpProcessor", "bcrypt-ruby", "bones-rcov", "bones-rubyforge", "bones-rspec", "bones-zentest", "git", "powerbar", "needle", "jruby-pageant", "bcrypt_pbkdf", "rbnacl", "rbnacl-libsodium", "echoe", "unf_ext"]
Query Gemcutter Dependency Endpoint API: SexpProcessor,bcrypt-ruby,bones-rcov,bones-rubyforge,bones-rspec,bones-zentest,git,powerbar,needle,jruby-pageant,bcrypt_pbkdf,rbnacl,rbnacl-libsodium,echoe,unf_ext
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=SexpProcessor%2Cbcrypt-ruby%2Cbcrypt_pbkdf%2Cbones-rcov%2Cbones-rspec%2Cbones-rubyforge%2Cbones-zentest%2Cechoe%2Cgit%2Cjruby-pageant%2Cneedle%2Cpowerbar%2Crbnacl%2Crbnacl-libsodium%2Cunf_ext
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=SexpProcessor%2Cbcrypt-ruby%2Cbcrypt_pbkdf%2Cbones-rcov%2Cbones-rspec%2Cbones-rubyforge%2Cbones-zentest%2Cechoe%2Cgit%2Cjruby-pageant%2Cneedle%2Cpowerbar%2Crbnacl%2Crbnacl-libsodium%2Cunf_ext
Query List: ["bcrypt", "allison", "highline", "ansi"]
Query Gemcutter Dependency Endpoint API: bcrypt,allison,highline,ansi
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=allison%2Cansi%2Cbcrypt%2Chighline
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=allison%2Cansi%2Cbcrypt%2Chighline
Query List: ["termios"]
Query Gemcutter Dependency Endpoint API: termios
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=termios
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=termios
Query List: []
Fetching version metadata from https://rubygems.org/
HTTP GET https://index.rubygems.org/api/v1/dependencies
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies
Query List: ["termios", "sexp_processor", "bcrypt", "bones", "rcov", "rspec", "rubyforge", "ZenTest", "allison", "rdoc", "rake", "gemcutter", "highline", "hashie", "ansi", "ffi", "rbnacl", "RubyInline", "hoe", "SexpProcessor", "activesupport", "builder", "i18n", "bcrypt-ruby", "bones-rcov", "bones-rubyforge", "bones-rspec", "bones-zentest", "git", "thread_safe", "powerbar", "minitar", "needle", "jruby-pageant", "bcrypt_pbkdf", "rbnacl-libsodium", "echoe", "unf_ext", "arel", "activemodel", "tzinfo", "activerecord-deprecated_finders", "backports", "ice_nine", "memoizable", "minitar-cli", "loquacious", "little-plugger", "bones-git", "bones-extras", "unf", "metaclass", "net-ssh", "mini_portile2", "mini_portile", "weakling", "pkg-config", "racc", "rexical", "rake-compiler", "tenderlove-frex", "ParseTree", "curses", "descendants_tracker", "rack", "mab", "markaby", "metaid", "activerecord", "ref", "functional-ruby", "gherkin", "gherkin3", "adamantium", "json_pure", "net-scp", "json", "term-ansicolor", "trollop", "multi_json", "domain_name", "sqlite3", "spruz", "ruby_parser", "mime-types-data", "archive-tar-minitar", "nokogiri", "gem_plugin", "cgi_multipart_eof_fix", "daemons", "fastthread", "tool", "minitest", "ruby-yadis", "simplecov", "flexmock", "mocha", "eventmachine", "eventmachine-le", "http_parser.rb", "preforker", "atomic", "facets", "polyglot", "concurrent-ruby", "memcache-client", "method_source", "parser", "treetop", "diff-lcs", "multi_test", "cucumber-wire", "cucumber-core", "event-bus", "mustermann", "enumerable-lazy", "ast", "slop", "test-spec", "camping", "fcgi", "mongrel", "ruby-openid", "thin", "multimap", "netrc", "mime-types", "http-cookie", "http-accept", "rspec-support", "rspec-core", "rspec-expectations", "simplecov-html", "docile", "lockfile", "tins", "axiom-types", "coercible", "equalizer", "rest-client", "thor", "colorize", "virtus", "rack-accept", "mustermann-grape", "rack-mount", "multi_xml", "rack-jsonp", "mustermann19", "rspec-mocks", "cucumber", "syntax", "spicycode-rcov", "parallel", "unicode-display_width", "ruby-progressbar", "powerpack", "rainbow", "astrolabe"]
Query Gemcutter Dependency Endpoint API: termios,sexp_processor,bcrypt,bones,rcov,rspec,rubyforge,ZenTest,allison,rdoc,rake,gemcutter,highline,hashie,ansi,ffi,rbnacl,RubyInline,hoe,SexpProcessor,activesupport,builder,i18n,bcrypt-ruby,bones-rcov,bones-rubyforge,bones-rspec,bones-zentest,git,thread_safe,powerbar,minitar,needle,jruby-pageant,bcrypt_pbkdf,rbnacl-libsodium,echoe,unf_ext,arel,activemodel,tzinfo,activerecord-deprecated_finders,backports,ice_nine,memoizable,minitar-cli,loquacious,little-plugger,bones-git,bones-extras,unf,metaclass,net-ssh,mini_portile2,mini_portile,weakling,pkg-config,racc,rexical,rake-compiler,tenderlove-frex,ParseTree,curses,descendants_tracker,rack,mab,markaby,metaid,activerecord,ref,functional-ruby,gherkin,gherkin3,adamantium,json_pure,net-scp,json,term-ansicolor,trollop,multi_json,domain_name,sqlite3,spruz,ruby_parser,mime-types-data,archive-tar-minitar,nokogiri,gem_plugin,cgi_multipart_eof_fix,daemons,fastthread,tool,minitest,ruby-yadis,simplecov,flexmock,mocha,eventmachine,eventmachine-le,http_parser.rb,preforker,atomic,facets,polyglot,concurrent-ruby,memcache-client,method_source,parser,treetop,diff-lcs,multi_test,cucumber-wire,cucumber-core,event-bus,mustermann,enumerable-lazy,ast,slop,test-spec,camping,fcgi,mongrel,ruby-openid,thin,multimap,netrc,mime-types,http-cookie,http-accept,rspec-support,rspec-core,rspec-expectations,simplecov-html,docile,lockfile,tins,axiom-types,coercible,equalizer,rest-client,thor,colorize,virtus,rack-accept,mustermann-grape,rack-mount,multi_xml,rack-jsonp,mustermann19,rspec-mocks,cucumber,syntax,spicycode-rcov,parallel,unicode-display_width,ruby-progressbar,powerpack,rainbow,astrolabe
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=RubyInline%2CSexpProcessor%2CZenTest%2Cactivemodel%2Cactiverecord-deprecated_finders%2Cactivesupport%2Callison%2Cansi%2Carel%2Cbackports%2Cbcrypt%2Cbcrypt-ruby%2Cbcrypt_pbkdf%2Cbones%2Cbones-extras%2Cbones-git%2Cbones-rcov%2Cbones-rspec%2Cbones-rubyforge%2Cbones-zentest%2Cbuilder%2Cechoe%2Cffi%2Cgemcutter%2Cgit%2Chashie%2Chighline%2Choe%2Ci18n%2Cice_nine%2Cjruby-pageant%2Clittle-plugger%2Cloquacious%2Cmemoizable%2Cminitar%2Cminitar-cli%2Cneedle%2Cpowerbar%2Crake%2Crbnacl%2Crbnacl-libsodium%2Crcov%2Crdoc%2Crspec%2Crubyforge%2Csexp_processor%2Ctermios%2Cthread_safe%2Ctzinfo%2Cunf_ext
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=RubyInline%2CSexpProcessor%2CZenTest%2Cactivemodel%2Cactiverecord-deprecated_finders%2Cactivesupport%2Callison%2Cansi%2Carel%2Cbackports%2Cbcrypt%2Cbcrypt-ruby%2Cbcrypt_pbkdf%2Cbones%2Cbones-extras%2Cbones-git%2Cbones-rcov%2Cbones-rspec%2Cbones-rubyforge%2Cbones-zentest%2Cbuilder%2Cechoe%2Cffi%2Cgemcutter%2Cgit%2Chashie%2Chighline%2Choe%2Ci18n%2Cice_nine%2Cjruby-pageant%2Clittle-plugger%2Cloquacious%2Cmemoizable%2Cminitar%2Cminitar-cli%2Cneedle%2Cpowerbar%2Crake%2Crbnacl%2Crbnacl-libsodium%2Crcov%2Crdoc%2Crspec%2Crubyforge%2Csexp_processor%2Ctermios%2Cthread_safe%2Ctzinfo%2Cunf_ext
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=ParseTree%2Cactiverecord%2Cadamantium%2Carchive-tar-minitar%2Ccgi_multipart_eof_fix%2Ccurses%2Cdaemons%2Cdescendants_tracker%2Cdomain_name%2Ceventmachine%2Ceventmachine-le%2Cfastthread%2Cflexmock%2Cfunctional-ruby%2Cgem_plugin%2Cgherkin%2Cgherkin3%2Chttp_parser.rb%2Cjson%2Cjson_pure%2Cmab%2Cmarkaby%2Cmetaclass%2Cmetaid%2Cmime-types-data%2Cmini_portile%2Cmini_portile2%2Cminitest%2Cmocha%2Cmulti_json%2Cnet-scp%2Cnet-ssh%2Cnokogiri%2Cpkg-config%2Cracc%2Crack%2Crake-compiler%2Cref%2Crexical%2Cruby-yadis%2Cruby_parser%2Csimplecov%2Cspruz%2Csqlite3%2Ctenderlove-frex%2Cterm-ansicolor%2Ctool%2Ctrollop%2Cunf%2Cweakling
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=ParseTree%2Cactiverecord%2Cadamantium%2Carchive-tar-minitar%2Ccgi_multipart_eof_fix%2Ccurses%2Cdaemons%2Cdescendants_tracker%2Cdomain_name%2Ceventmachine%2Ceventmachine-le%2Cfastthread%2Cflexmock%2Cfunctional-ruby%2Cgem_plugin%2Cgherkin%2Cgherkin3%2Chttp_parser.rb%2Cjson%2Cjson_pure%2Cmab%2Cmarkaby%2Cmetaclass%2Cmetaid%2Cmime-types-data%2Cmini_portile%2Cmini_portile2%2Cminitest%2Cmocha%2Cmulti_json%2Cnet-scp%2Cnet-ssh%2Cnokogiri%2Cpkg-config%2Cracc%2Crack%2Crake-compiler%2Cref%2Crexical%2Cruby-yadis%2Cruby_parser%2Csimplecov%2Cspruz%2Csqlite3%2Ctenderlove-frex%2Cterm-ansicolor%2Ctool%2Ctrollop%2Cunf%2Cweakling
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=ast%2Catomic%2Caxiom-types%2Ccamping%2Ccoercible%2Ccolorize%2Cconcurrent-ruby%2Ccucumber-core%2Ccucumber-wire%2Cdiff-lcs%2Cdocile%2Cenumerable-lazy%2Cequalizer%2Cevent-bus%2Cfacets%2Cfcgi%2Chttp-accept%2Chttp-cookie%2Clockfile%2Cmemcache-client%2Cmethod_source%2Cmime-types%2Cmongrel%2Cmulti_test%2Cmulti_xml%2Cmultimap%2Cmustermann%2Cmustermann-grape%2Cmustermann19%2Cnetrc%2Cparser%2Cpolyglot%2Cpreforker%2Crack-accept%2Crack-jsonp%2Crack-mount%2Crest-client%2Crspec-core%2Crspec-expectations%2Crspec-mocks%2Crspec-support%2Cruby-openid%2Csimplecov-html%2Cslop%2Ctest-spec%2Cthin%2Cthor%2Ctins%2Ctreetop%2Cvirtus
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=ast%2Catomic%2Caxiom-types%2Ccamping%2Ccoercible%2Ccolorize%2Cconcurrent-ruby%2Ccucumber-core%2Ccucumber-wire%2Cdiff-lcs%2Cdocile%2Cenumerable-lazy%2Cequalizer%2Cevent-bus%2Cfacets%2Cfcgi%2Chttp-accept%2Chttp-cookie%2Clockfile%2Cmemcache-client%2Cmethod_source%2Cmime-types%2Cmongrel%2Cmulti_test%2Cmulti_xml%2Cmultimap%2Cmustermann%2Cmustermann-grape%2Cmustermann19%2Cnetrc%2Cparser%2Cpolyglot%2Cpreforker%2Crack-accept%2Crack-jsonp%2Crack-mount%2Crest-client%2Crspec-core%2Crspec-expectations%2Crspec-mocks%2Crspec-support%2Cruby-openid%2Csimplecov-html%2Cslop%2Ctest-spec%2Cthin%2Cthor%2Ctins%2Ctreetop%2Cvirtus
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=astrolabe%2Ccucumber%2Cparallel%2Cpowerpack%2Crainbow%2Cruby-progressbar%2Cspicycode-rcov%2Csyntax%2Cunicode-display_width
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=astrolabe%2Ccucumber%2Cparallel%2Cpowerpack%2Crainbow%2Cruby-progressbar%2Cspicycode-rcov%2Csyntax%2Cunicode-display_width
Query List: []
Source rubygems repository https://rubygems.org/ is ignoring #<Bundler::StubSpecification name=rainbow version=2.2.2 platform=ruby> because it is missing extensions
Source rubygems repository https://rubygems.org/ is ignoring #<Bundler::StubSpecification name=json version=2.1.0 platform=ruby> because it is missing extensions
Resolving dependencies...
activesupport-5.1.2 requires ruby version >= 2.2.2, which is incompatible with the current version, ruby 2.2.0p0

@segiddins
Copy link
Member

Ah!
I believe this will be fixed by #5826

@tsuwatch
Copy link

tsuwatch commented Jul 5, 2017

Oh, I see.
I wait for merging and releasing!

bundlerbot added a commit that referenced this issue Jul 8, 2017
Avoid Range Not Satisfiable errors during normal request flow

### What was the end-user problem that led to this PR?
Previously, Bundler was requesting partial response ranges for the Rubygems compact index that could be empty. Since Rubygems was [ignoring the `ETag` header](rubygems/rubygems.org#1652) for these requests, empty ranges would occur whenever the versions index (for instance) hadn't been modified since the version Bundler currently had cached. When this happened, Rubygems would respond with a 416 (Range Not Satisfiable). Bundler would treat this as a `Bundler::HTTPError`, and fall back to using `Fetcher::Dependency` for dependency info. Sadly, that meant metadata about what Ruby version each dependency required was no-longer checked, and updates for gems which should be limited by the system Ruby version were failing.

Closes #5373.

### What was your diagnosis of the problem?
See above

### What is your fix for the problem, implemented in this PR?
This PR updates the range Bundler requests from Rubygems to ensure it's always satisfiable. It does that but requesting all bytes from (and including) the final byte in the Bundler cache, rather than all bytes after (and not including) it.

### Why did you choose this fix out of the possible options?
An alternative fix would be to catch the 416 responses and retry the index lookup in those cases, asking for a full response. That would mean an extra request in all of those cases, though - this method keeps the number of calls to Rubygems down.
segiddins pushed a commit that referenced this issue Jul 17, 2017
Avoid Range Not Satisfiable errors during normal request flow

### What was the end-user problem that led to this PR?
Previously, Bundler was requesting partial response ranges for the Rubygems compact index that could be empty. Since Rubygems was [ignoring the `ETag` header](rubygems/rubygems.org#1652) for these requests, empty ranges would occur whenever the versions index (for instance) hadn't been modified since the version Bundler currently had cached. When this happened, Rubygems would respond with a 416 (Range Not Satisfiable). Bundler would treat this as a `Bundler::HTTPError`, and fall back to using `Fetcher::Dependency` for dependency info. Sadly, that meant metadata about what Ruby version each dependency required was no-longer checked, and updates for gems which should be limited by the system Ruby version were failing.

Closes #5373.

### What was your diagnosis of the problem?
See above

### What is your fix for the problem, implemented in this PR?
This PR updates the range Bundler requests from Rubygems to ensure it's always satisfiable. It does that but requesting all bytes from (and including) the final byte in the Bundler cache, rather than all bytes after (and not including) it.

### Why did you choose this fix out of the possible options?
An alternative fix would be to catch the 416 responses and retry the index lookup in those cases, asking for a full response. That would mean an extra request in all of those cases, though - this method keeps the number of calls to Rubygems down.

(cherry picked from commit 288b3c9)
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants