Hello,

I have a Solaris 10 system running Puppet 2.6.8 that is experiencing a
very unusual problem.  It has been running fine up until I configured
the system to use LDAP for users and groups.  The problem is easily
reproducible.  Take "ldap" out of /etc/nsswitch.conf and it runs fine,
once it's added back in, Puppet crashes:
> acad ~ # puppet agent --test --environment=jameslee --no-report 
> info: Caching catalog for acad.es.gwu.edu
> info: Applying configuration version '1327003919'
> --- /etc/nsswitch.conf  Thu Jan 19 15:11:54 2012
> +++ /tmp/puppet-file5186.0      Thu Jan 19 15:13:04 2012
> @@ -13,8 +13,8 @@
>  # "hosts:" and "services:" in this file are used only if the
>  # /etc/netconfig file has a "-" for nametoaddr_libs of "inet" transports.
>  
> -passwd:     files
> -group:      files
> +passwd:     files ldap
> +group:      files ldap
>  hosts:      files dns
>  ipnodes:    files
>  networks:   files
> info: FileBucket got a duplicate file {md5}4dc29d1e26abeda92f07cbf7ea8c8184
> info: /Stage[main]/Solaris/File[/etc/nsswitch.conf]: Filebucketed 
> /etc/nsswitch.conf to puppet with sum 4dc29d1e26abeda92f07cbf7ea8c8184
> notice: /Stage[main]/Solaris/File[/etc/nsswitch.conf]/content: content 
> changed '{md5}4dc29d1e26abeda92f07cbf7ea8c8184' to 
> '{md5}42577aabe4178912e5f5c030a7d72634'
> notice: Finished catalog run in 59.61 seconds
> acad ~ # puppet agent --test --environment=jameslee --no-report 
> /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/lib/puppet/provider/package/apt.rb:15:in
>  `[]=': failed to allocate memory (NoMemoryError)
>         from 
> /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/lib/puppet/provider/package/apt.rb:15
>         from 
> /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/lib/puppet/util/classgen.rb:117:in
>  `genthing'
>         from 
> /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/lib/puppet/util/classgen.rb:28:in
>  `genclass'
>         from 
> /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/lib/puppet/type.rb:1446:in 
> `provide'
>         from 
> /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/lib/puppet/provider/package/apt.rb:1
>         from 
> /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/lib/puppet/util/autoload.rb:113:in
>  `loadall'
>         from 
> /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/lib/puppet/util/autoload.rb:109:in
>  `loadall'
>         from 
> /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/lib/puppet/util/autoload.rb:108:in
>  `loadall'
>          ... 51 levels...
>         from 
> /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/lib/puppet/application.rb:305:in
>  `run'
>         from 
> /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/lib/puppet/util/command_line.rb:62:in
>  `execute'
>         from /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/bin/puppet:4
>         from /usr/local/bin/puppet:19

This system has 6 GB of memory of which only 168 MB are being used.  It
does not appear that the puppet process running under the LDAP
configuration balloons out of control either, so I can't imagine it's
actually running out of memory.

I tested Puppet 2.6.12 and it has the same problem.  Unfortunately
trying 2.7 is not possible at the moment.

For what it's worth, I can reduce the node's configuration down to
basically nothing and the problem goes away, so there is something in
one of our modules that is triggering the problem, but I have no idea
what.  The stack trace above gives me no real clues (it's a Solaris
system, there is no APT system, and removing the apt provider just
pushes the crash to another file, same message).  I don't have any LDAP
related resources in the Puppet configuration (like LDAP user
resources).  What is it about LDAP that simply enabling it could cause
Puppet to crash?  How might I go about debugging this?

The full debug output is shown below.

Thanks,

James



> acad ~ # puppet agent --test --environment=jameslee --no-report --debug
> debug: Failed to load library 'shadow' for feature 'libshadow'
> debug: Puppet::Type::User::ProviderPw: file pw does not exist
> debug: Failed to load library 'ldap' for feature 'ldap'
> debug: Puppet::Type::User::ProviderLdap: feature ldap is missing
> debug: Puppet::Type::User::ProviderUseradd: file chage does not exist
> debug: Puppet::Type::User::ProviderDirectoryservice: file /usr/bin/dscl does 
> not exist
> debug: Failed to load library 'selinux' for feature 'selinux'
> debug: Puppet::Type::File::ProviderMicrosoft_windows: feature 
> microsoft_windows is missing
> debug: /File[/var/lib/puppet/state/last_run_report.yaml]: Autorequiring 
> File[/var/lib/puppet/state]
> debug: /File[/var/lib/puppet/state/classes.txt]: Autorequiring 
> File[/var/lib/puppet/state]
> debug: /File[/var/lib/puppet/client_yaml]: Autorequiring File[/var/lib/puppet]
> debug: /File[/etc/puppet/ssl/certs]: Autorequiring File[/etc/puppet/ssl]
> debug: /File[/etc/puppet/ssl/certs/ca.pem]: Autorequiring 
> File[/etc/puppet/ssl/certs]
> debug: /File[/etc/puppet/ssl/public_keys]: Autorequiring File[/etc/puppet/ssl]
> debug: /File[/var/lib/puppet/state/last_run_summary.yaml]: Autorequiring 
> File[/var/lib/puppet/state]
> debug: /File[/var/lib/puppet/state/state.yaml]: Autorequiring 
> File[/var/lib/puppet/state]
> debug: /File[/etc/puppet/ssl/private_keys]: Autorequiring 
> File[/etc/puppet/ssl]
> debug: /File[/etc/puppet/ssl/private]: Autorequiring File[/etc/puppet/ssl]
> debug: /File[/etc/puppet/ssl/private_keys/acad.es.gwu.edu.pem]: Autorequiring 
> File[/etc/puppet/ssl/private_keys]
> debug: /File[/etc/puppet/ssl/public_keys/acad.es.gwu.edu.pem]: Autorequiring 
> File[/etc/puppet/ssl/public_keys]
> debug: /File[/var/lib/puppet/clientbucket]: Autorequiring 
> File[/var/lib/puppet]
> debug: /File[/var/lib/puppet/log]: Autorequiring File[/var/lib/puppet]
> debug: /File[/etc/puppet/ssl/certificate_requests]: Autorequiring 
> File[/etc/puppet/ssl]
> debug: /File[/var/lib/puppet/facts]: Autorequiring File[/var/lib/puppet]
> debug: /File[/etc/puppet/ssl/crl.pem]: Autorequiring File[/etc/puppet/ssl]
> debug: /File[/var/lib/puppet/run]: Autorequiring File[/var/lib/puppet]
> debug: /File[/etc/puppet/ssl/certs/acad.es.gwu.edu.pem]: Autorequiring 
> File[/etc/puppet/ssl/certs]
> debug: /File[/etc/puppet/ssl]: Autorequiring File[/etc/puppet]
> debug: /File[/var/lib/puppet/state/graphs]: Autorequiring 
> File[/var/lib/puppet/state]
> debug: /File[/etc/puppet/puppet.conf]: Autorequiring File[/etc/puppet]
> debug: /File[/var/lib/puppet/state]: Autorequiring File[/var/lib/puppet]
> debug: /File[/var/lib/puppet/client_data]: Autorequiring File[/var/lib/puppet]
> debug: /File[/var/lib/puppet/lib]: Autorequiring File[/var/lib/puppet]
> debug: Finishing transaction 76347634
> debug: /File[/etc/puppet/ssl/private]: Autorequiring File[/etc/puppet/ssl]
> debug: /File[/var/lib/puppet/state]: Autorequiring File[/var/lib/puppet]
> debug: /File[/etc/puppet/ssl/certs/acad.es.gwu.edu.pem]: Autorequiring 
> File[/etc/puppet/ssl/certs]
> debug: /File[/var/lib/puppet/run]: Autorequiring File[/var/lib/puppet]
> debug: /File[/etc/puppet/ssl/private_keys]: Autorequiring 
> File[/etc/puppet/ssl]
> debug: /File[/etc/puppet/ssl/certificate_requests]: Autorequiring 
> File[/etc/puppet/ssl]
> debug: /File[/var/lib/puppet/log]: Autorequiring File[/var/lib/puppet]
> debug: /File[/var/lib/puppet/facts]: Autorequiring File[/var/lib/puppet]
> debug: /File[/var/lib/puppet/lib]: Autorequiring File[/var/lib/puppet]
> debug: /File[/etc/puppet/ssl/public_keys/acad.es.gwu.edu.pem]: Autorequiring 
> File[/etc/puppet/ssl/public_keys]
> debug: /File[/etc/puppet/ssl]: Autorequiring File[/etc/puppet]
> debug: /File[/etc/puppet/ssl/private_keys/acad.es.gwu.edu.pem]: Autorequiring 
> File[/etc/puppet/ssl/private_keys]
> debug: /File[/etc/puppet/ssl/certs/ca.pem]: Autorequiring 
> File[/etc/puppet/ssl/certs]
> debug: /File[/etc/puppet/ssl/public_keys]: Autorequiring File[/etc/puppet/ssl]
> debug: /File[/etc/puppet/ssl/certs]: Autorequiring File[/etc/puppet/ssl]
> debug: /File[/etc/puppet/ssl/crl.pem]: Autorequiring File[/etc/puppet/ssl]
> debug: Finishing transaction 75890314
> debug: Using cached certificate for ca
> debug: Using cached certificate for acad.es.gwu.edu
> debug: Finishing transaction 75662514
> debug: Loaded state in 0.04 seconds
> debug: Using cached certificate for ca
> debug: Using cached certificate for acad.es.gwu.edu
> debug: Using cached certificate_revocation_list for ca
> debug: catalog supports formats: b64_zlib_yaml dot marshal pson raw yaml; 
> using pson
> /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/lib/puppet/provider/package/apt.rb:15:in
>  `[]=': failed to allocate memory (NoMemoryError)
>         from 
> /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/lib/puppet/provider/package/apt.rb:15
>         from 
> /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/lib/puppet/util/classgen.rb:117:in
>  `genthing'
>         from 
> /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/lib/puppet/util/classgen.rb:28:in
>  `genclass'
>         from 
> /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/lib/puppet/type.rb:1446:in 
> `provide'
>         from 
> /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/lib/puppet/provider/package/apt.rb:1
>         from 
> /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/lib/puppet/util/autoload.rb:113:in
>  `loadall'
>         from 
> /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/lib/puppet/util/autoload.rb:109:in
>  `loadall'
>         from 
> /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/lib/puppet/util/autoload.rb:108:in
>  `loadall'
>          ... 51 levels...
>         from 
> /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/lib/puppet/application.rb:305:in
>  `run'
>         from 
> /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/lib/puppet/util/command_line.rb:62:in
>  `execute'
>         from /usr/local/lib/ruby/gems/1.8/gems/puppet-2.6.8/bin/puppet:4
>         from /usr/local/bin/puppet:19

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to