Puppet: System Administration Automated

Support

Ticket #814 (closed defect: fixed)

Opened 1 year ago

Last modified 1 year ago

puppet dies when trying to access non-existant .pp file

Reported by: DavidS Assigned to: luke
Priority: high Milestone: misspiggy
Component: library Version: 0.23.2
Severity: major Keywords: HEAD,undefined method
Cc: Triage Stage: Accepted
Attached Patches: None Complexity: Easy

Description

# Remove test file
david@zion:~/Work/puppet/puppet$ rm -f test.pp

# demonstrate failure
david@zion:~/Work/puppet/puppet$ puppet --verbose --trace test.pp 
/home/david/Work/puppet/puppet/lib/puppet/parser/parser_support.rb:98:in `file='
/home/david/Work/puppet/puppet/lib/puppet/parser/interpreter.rb:69:in `create_parser'
/home/david/Work/puppet/puppet/lib/puppet/parser/interpreter.rb:96:in `parser'
/home/david/Work/puppet/puppet/lib/puppet/parser/interpreter.rb:28:in `compile'
/home/david/Work/puppet/puppet/lib/puppet/network/handler/configuration.rb:109:in `compile'
/home/david/Work/puppet/puppet/lib/puppet/util.rb:217:in `benchmark'
/home/david/Work/puppet/puppet/lib/puppet/network/handler/configuration.rb:107:in `compile'
/home/david/Work/puppet/puppet/lib/puppet/network/handler/configuration.rb:40:in `configuration'
/home/david/Work/puppet/puppet/lib/puppet/network/handler/master.rb:81:in `getconfig'
/home/david/Work/puppet/puppet/lib/puppet/network/client/master.rb:606:in `get_local_config'
/home/david/Work/puppet/puppet/lib/puppet/network/client/master.rb:589:in `get_actual_config'
/home/david/Work/puppet/puppet/lib/puppet/network/client/master.rb:215:in `getconfig'
/home/david/Work/puppet/puppet/bin/puppet:197
/home/david/Work/puppet/puppet/lib/puppet/parser/compile.rb:413:in `initvars'
/home/david/Work/puppet/puppet/lib/puppet/parser/compile.rb:166:in `initialize'
/home/david/Work/puppet/puppet/lib/puppet/parser/interpreter.rb:28:in `new'
/home/david/Work/puppet/puppet/lib/puppet/parser/interpreter.rb:28:in `compile'
/home/david/Work/puppet/puppet/lib/puppet/network/handler/configuration.rb:109:in `compile'
/home/david/Work/puppet/puppet/lib/puppet/util.rb:217:in `benchmark'
/home/david/Work/puppet/puppet/lib/puppet/network/handler/configuration.rb:107:in `compile'
/home/david/Work/puppet/puppet/lib/puppet/network/handler/configuration.rb:40:in `configuration'
/home/david/Work/puppet/puppet/lib/puppet/network/handler/master.rb:81:in `getconfig'
/home/david/Work/puppet/puppet/lib/puppet/network/client/master.rb:606:in `get_local_config'
/home/david/Work/puppet/puppet/lib/puppet/network/client/master.rb:589:in `get_actual_config'
/home/david/Work/puppet/puppet/lib/puppet/network/client/master.rb:215:in `getconfig'
/home/david/Work/puppet/puppet/bin/puppet:197
undefined method `version' for nil:NilClass
/home/david/Work/puppet/puppet/lib/puppet/parser/compile.rb:413:in `initvars'
/home/david/Work/puppet/puppet/lib/puppet/parser/compile.rb:166:in `initialize'
/home/david/Work/puppet/puppet/lib/puppet/parser/interpreter.rb:28:in `new'
/home/david/Work/puppet/puppet/lib/puppet/parser/interpreter.rb:28:in `compile'
/home/david/Work/puppet/puppet/lib/puppet/network/handler/configuration.rb:109:in `compile'
/home/david/Work/puppet/puppet/lib/puppet/util.rb:217:in `benchmark'
/home/david/Work/puppet/puppet/lib/puppet/network/handler/configuration.rb:107:in `compile'
/home/david/Work/puppet/puppet/lib/puppet/network/handler/configuration.rb:40:in `configuration'
/home/david/Work/puppet/puppet/lib/puppet/network/handler/master.rb:81:in `getconfig'
/home/david/Work/puppet/puppet/lib/puppet/network/client/master.rb:606:in `get_local_config'
/home/david/Work/puppet/puppet/lib/puppet/network/client/master.rb:589:in `get_actual_config'
/home/david/Work/puppet/puppet/lib/puppet/network/client/master.rb:215:in `getconfig'
/home/david/Work/puppet/puppet/bin/puppet:197

# create test file
david@zion:~/Work/puppet/puppet$ echo 'package { ruby: ensure => installed; }' > test.pp 

# demonstrate working case
david@zion:~/Work/puppet/puppet$ puppet --verbose --trace test.pp 
david@zion:~/Work/puppet/puppet$ 

This should produce a error message pointing out the missing file, instead of "undefined method `version' for nil:NilClass".

This happens on etch and sid with current HEAD.

Change History

09/11/07 10:17:00 changed by DavidS

  • version set to 0.23.2.

With 0.23.2 this is already a problem:

puppetmaster:/etc/puppet# rm manifests/site.pp 
puppetmaster:/etc/puppet# /etc/init.d/puppetmaster restart
Restarting puppet configuration management tool master server
undefined method `findclass' for nil:NilClass
.
puppetmaster:/etc/puppet# 

09/11/07 18:29:52 changed by michael

  • severity changed from normal to major.
  • priority changed from normal to high.
  • complexity changed from Unknown to Easy.
  • milestone set to misspiggy.
  • owner changed from community to luke.
  • stage changed from Unreviewed to Accepted.

09/13/07 19:35:50 changed by DavidS

Upon further inspection, I noticed that the trace is actually coming from here:

/home/david/Work/puppet/puppet/lib/puppet/parser/compile.rb:413:in `initvars'
/home/david/Work/puppet/puppet/lib/puppet/parser/compile.rb:166:in `initialize'
/home/david/Work/puppet/puppet/lib/puppet/parser/interpreter.rb:28:in `new'
/home/david/Work/puppet/puppet/lib/puppet/parser/interpreter.rb:28:in `compile'
/home/david/Work/puppet/puppet/lib/puppet/network/handler/configuration.rb:109:in `compile'
/home/david/Work/puppet/puppet/lib/puppet/util.rb:217:in `benchmark'
/home/david/Work/puppet/puppet/lib/puppet/network/handler/configuration.rb:107:in `compile'
/home/david/Work/puppet/puppet/lib/puppet/network/handler/configuration.rb:40:in `configuration'
/home/david/Work/puppet/puppet/lib/puppet/network/handler/master.rb:81:in `getconfig'
/home/david/Work/puppet/puppet/lib/puppet/network/client/master.rb:606:in `get_local_config'
/home/david/Work/puppet/puppet/lib/puppet/network/client/master.rb:589:in `get_actual_config'
/home/david/Work/puppet/puppet/lib/puppet/network/client/master.rb:215:in `getconfig'
/home/david/Work/puppet/puppet/bin/puppet:197

Looking at compile.rb:413, it seems as if both @configuration and @parser are nil.

10/04/07 00:32:13 changed by luke

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

Fixed in [5d50ca790e7f752e07da84197b52ff84d2dcfdb4].