[Pkg-puppet-devel] Bug#894800: puppet-master: Saving catalog to PuppetDB fails with "Server Error: undefined method `key_attributes' for nil:NilClass"

intrigeri at debian.org intrigeri at debian.org
Wed Apr 4 11:24:12 UTC 2018


Package: puppet-master
Version: 5.4.0-2
Severity: normal

Hi,

this looks very much like
https://tickets.puppetlabs.com/browse/PUP-7654 which says that running
an older PuppetDB/termini with a newer Puppet can fail. Perhaps this
would be fixed by upgrading PuppetDB 5.x?

   * What led up to the situation?

I'm running Puppet and PuppetDB from sid.

   * What exactly did you do (or not do) that was effective (or
     ineffective)?

puppet agent --test

   * What was the outcome of this action?

Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: undefined method `key_attributes' for nil:NilClass
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run

Full stacktrace:

 Compiled catalog for localhost in environment production in 0.06 seconds
 undefined method `key_attributes' for nil:NilClass
 Server Error: undefined method `key_attributes' for nil:NilClass
 /usr/lib/ruby/vendor_ruby/puppet/indirector/catalog/puppetdb.rb:222:in `block (2 levels) in add_namevar_aliases'
 /usr/lib/ruby/vendor_ruby/puppet/indirector/catalog/puppetdb.rb:213:in `each'
 /usr/lib/ruby/vendor_ruby/puppet/indirector/catalog/puppetdb.rb:213:in `block in add_namevar_aliases'
 /usr/lib/ruby/vendor_ruby/puppet/util/profiler/around_profiler.rb:58:in `profile'
 /usr/lib/ruby/vendor_ruby/puppet/util/profiler.rb:51:in `profile'
 /usr/lib/ruby/vendor_ruby/puppet/util/puppetdb.rb:99:in `profile'
 /usr/lib/ruby/vendor_ruby/puppet/indirector/catalog/puppetdb.rb:211:in `add_namevar_aliases'
 /usr/lib/ruby/vendor_ruby/puppet/indirector/catalog/puppetdb.rb:59:in `block in munge_catalog'
 /usr/lib/ruby/vendor_ruby/puppet/util/profiler/around_profiler.rb:58:in `profile'
 /usr/lib/ruby/vendor_ruby/puppet/util/profiler.rb:51:in `profile'
 /usr/lib/ruby/vendor_ruby/puppet/util/puppetdb.rb:99:in `profile'
 /usr/lib/ruby/vendor_ruby/puppet/indirector/catalog/puppetdb.rb:51:in `munge_catalog'
 /usr/lib/ruby/vendor_ruby/puppet/indirector/catalog/puppetdb.rb:13:in `block in save'
 /usr/lib/ruby/vendor_ruby/puppet/util/profiler/around_profiler.rb:58:in `profile'
 /usr/lib/ruby/vendor_ruby/puppet/util/profiler.rb:51:in `profile'
 /usr/lib/ruby/vendor_ruby/puppet/util/puppetdb.rb:99:in `profile'
 /usr/lib/ruby/vendor_ruby/puppet/indirector/catalog/puppetdb.rb:11:in `save'
 /usr/lib/ruby/vendor_ruby/puppet/indirector/store_configs.rb:24:in `save'
 /usr/lib/ruby/vendor_ruby/puppet/indirector/indirection.rb:204:in `find'
 /usr/lib/ruby/vendor_ruby/puppet/network/http/api/indirected_routes.rb:121:in `do_find'
 /usr/lib/ruby/vendor_ruby/puppet/network/http/api/indirected_routes.rb:48:in `block in call'
 /usr/lib/ruby/vendor_ruby/puppet/context.rb:65:in `override'
 /usr/lib/ruby/vendor_ruby/puppet.rb:260:in `override'
 /usr/lib/ruby/vendor_ruby/puppet/network/http/api/indirected_routes.rb:47:in `call'
 /usr/lib/ruby/vendor_ruby/puppet/network/http/route.rb:82:in `block in process'
 /usr/lib/ruby/vendor_ruby/puppet/network/http/route.rb:81:in `each'
 /usr/lib/ruby/vendor_ruby/puppet/network/http/route.rb:81:in `process'
 /usr/lib/ruby/vendor_ruby/puppet/network/http/route.rb:87:in `process'
 /usr/lib/ruby/vendor_ruby/puppet/network/http/route.rb:87:in `process'
 /usr/lib/ruby/vendor_ruby/puppet/network/http/handler.rb:64:in `block in process'
 /usr/lib/ruby/vendor_ruby/puppet/util/profiler/around_profiler.rb:58:in `profile'
 /usr/lib/ruby/vendor_ruby/puppet/util/profiler.rb:51:in `profile'
 /usr/lib/ruby/vendor_ruby/puppet/network/http/handler.rb:62:in `process'
 /usr/lib/ruby/vendor_ruby/puppet/network/http/rack.rb:21:in `call'
 config.ru:60:in `call'
 /usr/lib/ruby/vendor_ruby/phusion_passenger/rack/thread_handler_extension.rb:97:in `process_request'
 /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:160:in `accept_and_process_next_request'
 /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:113:in `main_loop'
 /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler.rb:416:in `block (3 levels) in start_threads'
 /usr/lib/ruby/vendor_ruby/phusion_passenger/utils.rb:113:in `block in create_thread_and_abort_on_exception'


   * What outcome did you expect instead?

A successful Puppet run :)

*** End of the template - remove these template lines ***


-- System Information:
Debian Release: buster/sid
  APT prefers unstable
  APT policy: (990, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.15.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages puppet-master depends on:
ii  lsb-base  9.20170808
ii  puppet    5.4.0-2
ii  ruby      1:2.5.1

puppet-master recommends no packages.

puppet-master suggests no packages.

-- Configuration Files:
/etc/default/puppet-master changed:
START=yes
DAEMON_OPTS=""
SERVERTYPE=webrick
PUPPETMASTERS=1
PORT=8140
PUPPETQD=no
PUPPETQD_OPTS=""


-- no debconf information

-- 
intrigeri



More information about the Pkg-puppet-devel mailing list