Bug #814

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

Added by David Schmitt over 4 years ago. Updated over 4 years ago.

Status:Closed Start date:
Priority:High Due date:
Assignee:Luke Kanies % Done:

0%

Category:-
Target version:0.24.0
Affected Puppet version:0.25.4 Branch:
Keywords:
Votes: 0

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.

History

Updated by David Schmitt over 4 years ago

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# 

Updated by David Schmitt over 4 years ago

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.

Updated by Luke Kanies over 4 years ago

  • Status changed from 1 to Closed
  • 7 set to fixed

Fixed in commit:5d50ca790e7f752e07da84197b52ff84d2dcfdb4.

Also available in: Atom PDF