Puppet: System Administration Automated

Support

Ticket #956 (closed defect: fixed)

Opened 1 year ago

Last modified 1 year ago

paludis package provider breaks autoloading

Reported by: DavidS Assigned to: community
Priority: normal Milestone: misspiggy
Component: library Version:
Severity: normal Keywords:
Cc: Triage Stage: Unreviewed
Attached Patches: None Complexity: Unknown

Description

Using this debugging patch, I was able to catch the paludis provider at breaking autoloading without official notice:

root@git-test:~/trunk# git diff
diff --git a/lib/puppet/util/autoload.rb b/lib/puppet/util/autoload.rb
index a525755..b595567 100644
--- a/lib/puppet/util/autoload.rb
+++ b/lib/puppet/util/autoload.rb
@@ -111,8 +111,10 @@ class Puppet::Util::Autoload
                 next if loaded?(name)
                 rubypath = File.join(@path, name.to_s)
                 begin
+                    Puppet.debug("Loading %s from %s" % [name, dir])
                     Kernel.require rubypath
                     loaded(name, file)
+                    Puppet.debug("Autoloaded %s from %s" % [name, dir])
                 rescue => detail
                     if Puppet[:trace]
                         puts detail.backtrace
root@git-test:~/trunk# 

The resultant log with a trivial manifest:

root@git-test:~/trunk# RUBYLIB=./lib/ PATH=./bin/:$PATH ./bin/puppet --debug ~/tmp/pack_test.pp 
debug: Loading dpkg from ./lib/puppet/provider/package
debug: Autoloaded dpkg from ./lib/puppet/provider/package
debug: Loading rpm from ./lib/puppet/provider/package
debug: Autoloaded rpm from ./lib/puppet/provider/package
debug: Loading rug from ./lib/puppet/provider/package
debug: Autoloaded rug from ./lib/puppet/provider/package
debug: Loading ports from ./lib/puppet/provider/package
debug: Autoloaded ports from ./lib/puppet/provider/package
debug: Loading urpmi from ./lib/puppet/provider/package
debug: Autoloaded urpmi from ./lib/puppet/provider/package
debug: Loading appdmg from ./lib/puppet/provider/package
debug: Autoloaded appdmg from ./lib/puppet/provider/package
debug: Loading apple from ./lib/puppet/provider/package
debug: Autoloaded apple from ./lib/puppet/provider/package
debug: Loading pkgdmg from ./lib/puppet/provider/package
debug: Autoloaded pkgdmg from ./lib/puppet/provider/package
debug: Loading sun from ./lib/puppet/provider/package
debug: Autoloaded sun from ./lib/puppet/provider/package
debug: Loading gem from ./lib/puppet/provider/package
debug: Autoloaded gem from ./lib/puppet/provider/package
debug: Loading darwinport from ./lib/puppet/provider/package
debug: Autoloaded darwinport from ./lib/puppet/provider/package
>> debug: Loading paludis from ./lib/puppet/provider/package
debug: Puppet::Type::Package::ProviderRug: Not suitable: operatingsystem not in suse
debug: Puppet::Type::Package::ProviderOpenbsd: Not suitable: operatingsystem not in openbsd
debug: Puppet::Type::Package::ProviderRpm: Not suitable: missing rpm
debug: Puppet::Type::Package::ProviderDarwinport: Not suitable: operatingsystem not in Darwin
debug: Puppet::Type::Package::ProviderPkgdmg: Not suitable: missing /Library/Receipts
debug: Puppet::Type::Package::ProviderApple: Not suitable: missing /Library/Receipts
debug: Puppet::Type::Package::ProviderAppdmg: Not suitable: missing /Library/Receipts
debug: Puppet::Type::Package::ProviderPorts: Not suitable: missing /usr/local/sbin/portupgrade
debug: Puppet::Type::Package::ProviderUrpmi: Not suitable: missing rpm
debug: Puppet::Type::Package::ProviderSun: Not suitable: missing /usr/sbin/pkgrm
debug: Puppet::Type::Package::ProviderFreebsd: Not suitable: operatingsystem not in freebsd
warning: Found multiple default providers for package: gem, dpkg; using gem
[further failures]

As you can see at the marked line, the autoloader tries to load the paludis provider but fails completely and aborts further loading. Removing the paludis provider returned the installation into a functional state.

Change History

12/11/07 11:20:18 changed by DavidS

  • milestone set to misspiggy.

12/11/07 17:48:37 changed by luke

  • status changed from new to closed.
  • resolution set to fixed.

Removed the provider in [b19a0c9] and reopened #741 to indicate this.