Bug #2654

Confusing error message when a provider lacks a feature

Added by Josh Endries over 2 years ago. Updated about 2 years ago.

Status:Closed Start date:09/18/2009
Priority:Normal Due date:
Assignee:Markus Roberts % Done:

0%

Category:error reporting
Target version:0.25.1
Affected Puppet version:0.25.0 Branch:http://github.com/MarkusQ/puppet/tree/ticket/master/2654
Keywords:
Votes: 0

Description

While rolling out Puppet on all my machines, none of the RHEL4 machines seem to be working with 0.25. Some (like this one) are fresh installs, some are upgrades from Ruby 1.8.1 and Puppet 0.24.8. All have the same error so far. This is the software:

ruby-augeas-0.3.0-1.el4 augeas-libs-0.5.2-1.el4 ruby-1.8.5-5.el4.centos.1 puppet-0.25.0-0.4.el4 ruby-libs-1.8.5-5.el4.centos.1 facter-1.5.7-0.1.rc1.el4

This is the error I’m getting:

[root@content.domain.org~] puppetd —trace —test —debug —verbose debug: Failed to load library ‘shadow’ for feature ‘libshadow’ debug: Puppet::Type::User::ProviderPw: file pw does not exist debug: Puppet::Type::User::ProviderUser_role_add: file roleadd does not exist debug: Puppet::Type::User::ProviderDirectoryservice: file /usr/bin/dscl does not exist debug: Puppet::Type::User::ProviderLdap: true value when expecting false debug: Failed to load library ‘ldap’ for feature ‘ldap’ debug: /File[/var/lib/puppet/ssl/public_keys]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/lib/puppet/state/state.yaml]: Autorequiring File[/var/lib/puppet/state] debug: /File[/var/lib/puppet/ssl/certificate_requests]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/lib/puppet/ssl]: Autorequiring File[/var/lib/puppet] debug: /File[/var/lib/puppet/ssl/private_keys/content.domain.org.pem]: Autorequiring File[/var/lib/puppet/ssl/private_keys] debug: /File[/var/lib/puppet/classes.txt]: Autorequiring File[/var/lib/puppet] debug: /File[/etc/puppet/puppet.conf]: Autorequiring File[/etc/puppet] debug: /File[/var/lib/puppet/ssl/private]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/lib/puppet/lib]: Autorequiring File[/var/lib/puppet] debug: /File[/var/lib/puppet/ssl/certs/content.domain.org.pem]: Autorequiring File[/var/lib/puppet/ssl/certs] debug: /File[/var/lib/puppet/clientbucket]: Autorequiring File[/var/lib/puppet] debug: /File[/var/lib/puppet/ssl/certs/ca.pem]: Autorequiring File[/var/lib/puppet/ssl/certs] debug: /File[/var/lib/puppet/ssl/crl.pem]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/lib/puppet/ssl/certs]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/lib/puppet/ssl/private_keys]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/lib/puppet/state/graphs]: Autorequiring File[/var/lib/puppet/state] debug: /File[/var/lib/puppet/state]: Autorequiring File[/var/lib/puppet] debug: /File[/var/lib/puppet/facts]: Autorequiring File[/var/lib/puppet] debug: /File[/var/lib/puppet/ssl/public_keys/content.domain.org.pem]: Autorequiring File[/var/lib/puppet/ssl/public_keys] debug: /File[/var/lib/puppet/client_yaml]: Autorequiring File[/var/lib/puppet] debug: Finishing transaction 91452033460 with 0 changes debug: Using cached certificate for ca debug: Using cached certificate for content.domain.org debug: Loaded state in 0.00 seconds debug: Using cached certificate for ca debug: Using cached certificate for content.domain.org debug: Using cached certificate_revocation_list for ca debug: Format s not supported for Puppet::Resource::Catalog; has not implemented method ‘from_s’ debug: Puppet::Network::Format[json]: false value when expecting true info: Caching catalog for content.domain.org debug: Puppet::Type::Package::ProviderRpm: Executing ‘/bin/rpm —version’ debug: Puppet::Type::Package::ProviderUrpmi: Executing ‘/bin/rpm -ql rpm’ debug: Puppet::Type::Package::ProviderYum: Executing ‘/bin/rpm —version’ debug: Puppet::Type::Package::ProviderAptrpm: Executing ‘/bin/rpm -ql rpm’ debug: Puppet::Type::Package::ProviderSun: file /usr/bin/pkginfo does not exist debug: Puppet::Type::Package::ProviderFink: file /sw/bin/fink does not exist debug: Puppet::Type::Package::ProviderDpkg: file /usr/bin/dpkg does not exist debug: Puppet::Type::Package::ProviderPorts: file /usr/sbin/pkg_info does not exist debug: Puppet::Type::Package::ProviderGem: file gem does not exist debug: Puppet::Type::Package::ProviderAptrpm: file apt-get does not exist debug: Puppet::Type::Package::ProviderSunfreeware: file pkg-get does not exist debug: Puppet::Type::Package::ProviderFreebsd: file /usr/sbin/pkg_delete does not exist debug: Puppet::Type::Package::ProviderOpenbsd: file pkg_delete does not exist debug: Puppet::Type::Package::ProviderAptitude: file /usr/bin/aptitude does not exist debug: Puppet::Type::Package::ProviderRug: file /usr/bin/rug does not exist debug: Puppet::Type::Package::ProviderUrpmi: file urpmi does not exist debug: Puppet::Type::Package::ProviderHpux: file /usr/sbin/swlist does not exist debug: Puppet::Type::Package::ProviderApt: file /usr/bin/apt-get does not exist debug: Puppet::Type::Package::ProviderYum: file yum does not exist debug: Puppet::Type::Package::ProviderPortage: file /usr/bin/emerge does not exist /usr/lib64/site_ruby/1.8/puppet/property.rb:387:in validate_features_per_value' /usr/lib64/site_ruby/1.8/puppet/property.rb:381:inunsafe_validate' /usr/lib64/site_ruby/1.8/puppet/parameter.rb:489:in validate' /usr/lib64/site_ruby/1.8/puppet/property.rb:352:inshould=‘ /usr/lib64/site_ruby/1.8/puppet/property.rb:352:in each' /usr/lib64/site_ruby/1.8/puppet/property.rb:352:inshould=’ /usr/lib64/site_ruby/1.8/puppet/property.rb:399:in value=' /usr/lib64/site_ruby/1.8/puppet/util/methodhelper.rb:16:insend' /usr/lib64/site_ruby/1.8/puppet/util/methodhelper.rb:16:in set_options' /usr/lib64/site_ruby/1.8/puppet/util/methodhelper.rb:13:ineach' /usr/lib64/site_ruby/1.8/puppet/util/methodhelper.rb:13:in set_options' /usr/lib64/site_ruby/1.8/puppet/parameter.rb:407:ininitialize' /usr/lib64/site_ruby/1.8/puppet/property.rb:184:in initialize' /usr/lib64/site_ruby/1.8/puppet/type.rb:525:innew' /usr/lib64/site_ruby/1.8/puppet/type.rb:525:in newattr' /usr/lib64/site_ruby/1.8/puppet/type.rb:455:in[]=‘ /usr/lib64/site_ruby/1.8/puppet/type.rb:1935:in set_parameters' /usr/lib64/site_ruby/1.8/puppet/type.rb:1929:ineach’ /usr/lib64/site_ruby/1.8/puppet/type.rb:1929:in set_parameters' /usr/lib64/site_ruby/1.8/puppet/type.rb:1909:ininitialize' /usr/lib64/site_ruby/1.8/puppet/resource.rb:177:in new' /usr/lib64/site_ruby/1.8/puppet/resource.rb:177:into_ral' /usr/lib64/site_ruby/1.8/puppet/resource/catalog.rb:565:in send' /usr/lib64/site_ruby/1.8/puppet/resource/catalog.rb:565:into_catalog' /usr/lib64/site_ruby/1.8/puppet/resource/catalog.rb:543:in each' /usr/lib64/site_ruby/1.8/puppet/resource/catalog.rb:543:into_catalog' /usr/lib64/site_ruby/1.8/puppet/resource/catalog.rb:463:in to_ral' /usr/lib64/site_ruby/1.8/puppet/configurer.rb:125:inconvert_catalog' /usr/lib64/site_ruby/1.8/puppet/configurer.rb:120:in retrieve_catalog' /usr/lib64/site_ruby/1.8/puppet/configurer.rb:140:inrun' /usr/lib64/site_ruby/1.8/puppet/agent.rb:53:in run' /usr/lib64/site_ruby/1.8/puppet/agent/locker.rb:21:inlock' /usr/lib64/site_ruby/1.8/puppet/agent.rb:53:in run' /usr/lib/ruby/1.8/sync.rb:229:insynchronize' /usr/lib64/site_ruby/1.8/puppet/agent.rb:53:in run' /usr/lib64/site_ruby/1.8/puppet/agent.rb:130:inwith_client' /usr/lib64/site_ruby/1.8/puppet/agent.rb:51:in run' /usr/lib64/site_ruby/1.8/puppet/application/puppetd.rb:103:inonetime' /usr/lib64/site_ruby/1.8/puppet/application.rb:226:in send' /usr/lib64/site_ruby/1.8/puppet/application.rb:226:inrun_command' /usr/lib64/site_ruby/1.8/puppet/application.rb:217:in run' /usr/lib64/site_ruby/1.8/puppet/application.rb:306:inexit_on_fail' /usr/lib64/site_ruby/1.8/puppet/application.rb:217:in run' /usr/sbin/puppetd:159 err: Could not run Puppet configuration client: Parameter ensure failed: Validate method failed for class ensure: undefined methodcollect' for :versionable:Symbol [root@content.domain.org~]

History

Updated by Josh Endries over 2 years ago

  • Affected Puppet version changed from 0.24.8 to 0.25.0

With the help of Volcane on IRC I fixed this. I was using up2date which doesn’t have versions. Sorry!

Updated by R.I. Pienaar over 2 years ago

The error message should be improved though in puppet/property.rb:387

Updated by James Turnbull over 2 years ago

  • Category set to error reporting
  • Status changed from Unreviewed to Accepted
  • Target version set to 0.25.1

Looks like the method that validates features in providers needs to be a little more robust.

Updated by James Turnbull over 2 years ago

  • Subject changed from Error running the config client with 0.25 on RHEL4: undefined method `collect' for :versionable:Symbol to Confusing error message when a provider lacks a feature

Updated by Markus Roberts over 2 years ago

  • Assignee set to Markus Roberts

Updated by Markus Roberts over 2 years ago

  • Status changed from Accepted to In Topic Branch Pending Review
  • Branch set to http://github.com/MarkusQ/puppet/tree/ticket/master/2654

Updated by James Turnbull over 2 years ago

  • Status changed from In Topic Branch Pending Review to Closed

Pushed in commit:a5950339f43e08516130ff0b7463dbe3fa925890 in branch 0.25.x

Also available in: Atom PDF