baham and likely other authdns nodes fail to compile with a puppet 4 master. The error shown is:
Failed to retrieve catalog from https://puppetmaster2001.codfw.wmnet:8140/future/catalog/baham.wikimedia.org: 500 {"message":"Server Error: Evaluation Error: Error while evaluating a Resource Statement, Evaluation Error: Error while evaluating a Function Call, Failed to parse template authdns/discovery-statefile.tpl.erb:\n Filepath: /etc/puppet/modules/authdns/templates/discovery-statefile.tpl.erb\n Line: 2\n Detail: undefined local variable or method `keyspace' for #<Puppet::Parser::TemplateWrapper:0x007f48998520a8>\n at /etc/puppet/modules/authdns/manifests/discovery_statefile.pp:14:23 at /etc/puppet/modules/authdns/manifests/init.pp:131 on node baham.wikimedia.org","issue_kind":"RUNTIME_ERROR","stacktrace":["Warning: The 'stacktrace' property is deprecated and will be removed in a future version of Puppet. For security reasons, stacktraces are not returned with Puppet HTTP Error responses."]}
Additional detail from the puppetmaster log:
(Scope(Authdns::Discovery_statefile[appservers-ro])) Retrieving template authdns/discovery-statefile.tpl.erb (template[/etc/puppet/modules/authdns/templates/discovery-statefile.tpl.erb]) Bound template variables for /etc/puppet/modules/authdns/templates/discovery-statefile.tpl.erb in 0.00 seconds Evaluation Error: Error while evaluating a Resource Statement, Evaluation Error: Error while evaluating a Function Call, Failed to parse template authdns/discovery-statefile.tpl.erb: Filepath: /etc/puppet/modules/authdns/templates/discovery-statefile.tpl.erb Line: 2 Detail: undefined local variable or method `keyspace' for #<Puppet::Parser::TemplateWrapper:0x007f48989426a8> at /etc/puppet/modules/authdns/manifests/discovery_statefile.pp:14:23 at /etc/puppet/modules/authdns/manifests/init.pp:131 on node baham.wikimedia.org Evaluation Error: Error while evaluating a Resource Statement, Evaluation Error: Error while evaluating a Function Call, Failed to parse template authdns/discovery-statefile.tpl.erb: Filepath: /etc/puppet/modules/authdns/templates/discovery-statefile.tpl.erb Line: 2 Detail: undefined local variable or method `keyspace' for #<Puppet::Parser::TemplateWrapper:0x007f48989426a8> at /etc/puppet/modules/authdns/manifests/discovery_statefile.pp:14:23 at /etc/puppet/modules/authdns/manifests/init.pp:131 on node baham.wikimedia.org Server Error: Evaluation Error: Error while evaluating a Resource Statement, Evaluation Error: Error while evaluating a Function Call, Failed to parse template authdns/discovery-statefile.tpl.erb: Filepath: /etc/puppet/modules/authdns/templates/discovery-statefile.tpl.erb Line: 2 Detail: undefined local variable or method `keyspace' for #<Puppet::Parser::TemplateWrapper:0x007f48989426a8> at /etc/puppet/modules/authdns/manifests/discovery_statefile.pp:14:23 at /etc/puppet/modules/authdns/manifests/init.pp:131 on node baham.wikimedia.org /usr/lib/ruby/vendor_ruby/puppet/parser/functions/template.rb:26:in `rescue in block (2 levels) in <top (required)>' /usr/lib/ruby/vendor_ruby/puppet/parser/functions/template.rb:22:in `block (2 levels) in <top (required)>' /usr/lib/ruby/vendor_ruby/puppet/parser/functions/template.rb:15:in `collect' /usr/lib/ruby/vendor_ruby/puppet/parser/functions/template.rb:15:in `block in <top (required)>' /usr/lib/ruby/vendor_ruby/puppet/parser/functions.rb:174:in `block (2 levels) in newfunction' /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/parser/functions.rb:167:in `block in newfunction' /etc/puppet/modules/authdns/manifests/discovery_statefile.pp:14:in `stack' /usr/lib/ruby/vendor_ruby/puppet/pops/puppet_stack.rb:30:in `eval' /usr/lib/ruby/vendor_ruby/puppet/pops/puppet_stack.rb:30:in `stack' /usr/lib/ruby/vendor_ruby/puppet/pops/evaluator/runtime3_support.rb:293:in `call_function' /usr/lib/ruby/vendor_ruby/puppet/pops/evaluator/evaluator_impl.rb:941:in `call_function_with_block' /usr/lib/ruby/vendor_ruby/puppet/pops/evaluator/evaluator_impl.rb:910:in `eval_CallNamedFunctionExpression'