Bug #814
puppet dies when trying to access non-existant .pp file
| Status: | Closed | Start date: | ||
|---|---|---|---|---|
| Priority: | High | Due date: | ||
| Assignee: | % 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.