Issue #23115 has been reported by Dominic Cleal.

----------------------------------------
Bug #23115: Function returning nil assigned to resource parameter causes value 
is a required option for Puppet::Parser::Resource::Param
https://projects.puppetlabs.com/issues/23115

* Author: Dominic Cleal
* Status: Unreviewed
* Priority: Normal
* Assignee: 
* Category: parser
* Target version: 
* Affected Puppet version: 3.2.4
* Keywords: function resource parameter error
* Branch: 
----------------------------------------
Given stdlib and the following manifest:

    notify { "a":
      message => getvar("foo"),
    }

It references a variable that's unknown, so getvar() returns nil.  This causes 
the following error:

<pre>
Error: value is a required option for Puppet::Parser::Resource::Param on node 
cobalt.fab.redhat.com
/home/dcleal/code/puppet/puppet/lib/puppet/util/errors.rb:97:in `fail'
/home/dcleal/code/puppet/puppet/lib/puppet/util/errors.rb:11:in `devfail'
/home/dcleal/code/puppet/puppet/lib/puppet/util/methodhelper.rb:5:in `block in 
requiredopts'
/home/dcleal/code/puppet/puppet/lib/puppet/util/methodhelper.rb:4:in `each'
/home/dcleal/code/puppet/puppet/lib/puppet/util/methodhelper.rb:4:in 
`requiredopts'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/resource/param.rb:14:in 
`initialize'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/ast/resourceparam.rb:14:in 
`new'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/ast/resourceparam.rb:14:in 
`evaluate'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/ast.rb:62:in `safeevaluate'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/ast/resource.rb:29:in `block 
(2 levels) in evaluate'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/ast/branch.rb:12:in `block in 
each'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/ast/branch.rb:11:in `each'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/ast/branch.rb:11:in `each'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/ast/resource.rb:28:in 
`collect'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/ast/resource.rb:28:in `block 
in evaluate'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/ast/branch.rb:12:in `block in 
each'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/ast/branch.rb:11:in `each'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/ast/branch.rb:11:in `each'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/ast/resource.rb:25:in 
`collect'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/ast/resource.rb:25:in 
`evaluate'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/ast.rb:62:in `safeevaluate'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/ast/block_expression.rb:15:in 
`block in evaluate'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/ast/block_expression.rb:10:in 
`each'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/ast/block_expression.rb:10:in 
`evaluate'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/ast.rb:62:in `safeevaluate'
/home/dcleal/code/puppet/puppet/lib/puppet/resource/type.rb:121:in 
`evaluate_code'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/resource.rb:81:in `evaluate'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/compiler.rb:348:in 
`evaluate_main'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/compiler.rb:111:in `block in 
compile'
/home/dcleal/code/puppet/puppet/lib/puppet/util/profiler/none.rb:6:in `profile'
/home/dcleal/code/puppet/puppet/lib/puppet/util/profiler.rb:31:in `profile'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/compiler.rb:111:in `compile'
/home/dcleal/code/puppet/puppet/lib/puppet/parser/compiler.rb:24:in `compile'
/home/dcleal/code/puppet/puppet/lib/puppet/indirector/catalog/compiler.rb:88:in 
`block (2 levels) in compile'
/home/dcleal/code/puppet/puppet/lib/puppet/util/profiler/none.rb:6:in `profile'
/home/dcleal/code/puppet/puppet/lib/puppet/util/profiler.rb:31:in `profile'
/home/dcleal/code/puppet/puppet/lib/puppet/indirector/catalog/compiler.rb:86:in 
`block in compile'
/home/dcleal/code/puppet/puppet/lib/puppet/util.rb:162:in `block in benchmark'
/home/dcleal/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/benchmark.rb:295:in 
`realtime'
/home/dcleal/code/puppet/puppet/lib/puppet/util.rb:161:in `benchmark'
/home/dcleal/code/puppet/puppet/lib/puppet/indirector/catalog/compiler.rb:85:in 
`compile'
/home/dcleal/code/puppet/puppet/lib/puppet/indirector/catalog/compiler.rb:45:in 
`find'
/home/dcleal/code/puppet/puppet/lib/puppet/indirector/indirection.rb:197:in 
`find'
/home/dcleal/code/puppet/puppet/lib/puppet/application/apply.rb:204:in `main'
/home/dcleal/code/puppet/puppet/lib/puppet/application/apply.rb:146:in 
`run_command'
/home/dcleal/code/puppet/puppet/lib/puppet/application.rb:364:in `block (2 
levels) in run'
/home/dcleal/code/puppet/puppet/lib/puppet/application.rb:466:in `plugin_hook'
/home/dcleal/code/puppet/puppet/lib/puppet/application.rb:364:in `block in run'
/home/dcleal/code/puppet/puppet/lib/puppet/util.rb:485:in `exit_on_fail'
/home/dcleal/code/puppet/puppet/lib/puppet/application.rb:364:in `run'
/home/dcleal/code/puppet/puppet/lib/puppet/util/command_line.rb:132:in `run'
/home/dcleal/code/puppet/puppet/lib/puppet/util/command_line.rb:86:in `execute'
/home/dcleal/code/puppet/puppet/bin/puppet:4:in `<main>'
</pre>

Note the lack of manifest file/line metadata to help debug it.


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-bugs.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to