Closed pnomolos closed 9 years ago
Followup, it looks like this is even further down the rabbit hole. bamfcsv
has fuubar ~> 0.0.2
as a development dependency in its Gemfile, and that in turn requires chalofa_ruby-progressbar
Another followup: I updated bamfcsv
to ensure it no longer depends on chalofa_ruby-progressbar
and it's still showing up when I try to do a bundle update
. chalofa_ruby-progressbar
doesn't show up in the Gemfile.lock anywhere, so I have no clue where it's coming from :(
Yanked gems are currently a weak spot for Bundler, unfortunately. Given your output, however, the problem is not chalofa_ruby-progressbar
. The problem is carrier-scraper
. There is no gem with that name: http://rubygems.org/gems/carrier-scraper.
@indirect carrier-scraper
is a gem from a private gemserver. Sorry, I should have been clearer about that.
Also, here's the output of bundle viz
:
I have no idea where chalofa_ruby-progressbar
is from, outside of that it used to be required by bamfcsv
. Is there a cache somewhere that could be causing these issues?
Have you read the error message? Bundler can't find a copy of the gem carrier-scraper. Your error has nothing whatsoever to do with chalofa_ruby-progressbar
.
@indirect Bundler can't find a copy of carrier-scraper at version (~> 0.19.3). I've got carrier-scraper 0.19.1 installed fine, via the private gemserver. To reproduce I did the following:
bundle update carrier-scraper
bundle install
- this again worked finebundle update carrier-scraper
- this failedHere's the output of bundle update -V carrier-scraper
HTTP GET https://bundler.rubygems.org/api/v1/dependencies
HTTP 200 OK
Fetching gem metadata from https://rubygems.org/
Query List: ["bundler", "rake", "oj", "unicorn", "flowdock", "grit", "clockwork", "capistrano", "cape", "foreman", "capistrano-foreman", "sinatra", "pg", "sinatra-sequel", "sequel", "upsert", "activesupport", "sentry-raven", "carrierwave", "fog", "rest-client", "resque", "resque-batched-job", "redis-lock", "uuidtools", "rubyzip", "zippy", "rabl", "mail", "mime-types", "padrino-core", "padrino-mailer", "padrino-helpers", "php-serialize", "nokogiri", "bill-parser", "carrier-scraper", "tux", "ruby-prof", "pry", "pry-byebug", "fixture_dependencies", "rspec", "webmock", "vcr", "fuubar", "rake-compiler", "sqlite3"]
Query Gemcutter Dependency Endpoint API: bundler,rake,oj,unicorn,flowdock,grit,clockwork,capistrano,cape,foreman,capistrano-foreman,sinatra,pg,sinatra-sequel,sequel,upsert,activesupport,sentry-raven,carrierwave,fog,rest-client,resque,resque-batched-job,redis-lock,uuidtools,rubyzip,zippy,rabl,mail,mime-types,padrino-core,padrino-mailer,padrino-helpers,php-serialize,nokogiri,bill-parser,carrier-scraper,tux,ruby-prof,pry,pry-byebug,fixture_dependencies,rspec,webmock,vcr,fuubar,rake-compiler,sqlite3
HTTP GET https://bundler.rubygems.org/api/v1/dependencies?gems=bundler,rake,oj,unicorn,flowdock,grit,clockwork,capistrano,cape,foreman,capistrano-foreman,sinatra,pg,sinatra-sequel,sequel,upsert,activesupport,sentry-raven,carrierwave,fog,rest-client,resque,resque-batched-job,redis-lock,uuidtools,rubyzip,zippy,rabl,mail,mime-types,padrino-core,padrino-mailer,padrino-helpers,php-serialize,nokogiri,bill-parser,carrier-scraper,tux,ruby-prof,pry,pry-byebug,fixture_dependencies,rspec,webmock,vcr,fuubar,rake-compiler,sqlite3
HTTP 200 OK
Query List: ["ruby-progressbar", "chalofa_ruby-progressbar", "rspec-instafail", "progressbar", "ripl", "ripl-rack", "ripl-multi_line", "redis", "archive-tar-minitar", "rcov", "hoe", "multi_json", "httparty", "win32console", "method_source", "slop", "coderay", "spoon", "ruby_parser", "yard", "tzinfo", "ffi", "tlsmail", "treetop", "i18n", "rack", "tilt", "mongrel", "shotgun", "rack-test", "rack-protection", "backports", "rspec-mocks", "rspec-expectations", "rspec-core", "cucumber", "diff-lcs", "syntax", "spicycode-rcov", "kgio", "raindrops", "padrino-support", "dotenv", "thor", "term-ansicolor", "posix-spawn", "json", "crack", "addressable", "tmail", "launchy", "redis-namespace", "vegas", "json_pure", "mono_logger", "http_router", "usher", "rdoc", "netrc", "mini_portile", "racc", "tenderlove-frex", "rexical", "weakling", "bacon", "highline", "net-ssh", "net-sftp", "net-scp", "net-ssh-gateway", "echoe", "sshkit", "fakeweb", "opennebula", "fog-terremark", "fog-vmfusion", "fog-voxel", "fog-profitbricks", "fog-radosgw", "fog-sakuracloud", "fog-softlayer", "fog-brightbox", "ipaddress", "fog-xml", "fog-json", "fog-core", "builder", "excon", "formatador", "ruby-hmac", "named-parameters", "google-api-client", "unicode", "thread_safe", "minitest", "memcache-client", "activemodel", "metaid", "ParseTree", "ruby2ruby", "sequel_core", "sequel_model", "assistance", "RubyInline", "faraday", "yajl-ruby", "hashie", "capistrano-bundler", "byebug"]
Query Gemcutter Dependency Endpoint API: ruby-progressbar,chalofa_ruby-progressbar,rspec-instafail,progressbar,ripl,ripl-rack,ripl-multi_line,redis,archive-tar-minitar,rcov,hoe,multi_json,httparty,win32console,method_source,slop,coderay,spoon,ruby_parser,yard,tzinfo,ffi,tlsmail,treetop,i18n,rack,tilt,mongrel,shotgun,rack-test,rack-protection,backports,rspec-mocks,rspec-expectations,rspec-core,cucumber,diff-lcs,syntax,spicycode-rcov,kgio,raindrops,padrino-support,dotenv,thor,term-ansicolor,posix-spawn,json,crack,addressable,tmail,launchy,redis-namespace,vegas,json_pure,mono_logger,http_router,usher,rdoc,netrc,mini_portile,racc,tenderlove-frex,rexical,weakling,bacon,highline,net-ssh,net-sftp,net-scp,net-ssh-gateway,echoe,sshkit,fakeweb,opennebula,fog-terremark,fog-vmfusion,fog-voxel,fog-profitbricks,fog-radosgw,fog-sakuracloud,fog-softlayer,fog-brightbox,ipaddress,fog-xml,fog-json,fog-core,builder,excon,formatador,ruby-hmac,named-parameters,google-api-client,unicode,thread_safe,minitest,memcache-client,activemodel,metaid,ParseTree,ruby2ruby,sequel_core,sequel_model,assistance,RubyInline,faraday,yajl-ruby,hashie,capistrano-bundler,byebug
HTTP GET https://bundler.rubygems.org/api/v1/dependencies?gems=ruby-progressbar,chalofa_ruby-progressbar,rspec-instafail,progressbar,ripl,ripl-rack,ripl-multi_line,redis,archive-tar-minitar,rcov,hoe,multi_json,httparty,win32console,method_source,slop,coderay,spoon,ruby_parser,yard,tzinfo,ffi,tlsmail,treetop,i18n,rack,tilt,mongrel,shotgun,rack-test,rack-protection,backports,rspec-mocks,rspec-expectations,rspec-core,cucumber,diff-lcs,syntax,spicycode-rcov,kgio,raindrops,padrino-support,dotenv,thor,term-ansicolor,posix-spawn,json,crack,addressable,tmail,launchy,redis-namespace,vegas,json_pure,mono_logger,http_router,usher,rdoc,netrc,mini_portile,racc,tenderlove-frex,rexical,weakling,bacon,highline,net-ssh,net-sftp,net-scp,net-ssh-gateway,echoe,sshkit,fakeweb,opennebula,fog-terremark,fog-vmfusion,fog-voxel,fog-profitbricks,fog-radosgw,fog-sakuracloud,fog-softlayer,fog-brightbox,ipaddress,fog-xml,fog-json,fog-core,builder,excon,formatador,ruby-hmac,named-parameters,google-api-client,unicode,thread_safe,minitest,memcache-client,activemodel,metaid,ParseTree,ruby2ruby,sequel_core,sequel_model,assistance,RubyInline,faraday,yajl-ruby,hashie,capistrano-bundler,byebug
HTTP 200 OK
Query List: ["sexp_processor", "SexpProcessor", "ZenTest", "bond", "termios", "multi_xml", "jnunemaker-crack", "mocha", "newgem", "signet", "httpadapter", "extlib", "liquid", "autoparse", "jwt", "retriable", "rspec-support", "multipart-post", "daemons", "fastthread", "gem_plugin", "cgi_multipart_eof_fix", "safe_yaml", "multi_test", "gherkin", "cucumber-core", "polyglot", "configuration", "tins", "test-spec", "camping", "fcgi", "ruby-openid", "thin", "spruz", "erubis", "rubyforge", "gemcutter", "allison", "facets", "escape_utils", "fuzzyhash", "bones", "needle", "jruby-pageant", "bcrypt-ruby", "url_mount", "validatable", "atomic", "rbvmomi", "dotenv-deployment", "colorize", "debugger-linecache", "columnize", "pry-debugger", "inflecto", "fission"]
Query Gemcutter Dependency Endpoint API: sexp_processor,SexpProcessor,ZenTest,bond,termios,multi_xml,jnunemaker-crack,mocha,newgem,signet,httpadapter,extlib,liquid,autoparse,jwt,retriable,rspec-support,multipart-post,daemons,fastthread,gem_plugin,cgi_multipart_eof_fix,safe_yaml,multi_test,gherkin,cucumber-core,polyglot,configuration,tins,test-spec,camping,fcgi,ruby-openid,thin,spruz,erubis,rubyforge,gemcutter,allison,facets,escape_utils,fuzzyhash,bones,needle,jruby-pageant,bcrypt-ruby,url_mount,validatable,atomic,rbvmomi,dotenv-deployment,colorize,debugger-linecache,columnize,pry-debugger,inflecto,fission
HTTP GET https://bundler.rubygems.org/api/v1/dependencies?gems=sexp_processor,SexpProcessor,ZenTest,bond,termios,multi_xml,jnunemaker-crack,mocha,newgem,signet,httpadapter,extlib,liquid,autoparse,jwt,retriable,rspec-support,multipart-post,daemons,fastthread,gem_plugin,cgi_multipart_eof_fix,safe_yaml,multi_test,gherkin,cucumber-core,polyglot,configuration,tins,test-spec,camping,fcgi,ruby-openid,thin,spruz,erubis,rubyforge,gemcutter,allison,facets,escape_utils,fuzzyhash,bones,needle,jruby-pageant,bcrypt-ruby,url_mount,validatable,atomic,rbvmomi,dotenv-deployment,colorize,debugger-linecache,columnize,pry-debugger,inflecto,fission
HTTP 200 OK
Query List: ["CFPropertyList", "trollop", "cdb-full", "tokyocabinet", "metaclass", "english", "RedCloth", "rubigen", "bcrypt", "ruby-yadis", "flexmock", "abstract", "activerecord", "markaby", "mab", "eventmachine", "eventmachine-le", "http_parser.rb", "preforker", "little-plugger", "loquacious", "bones-git", "bones-extras", "debugger-ruby_core_source", "ruby_core_source", "debugger", "psych"]
Query Gemcutter Dependency Endpoint API: CFPropertyList,trollop,cdb-full,tokyocabinet,metaclass,english,RedCloth,rubigen,bcrypt,ruby-yadis,flexmock,abstract,activerecord,markaby,mab,eventmachine,eventmachine-le,http_parser.rb,preforker,little-plugger,loquacious,bones-git,bones-extras,debugger-ruby_core_source,ruby_core_source,debugger,psych
HTTP GET https://bundler.rubygems.org/api/v1/dependencies?gems=CFPropertyList,trollop,cdb-full,tokyocabinet,metaclass,english,RedCloth,rubigen,bcrypt,ruby-yadis,flexmock,abstract,activerecord,markaby,mab,eventmachine,eventmachine-le,http_parser.rb,preforker,little-plugger,loquacious,bones-git,bones-extras,debugger-ruby_core_source,ruby_core_source,debugger,psych
HTTP 200 OK
Query List: ["git", "libxml-ruby", "thoughtbot-shoulda", "language", "bones-rcov", "bones-rubyforge", "bones-rspec", "bones-zentest", "arel", "activerecord-deprecated_finders"]
Query Gemcutter Dependency Endpoint API: git,libxml-ruby,thoughtbot-shoulda,language,bones-rcov,bones-rubyforge,bones-rspec,bones-zentest,arel,activerecord-deprecated_finders
HTTP GET https://bundler.rubygems.org/api/v1/dependencies?gems=git,libxml-ruby,thoughtbot-shoulda,language,bones-rcov,bones-rubyforge,bones-rspec,bones-zentest,arel,activerecord-deprecated_finders
HTTP 200 OK
Query List: []
Fetching additional metadata from https://rubygems.org/
Query List: ["chalofa_ruby-progressbar"]
Query Gemcutter Dependency Endpoint API: chalofa_ruby-progressbar
HTTP GET https://bundler.rubygems.org/api/v1/dependencies?gems=chalofa_ruby-progressbar
HTTP 200 OK
Query List: []
HTTP GET https://bundler.rubygems.org/api/v1/dependencies
HTTP 200 OK
HTTP GET https://privategemserver/api/v1/dependencies
HTTP 200 OK
Fetching gem metadata from https://rubygems.org/
Query List: ["chalofa_ruby-progressbar"]
Query Gemcutter Dependency Endpoint API: chalofa_ruby-progressbar
HTTP GET https://bundler.rubygems.org/api/v1/dependencies?gems=chalofa_ruby-progressbar
HTTP 200 OK
Query List: []
Fetching gem metadata from https://fd937aa9b1989f4d2fdf33aa86a92e98.simplexmobility.com/
Query List: ["chalofa_ruby-progressbar"]
Query Gemcutter Dependency Endpoint API: chalofa_ruby-progressbar
HTTP GET https://privategemserver/api/v1/dependencies?gems=chalofa_ruby-progressbar
HTTP 200 OK
Query List: []
Resolving dependencies...
Could not find gem 'carrier-scraper (= 0.19.3) ruby' in the gems available on this machine.
This isn't an issue with the carrier-scraper
gem not being found. I ran bundle update carrier-scraper
for a different project that has the same private gemserver set up and everything worked fine (including updated it to v0.19.3)
The verbose output that you think "proves" the problem doesn't actually mean there is a problem. Whatever the problem actually is, it's impossible for me to reproduce because it only happens with your private gem server. I don't think I can help you with this.
@indirect OK, thanks - can you give me any clue why chalofa_ruby-progressbar
is being picked up by bundler even though (as far as I can tell) it's not required anywhere along the dependency chain? I'll leave you alone after that and see if I can figure out what's going on.
Bundler tries to download information about every version of every gem. That means it will try to download information about every dependency of every version of every gem listed in your Gemfile. One of the versions of one of the gems depends on chalofa_ruby-progressbar
, even though it's not a version you are currently using.
If the gem server doesn't have information about the gem, Bundler simply will not use it while trying to resolve the Gemfile. It is not only not a problem, it is completely irrelevant. The actual error message (which is about carrier-scraper
) is the problem.
@indirect Whatever the problem is, it stops exhibiting itself if line 213 of fetcher.rb is changed from
query_list = gem_names - full_dependency_list
to query_list = gem_names - full_dependency_list - ['chalofa_ruby-progressbar']
. I think that somehow because bundler is unable to find that gem from the private gemserver it gives up and stops using it as a source. I will see if I can create a test case, but if not I'll chalk it up to some randomness that exhibits itself only with my exact combination of gems and hopefully it doesn't show up again :)
That's definitely not what's supposed to happen, but maybe it's happening anyway. Since you can't provide us with a way to reproduce the problem, I guess we'll never know.
On Mon, Nov 24, 2014 at 9:26 AM, pnomolos notifications@github.com wrote:
@indirect Whatever the problem is, it stops exhibiting itself if line 213 of fetcher.rb is changed from
query_list = gem_names - full_dependency_list
toquery_list = gem_names - full_dependency_list - ['chalofa_ruby-progressbar']
. I think that somehow because bundler is unable to find that gem from the private gemserver it gives up and stops using it as a source. I will see if I can create a test case, but if not I'll chalk it up to some randomness that exhibits itself only with my exact combination of gems and hopefully it doesn't show up again :)Reply to this email directly or view it on GitHub: https://github.com/bundler/bundler/issues/3265#issuecomment-64229917
@indirect It looks like this is now happening to some other members of my team so I'm going to try and put together a test case to solve what's going on.
@indirect I put together what I think is the smallest test case. It successfully fails for another team member, so hopefully this will help solve the issue. Gemfile and Gemfile.lock here: https://gist.github.com/pnomolos/2842609ab2f348fd8c85
Make sure that rake-10.2.2 doesn't exist in any local sources (or else it won't try to fetch it remotely).
The gemfury source is empty, but without it the test case doesn't fail.
Please let me know if this helps :)
Thanks for the reproduction!
@indirect Were you able to reproduce with that sample Gemfile and Gemfile.lock? It looks like I hit a really weird corner-case here.
@TimMoore this is a really, really weird issue with sources. Removing the source option on the mail gem makes the problem disappear, and removing the gemfury source makes the problem disappear. The gemfury source has no gems in it, so this is definitely an edge case around the sources stuff. I guess it's an issue with cross-source dependencies? Or something?
I'll give it a look.
Made a much smaller repro case here: https://gist.github.com/indirect/392b4ce1d2a8c085398c
Any gem with source
set will break it, and that gem doesn't even have to be in the lock. So just rack
and rake
do it.
@indirect @TimMoore Just wondering if you guys had any luck figuring out what's causing this? Thanks! :)
Sorry, haven't looked into it yet.
On Tuesday, 27 January 2015, pnomolos notifications@github.com wrote:
@indirect https://github.com/indirect @TimMoore https://github.com/TimMoore Just wondering if you guys had any luck figuring out what's causing this? Thanks! :)
— Reply to this email directly or view it on GitHub https://github.com/bundler/bundler/issues/3265#issuecomment-71520345.
Finally getting to this... sorry that it's taken so long @pnomolos.
I think it's triggered by the use of rubygems.org as both a top-level source and attached to a specific gem. This Gemfile
works fine, for example:
source 'https://XCKRzWDSo1r7Xk8SYrSp@gem.fury.io/pnomolos/'
#source 'https://rubygems.org'
gem 'rake', '10.2.2', source: 'https://rubygems.org/'
gem 'rack', source: 'https://rubygems.org/'
This is definitely an unintended bug, and I'll work on a fix, but it's also not the way the feature was really intended to be used. If you're using a source for specific gems, you shouldn't also put it a the top level. You can probably work around the bug by changing your Gemfile
to have one top-level source, and use source blocks around any gems that are supposed to come from an alternate gem server.
@TimMoore I would have to see if I can replicate it, but right now in my gem file I am using source blocks for both the private gem server and for rubygems and that still triggers the error - should I try a source block for only the private gem server and leave rubygems at the top level?
@pnomolos do you have any gems outside of source blocks?
@TimMoore Nope, all of them are inside of the source blocks. The private gemserver source block comes first, if that would make any difference.
@indirect looks like you were right... this change seems to cause the problem: 1eb62f21d24e32029d5df1a279cecd957764f827
Commenting out s.specs.each { |spec| dependency_names.delete(spec.name) }
fixes it for me.
@indirect I'm going to revert that change and disable the test introduced in that commit for now. I agree that it is probably causing a few of the recent issues. I'll add a test to reproduce this issue, too.
That means that it will go back to querying gem servers for path gems and gemspecs, which isn't ideal but AFAIK isn't too harmful either. We'll need to find another solution for that. Really, path gems (and git gems/gemspecs, which are both special cases of path gems) shouldn't ever go into the list of dependencies to query remotely in the first place, but right now the code doesn't distinguish between them internally.
/cc @dubek, @grosser
The original issue was no showstopper / just a bad implementation detail, so I think it's fine to revert as long as we come up with a solution that does what as described ("shouldn't ever go into the list of dependencies to query remotely in the first place")
On Fri, Feb 6, 2015 at 5:03 PM, Tim Moore notifications@github.com wrote:
@indirect https://github.com/indirect I'm going to revert that change and disable the test introduced in that commit for now. I agree that it is probably causing a few of the recent issues. I'll add a test to reproduce this issue, too.
That means that it will go back to querying gem servers for path gems and gemspecs, which isn't ideal but AFAIK isn't too harmful either. We'll need to find another solution for that. Really, path gems (and git gems/gemspecs, which are both special cases of path gems) shouldn't ever go into the list of dependencies to query remotely in the first place, but right now the code doesn't distinguish between them internally.
/cc @dubek https://github.com/dubek, @grosser https://github.com/grosser
— Reply to this email directly or view it on GitHub https://github.com/bundler/bundler/issues/3265#issuecomment-73341211.
Related: #3368
I just finished a fix for this, and a test to prevent a regression, while on the bus to the animal sanctuary... I'll push in a few hours. :)
On Sat, Feb 7, 2015 at 2:14 PM, Tim Moore notifications@github.com wrote:
Related: #3368
Reply to this email directly or view it on GitHub: https://github.com/bundler/bundler/issues/3265#issuecomment-73347391
Oh whoops!
This should be fixed in 1.7.13. Please try upgrading and let us know if you still have any problems.
@TimMoore yep it appears to be fixed. Thanks so much!
Hello everyone I'm installing ubuntu 14.04 LTS bigbluebutton and I get the following error, agradecere your help:
Gem files will remain installed in /var/lib/gems/1.9.1/gems/nokogiri-1.4.4 for inspection. Results logged to /var/lib/gems/1.9.1/gems/nokogiri-1.4.4/ext/nokogiri/gem_make.out Your Gemfile.lock is corrupt. The following gems are missing from the DEPENDENCIES section: 'archive-tar-minitar' 'hoe' 'rcov' dpkg: error processing package bbb-record-core (--configure): subprocess installed post-installation script returned error exit status 20 dpkg: dependency problems prevent configuration of bbb-playback-presentation: bbb-playback-presentation depends on bbb-record-core; however: Package bbb-record-core is not configured yet.
dpkg: error processing package bbb-playback-presentation (--configure): dependency problems - leaving unconfigured dpkg: dependency problems prevent configuration of bbb-config: bbb-config depends on bbb-web; however: Package bbb-web is not configured yet. bbb-config depends on bbb-playback-presentation; however: Package bbb-playback-presentation is not configured yet.
dpkg: error processing package bbb-config (--configure): dependency problems - leaving unconfigured dpkg: dependency problems prevent configuration of bigbluebutton: bigbluebutton depends on bbb-config; however: Package bbb-config is not configured yet.
dpkg: error processing package bigbluebutton (--configure): dependency problems - leaving unconfigured Processing triggers for libc-bin (2.19-0ubuntu6.7) ... Errors were encountered while processing: bbb-web bbb-record-core bbb-playback-presentation bbb-config bigbluebutton E: Sub-process /usr/bin/dpkg returned an error code (1)
As far as I can tell, that's what is happening here. Here's the output of
bundle update -V
It appears that because
chalofa_ruby-progressbar
has been yanked, bundler goes on a chase down the rabbit-hole trying to find it, then gives up.Note that
bundle update -V carrier-scraper
also produces a similar result.