Jira (PUP-9090) Puppet apply causes a Stack Level too deep on Windows (include function)

6 views
Skip to first unread message

Glenn Sarti (JIRA)

unread,
Aug 29, 2018, 4:42:04 AM8/29/18
to puppe...@googlegroups.com
Glenn Sarti created an issue
 
Puppet / Bug PUP-9090
Puppet apply causes a Stack Level too deep on Windows (include function)
Issue Type: Bug Bug
Assignee: Unassigned
Created: 2018/08/29 1:41 AM
Environment:

Windows 10 - 1803
Ruby 2.4.3-2 x64
Puppet Gem 5.5.6 x64

Priority: Normal Normal
Reporter: Glenn Sarti

This is a real edge case but it's SUPER SUPER WEIRD

Using a manifest of

include ppp

I expect the output from puppet apply manifest.pp to raise a compile error such as

Error: Evaluation Error: Error while evaluating a Function Call, Could not find class ::ppp for glenns.gallifrey.local (file: C:/Source/tmp/wtf/manifest.pp, line: 1, column: 1) on node glenns.gallifrey.local

However in certain circumstance I get a "Could not run: stack level too deep", which appears to be puppet recursively trying to load the "include" function.

Trace log

... REPEATS ...
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions.rb:174:in `block (2 levels) in newfunction'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler/around_profiler.rb:58:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler.rb:51:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions.rb:167:in `block in newfunction'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/evaluator/runtime3_support.rb:291:in `external_call_function'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/scope.rb:1100:in `call_function'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions/include.rb:31:in `block in <top (required)>'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions.rb:174:in `block (2 levels) in newfunction'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler/around_profiler.rb:58:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler.rb:51:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions.rb:167:in `block in newfunction'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/evaluator/runtime3_support.rb:291:in `external_call_function'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/scope.rb:1100:in `call_function'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions/include.rb:31:in `block in <top (required)>'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions.rb:174:in `block (2 levels) in newfunction'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler/around_profiler.rb:58:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler.rb:51:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions.rb:167:in `block in newfunction'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/evaluator/runtime3_support.rb:291:in `external_call_function'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/scope.rb:1100:in `call_function'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions/include.rb:31:in `block in <top (required)>'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions.rb:174:in `block (2 levels) in newfunction'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler/around_profiler.rb:58:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler.rb:51:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions.rb:167:in `block in newfunction'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/evaluator/runtime3_support.rb:291:in `external_call_function'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/scope.rb:1100:in `call_function'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions/include.rb:31:in `block in <top (required)>'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions.rb:174:in `block (2 levels) in newfunction'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler/around_profiler.rb:58:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler.rb:51:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions.rb:167:in `block in newfunction'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/evaluator/runtime3_support.rb:291:in `external_call_function'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/scope.rb:1100:in `call_function'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions/include.rb:31:in `block in <top (required)>'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions.rb:174:in `block (2 levels) in newfunction'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler/around_profiler.rb:58:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler.rb:51:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions.rb:167:in `block in newfunction'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/evaluator/runtime3_support.rb:291:in `external_call_function'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/scope.rb:1100:in `call_function'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions/include.rb:31:in `block in <top (required)>'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions.rb:174:in `block (2 levels) in newfunction'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler/around_profiler.rb:58:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler.rb:51:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions.rb:167:in `block in newfunction'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/evaluator/runtime3_support.rb:291:in `external_call_function'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/scope.rb:1100:in `call_function'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions/include.rb:31:in `block in <top (required)>'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions.rb:174:in `block (2 levels) in newfunction'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler/around_profiler.rb:58:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler.rb:51:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions.rb:167:in `block in newfunction'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/evaluator/runtime3_support.rb:291:in `external_call_function'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/scope.rb:1100:in `call_function'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions/include.rb:31:in `block in <top (required)>'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions.rb:174:in `block (2 levels) in newfunction'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler/around_profiler.rb:58:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler.rb:51:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/functions.rb:167:in `block in newfunction'
C:/source/tmp/wtf/langserver-sidecar20180828-13160-1pngrjb:1:in `stack'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/puppet_stack.rb:33:in `eval'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/puppet_stack.rb:33:in `stack'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/evaluator/runtime3_support.rb:314:in `call_function'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/evaluator/evaluator_impl.rb:964:in `call_function_with_block'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/evaluator/evaluator_impl.rb:933:in `eval_CallNamedFunctionExpression'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/visitor.rb:48:in `block in visit_this'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/visitor.rb:42:in `each'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/visitor.rb:42:in `visit_this'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/visitor.rb:92:in `visit_this_1'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/evaluator/evaluator_impl.rb:81:in `evaluate'
C:/source/tmp/wtf/langserver-sidecar20180828-13160-1pngrjb:in `stack'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/puppet_stack.rb:33:in `eval'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/puppet_stack.rb:33:in `stack'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/evaluator/evaluator_impl.rb:737:in `eval_Program'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/visitor.rb:48:in `block in visit_this'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/visitor.rb:42:in `each'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/visitor.rb:42:in `visit_this'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/visitor.rb:92:in `visit_this_1'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/evaluator/evaluator_impl.rb:81:in `evaluate'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/pops/parser/evaluating_parser.rb:63:in `evaluate'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/ast/pops_bridge.rb:125:in `evaluate'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/ast.rb:31:in `safeevaluate'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/resource/type.rb:136:in `evaluate_code'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/resource.rb:79:in `block in evaluate'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler/around_profiler.rb:58:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler.rb:51:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/resource.rb:71:in `evaluate'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/compiler.rb:592:in `evaluate_main'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/compiler.rb:166:in `block (2 levels) in compile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler/around_profiler.rb:58:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler.rb:51:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/compiler.rb:166:in `block in compile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/context.rb:65:in `override'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet.rb:260:in `override'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/compiler.rb:155:in `compile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/parser/compiler.rb:35:in `compile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/indirector/catalog/compiler.rb:303:in `block (2 levels) in compile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler/around_profiler.rb:58:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/profiler.rb:51:in `profile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/indirector/catalog/compiler.rb:301:in `block in compile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util.rb:232:in `block in benchmark'
C:/tools/ruby2.4.3-2x64/lib/ruby/2.4.0/benchmark.rb:308:in `realtime'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util.rb:231:in `benchmark'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/indirector/catalog/compiler.rb:299:in `compile'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/indirector/catalog/compiler.rb:54:in `block in find'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/node/environment.rb:450:in `with_text_domain'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/indirector/catalog/compiler.rb:53:in `find'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/indirector/indirection.rb:198:in `find'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/application/apply.rb:262:in `block in main'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/context.rb:65:in `override'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet.rb:260:in `override'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/application/apply.rb:233:in `main'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/application/apply.rb:174:in `run_command'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/application.rb:375:in `block in run'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util.rb:663:in `exit_on_fail'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/application.rb:375:in `run'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/command_line.rb:136:in `run'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/lib/puppet/util/command_line.rb:73:in `execute'
C:/source/tmp/wtf/.bundle/windows/ruby/2.4.0/gems/puppet-5.5.6-x64-mingw32/bin/puppet:5:in `<top (required)>'
C:/Source/tmp/wtf/.bundle/windows/ruby/2.4.0/bin/puppet:23:in `load'
C:/Source/tmp/wtf/.bundle/windows/ruby/2.4.0/bin/puppet:23:in `<main>'

Here's the weird bit;

Using the same ruby environment, command and manifest;

  • Running under cmd.exe - EVALUATION ERROR (Good)
  • Running as PowerShell under ConEmu - EVALUATION ERROR (Good)
  • Running it in the PowerShell console - STACK TOO DEEP (BAD!)
  • Running cmd.exe and then running PowerShell - - EVALUATION ERROR (Good)

SOMETHING in the PowerShell console/environment/or whatever is causing a recursion inside Puppet function loading

Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v7.7.1#77002-sha1:e75ca93)
Atlassian logo

Glenn Sarti (JIRA)

unread,
Aug 29, 2018, 4:50:02 AM8/29/18
to puppe...@googlegroups.com
Glenn Sarti commented on Bug PUP-9090
 
Re: Puppet apply causes a Stack Level too deep on Windows (include function)

Also tried combinations of Elevated vs Non-Elevated. No change in test scenarios.

Hrmm interesting. (URU is the ruby manager on Windows)

So running;

CMD -> URU -> PowerShell - EVALUATION ERROR (Good)
CMD -> PowerShell -> URU - STACK TOO DEEP (BAD!)

CMD -> Change PATH -> PowerShell - STACK TOO DEEP (BAD!)
CMD -> Change PATH -> (Run puppet apply) -> PowerShell - EVALUATION ERROR (Good) (!?@#!@$!)

Glenn Sarti (JIRA)

unread,
Aug 29, 2018, 5:17:03 AM8/29/18
to puppe...@googlegroups.com
Glenn Sarti commented on Bug PUP-9090

What the ?Unable to render embedded object: File (@?#@?@#) not found.?

CMD -> PowerShell -> CD to correct Dir -> URU - STACK TOO DEEP (BAD!)
CMD -> CD to correct Dir -> Powershell -> URU - EVALUATION ERROR (Good)

icrosoft Windows [Version 10.0.17134.228]
(c) 2018 Microsoft Corporation. All rights reserved.
 
C:\Users\glenn.sarti>powershell
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
 
Loading personal and system profiles took 1811ms.
C:\Users\glenn.sarti> cd \source\tmp\wtf
C:\source\tmp\wtf> uru 2.4
---> these rubies match your `2.4` tag:
 
 [1] 2.4.3-2-x64 : ruby 2.4.3p205 (2017-12-14 revision 61247) [x64-mingw32]
                   Home: C:\tools\ruby2.4.3-2x64\bin
 [2] 2.4.3-2-x86 : ruby 2.4.3p205 (2017-12-14 revision 61247) [i386-mingw32]
                   Home: C:\tools\ruby2.4.3-2x86\bin
 
select [1]-[2] to use that specific ruby (0 to exit) [0]: 1
---> now using ruby 2.4.3-p205 tagged as `2.4.3-2-x64`
C:\source\tmp\wtf> be puppet apply .\langserver-sidecar20180828-13160-1pngrjb
Error: Could not run: stack level too deep
C:\source\tmp\wtf>

Microsoft Windows [Version 10.0.17134.228]
(c) 2018 Microsoft Corporation. All rights reserved.
 
C:\Users\glenn.sarti>cd \source\tmp\wtf
 
C:\Source\tmp\wtf>powershell
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
 
Loading personal and system profiles took 1858ms.
C:\Source\tmp\wtf> uru 2.4
---> these rubies match your `2.4` tag:
 
 [1] 2.4.3-2-x64 : ruby 2.4.3p205 (2017-12-14 revision 61247) [x64-mingw32]
                   Home: C:\tools\ruby2.4.3-2x64\bin
 [2] 2.4.3-2-x86 : ruby 2.4.3p205 (2017-12-14 revision 61247) [i386-mingw32]
                   Home: C:\tools\ruby2.4.3-2x86\bin
 
select [1]-[2] to use that specific ruby (0 to exit) [0]: 1
---> now using ruby 2.4.3-p205 tagged as `2.4.3-2-x64`
C:\Source\tmp\wtf> be puppet apply .\langserver-sidecar20180828-13160-1pngrjb
Error: Evaluation Error: Error while evaluating a Function Call, Could not find class ::ppp for glenns.gallifrey.local (file: C:/Source/tmp/wtf/langserver-sidecar20180828-13160-1pngrjb, line: 1, column: 1) on node glenns.gallifrey.local
C:\Source\tmp\wtf>

Glenn Sarti (JIRA)

unread,
Aug 29, 2018, 5:21:02 AM8/29/18
to puppe...@googlegroups.com
Glenn Sarti commented on Bug PUP-9090

And just to prove it's not URU, I used the path instead of URU

CMD -> PowerShell -> CD to correct Dir -> SET PATH - STACK TOO DEEP (BAD!)
CMD -> CD to correct Dir -> Powershell -> SET PATH - EVALUATION ERROR (Good)

Microsoft Windows [Version 10.0.17134.228]
(c) 2018 Microsoft Corporation. All rights reserved.
 
C:\Users\glenn.sarti>powershell
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
 
Loading personal and system profiles took 1872ms.
C:\Users\glenn.sarti> cd \source\tmp\wtf
C:\source\tmp\wtf> $ENV:PATH = 'C:\tools\ruby2.4.3-2x64\bin;' + $ENV:PATH
C:\source\tmp\wtf> be puppet apply .\langserver-sidecar20180828-13160-1pngrjb
Error: Could not run: stack level too deep
C:\source\tmp\wtf>
Microsoft Windows [Version 10.0.17134.228]
(c) 2018 Microsoft Corporation. All rights reserved.
 
C:\Users\glenn.sarti>cd \source\tmp\wtf
 
C:\Source\tmp\wtf>powershell
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
 
Loading personal and system profiles took 1807ms.
C:\Source\tmp\wtf> $ENV:PATH = 'C:\tools\ruby2.4.3-2x64\bin;' + $ENV:PATH
C:\Source\tmp\wtf> be puppet apply .\langserver-sidecar20180828-13160-1pngrjb
Error: Evaluation Error: Error while evaluating a Function Call, Could not find class ::ppp for glenns.gallifrey.local (file: C:/Source/tmp/wtf/langserver-sidecar20180828-13160-1pngrjb, line: 1, column: 1) on node glenns.gallifrey.local
C:\Source\tmp\wtf>

Glenn Sarti (JIRA)

unread,
Aug 29, 2018, 5:22:02 AM8/29/18
to puppe...@googlegroups.com
Glenn Sarti updated an issue
 
Change By: Glenn Sarti
Environment:
Windows 10 - 1803
Ruby 2.4.3-2 x64
Puppet Gem 5.5.6 x64 (No agent or master)

Josh Cooper (JIRA)

unread,
Aug 29, 2018, 12:26:02 PM8/29/18
to puppe...@googlegroups.com
Josh Cooper commented on Bug PUP-9090
 
Re: Puppet apply causes a Stack Level too deep on Windows (include function)

My guess is that powershell is causing the current drive and/or working directory to be resolved differently casewise and perhaps the pops recursion guard doesn't detect when infinite recursion occurs due to case mismatch? For example I see both C:\Source and C:\source above. Also things like PUP-6985 or how the win32-dir gem rewrites the Dir.pwd method to retrieve the current working directly differently than how ruby does it. https://github.com/chef/win32-dir/blob/ffi/lib/win32/dir.rb#L150-L182

Jorie Tappa (JIRA)

unread,
Sep 10, 2018, 4:57:04 PM9/10/18
to puppe...@googlegroups.com

Scott McClellan (JIRA)

unread,
Sep 18, 2018, 5:24:03 PM9/18/18
to puppe...@googlegroups.com

Glenn Sarti (JIRA)

unread,
Oct 23, 2018, 4:40:03 AM10/23/18
to puppe...@googlegroups.com

Glenn Sarti (JIRA)

unread,
Oct 23, 2018, 4:40:03 AM10/23/18
to puppe...@googlegroups.com

Glenn Sarti (JIRA)

unread,
Oct 23, 2018, 4:45:02 AM10/23/18
to puppe...@googlegroups.com
Glenn Sarti commented on Bug PUP-9090
 
Re: Puppet apply causes a Stack Level too deep on Windows (include function)

Confirmed it's the working directory being case sensitive;

 Same ConEmu session, same puppet version. This is using the Puppet 6 Gem. Note the C:\Source and C:\source

C:\source\puppet-editor-services [fix-debug-server-pup6 +1 ~4 -3 !]> be puppet apply .\spec\debugserver\fixtures\envi
ronments\testfixtures\manifests\kitchen_sink.pp --noop --trace --verbose
Notice: Scope(Class[main]): The start
Error: Could not run: stack level too deep
C:\source\puppet-editor-services [fix-debug-server-pup6 +1 ~4 -3 !]> cd \
C:\> cd Source
C:\Source> cd .\puppet-editor-services\
C:\Source\puppet-editor-services [fix-debug-server-pup6 +1 ~4 -3 !]> be puppet apply .\spec\debugserver\fixtures\envi
ronments\testfixtures\manifests\kitchen_sink.pp --noop --trace --verbose
Notice: Scope(Class[main]): The start
Alert: Scope(Class[Nestedclass]): This is an alert message
Notice: Scope(Class[main]): The end!
Notice: Compiled catalog for glenns.gallifrey.local in environment production in 0.11 seconds
Info: Applying configuration version '1540284116'
Notice: /Stage[main]/Nestedclass/Notify[nested_notify]/message: current_value 'absent', should be 'nested_notify' (noop)
Notice: /Stage[main]/Nestedclass/Notify[routers]/message: current_value 'absent', should be 'routers' (noop)
Notice: /Stage[main]/Nestedclass/Notify[servers]/message: current_value 'absent', should be 'servers' (noop)
Notice: /Stage[main]/Nestedclass/Notify[workstations]/message: current_value 'absent', should be 'workstations' (noop)
Notice: Class[Nestedclass]: Would have triggered 'refresh' from 4 events
Notice: /Stage[main]/Democlass/Notify[demo_notify]/message: current_value 'absent', should be 'demo_notify' (noop)
Notice: Class[Democlass]: Would have triggered 'refresh' from 1 event
Notice: Stage[main]: Would have triggered 'refresh' from 2 events
Notice: Applied catalog in 0.07 seconds
C:\Source\puppet-editor-services [fix-debug-server-pup6 +1 ~4 -3 !]>

Puppet Agent 5.5.2 doesn't seem to have the problem

C:\source\puppet-editor-services [fix-debug-server-pup6 +1 ~4 -3 !]> puppet --version
5.5.2
C:\source\puppet-editor-services [fix-debug-server-pup6 +1 ~4 -3 !]> puppet apply .\spec\debugserver\fixtures\environ
ments\testfixtures\manifests\kitchen_sink.pp --noop --trace --verbose
Notice: Scope(Class[main]): The start
Alert: Scope(Class[Nestedclass]): This is an alert message
Notice: Scope(Class[main]): The end!
Notice: Compiled catalog for glenns.gallifrey.local in environment production in 0.11 seconds
Info: Applying configuration version '1540284239'
Notice: /Stage[main]/Nestedclass/Notify[nested_notify]/message: current_value 'absent', should be 'nested_notify' (noop)
Notice: /Stage[main]/Nestedclass/Notify[routers]/message: current_value 'absent', should be 'routers' (noop)
Notice: /Stage[main]/Nestedclass/Notify[servers]/message: current_value 'absent', should be 'servers' (noop)
Notice: /Stage[main]/Nestedclass/Notify[workstations]/message: current_value 'absent', should be 'workstations' (noop)
Notice: Class[Nestedclass]: Would have triggered 'refresh' from 4 events
Notice: /Stage[main]/Democlass/Notify[demo_notify]/message: current_value 'absent', should be 'demo_notify' (noop)
Notice: Class[Democlass]: Would have triggered 'refresh' from 1 event
Notice: Stage[main]: Would have triggered 'refresh' from 2 events
Notice: Applied catalog in 0.07 seconds
C:\source\puppet-editor-services [fix-debug-server-pup6 +1 ~4 -3 !]> cd C:\Source\
C:\Source> cd .\puppet-editor-services\
C:\Source\puppet-editor-services [fix-debug-server-pup6 +1 ~4 -3 !]> puppet apply .\spec\debugserver\fixtures\environ
ments\testfixtures\manifests\kitchen_sink.pp --noop --trace --verbose
Notice: Scope(Class[main]): The start
Alert: Scope(Class[Nestedclass]): This is an alert message
Notice: Scope(Class[main]): The end!
Notice: Compiled catalog for glenns.gallifrey.local in environment production in 0.10 seconds
Info: Applying configuration version '1540284266'
Notice: /Stage[main]/Nestedclass/Notify[nested_notify]/message: current_value 'absent', should be 'nested_notify' (noop)
Notice: /Stage[main]/Nestedclass/Notify[routers]/message: current_value 'absent', should be 'routers' (noop)
Notice: /Stage[main]/Nestedclass/Notify[servers]/message: current_value 'absent', should be 'servers' (noop)
Notice: /Stage[main]/Nestedclass/Notify[workstations]/message: current_value 'absent', should be 'workstations' (noop)
Notice: Class[Nestedclass]: Would have triggered 'refresh' from 4 events
Notice: /Stage[main]/Democlass/Notify[demo_notify]/message: current_value 'absent', should be 'demo_notify' (noop)
Notice: Class[Democlass]: Would have triggered 'refresh' from 1 event
Notice: Stage[main]: Would have triggered 'refresh' from 2 events
Notice: Applied catalog in 0.07 seconds
C:\Source\puppet-editor-services [fix-debug-server-pup6 +1 ~4 -3 !]>

Glenn Sarti (JIRA)

unread,
Oct 23, 2018, 4:52:02 AM10/23/18
to puppe...@googlegroups.com
Glenn Sarti commented on Bug PUP-9090

cmd.exe doesn't seem to have the same problem because it looks like it uses the real on-disk name, not the one you give it. This is same computer as the ConEmu session above but using cmd.exe instead.

C:\Source\puppet-editor-services>be puppet --version
6.0.2
 
C:\Source\puppet-editor-services>be puppet apply .\spec\debugserver\fixtures\environments\testfixtures\manifests\kitchen_sink.pp --noop --trace --verbose
Notice: Scope(Class[main]): The start
Alert: Scope(Class[Nestedclass]): This is an alert message
Notice: Scope(Class[main]): The end!
Notice: Compiled catalog for glenns.gallifrey.local in environment production in 0.10 seconds
Info: Applying configuration version '1540284486'
Notice: /Stage[main]/Nestedclass/Notify[nested_notify]/message: current_value 'absent', should be 'nested_notify' (noop)
Notice: /Stage[main]/Nestedclass/Notify[routers]/message: current_value 'absent', should be 'routers' (noop)
Notice: /Stage[main]/Nestedclass/Notify[servers]/message: current_value 'absent', should be 'servers' (noop)
Notice: /Stage[main]/Nestedclass/Notify[workstations]/message: current_value 'absent', should be 'workstations' (noop)
Notice: Class[Nestedclass]: Would have triggered 'refresh' from 4 events
Notice: /Stage[main]/Democlass/Notify[demo_notify]/message: current_value 'absent', should be 'demo_notify' (noop)
Notice: Class[Democlass]: Would have triggered 'refresh' from 1 event
Notice: Stage[main]: Would have triggered 'refresh' from 2 events
Notice: Applied catalog in 0.06 seconds
 
C:\Source\puppet-editor-services>cd \source
 
C:\Source>cd \
 
C:\>cd source
 
C:\Source>cd \source\puppet-editor-services
 
C:\Source\puppet-editor-services>cd \source\puppet-editor-SERVices
 
C:\Source\puppet-editor-services>

Not how I use the the wrong name in the CD command but cmd changes it back.

Glenn Sarti (JIRA)

unread,
Oct 23, 2018, 4:56:02 AM10/23/18
to puppe...@googlegroups.com
Glenn Sarti commented on Bug PUP-9090

Also note that function loading seems to be broken too; Note the backtick "`" is the PowerShell escape character.

C:\Source\puppet-editor-services [fix-debug-server-pup6 +1 ~4 -3 !]> be puppet apply -e "`$var = split('12','1')"
Notice: Compiled catalog for glenns.gallifrey.local in environment production in 0.04 seconds
Notice: Applied catalog in 0.03 seconds
C:\Source\puppet-editor-services [fix-debug-server-pup6 +1 ~4 -3 !]> cd \source
C:\source> cd .\puppet-editor-services\
C:\source\puppet-editor-services [fix-debug-server-pup6 +1 ~4 -3 !]> be puppet apply -e "`$var = split('12','1')"
Error: Evaluation Error: Error while evaluating a Function Call, split() can only be called using the 4.x function API. See Scope#call_function (line: 1, column: 8) on node glenns.gallifrey.local
C:\source\puppet-editor-services [fix-debug-server-pup6 +1 ~4 -3 !]>

Glenn Sarti (JIRA)

unread,
Oct 23, 2018, 4:56:02 AM10/23/18
to puppe...@googlegroups.com
Glenn Sarti commented on Bug PUP-9090

Notes that Puppet Agent 6.0.2 doesn't have the issue.

Glenn Sarti (JIRA)

unread,
Oct 23, 2018, 4:59:07 AM10/23/18
to puppe...@googlegroups.com
Glenn Sarti commented on Bug PUP-9090

May also be related to OS/PowerShell version

This is on a fresh Server 2012R2 VM

PS C:\source> bundle exec puppet --version
6.0.2
PS C:\source> bundle exec puppet apply -e "`$var = split('12','1')"
Notice: Compiled catalog for win-hbiod5i9gso.localdomain in environment production in 0.03 seconds
Notice: Applied catalog in 0.02 seconds
PS C:\source> cd C:\Source
PS C:\Source> bundle exec puppet apply -e "`$var = split('12','1')"
Notice: Compiled catalog for win-hbiod5i9gso.localdomain in environment production in 0.03 seconds
Notice: Applied catalog in 0.03 seconds
PS C:\Source> $PSVersionTable
 
Name                           Value
----                           -----
PSVersion                      4.0
WSManStackVersion              3.0
SerializationVersion           1.1.0.1
CLRVersion                     4.0.30319.42000
BuildVersion                   6.3.9600.18968
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion      2.2
 
 
PS C:\Source>

Glenn Sarti (JIRA)

unread,
Jan 22, 2020, 9:21:04 PM1/22/20
to puppe...@googlegroups.com
Glenn Sarti commented on Bug PUP-9090

Update - This also occurs when using the Shortpath name of the directory e.g. C:\PROGRA~1\PUPPET~1

Puppet 6.12.0
Puppet 6.10.0
Ruby 2.5.7 (Packaged under PDK)

Josh Cooper Ethan Brown Not looking for a solution, but confirmation that running under a shortpath name should work?

Josh Cooper (Jira)

unread,
Jun 14, 2021, 4:15:02 PM6/14/21
to puppe...@googlegroups.com
Josh Cooper commented on Bug PUP-9090

Using shortpath almost certainly doesn't work due to ruby, pops smartpaths and the autoloader.

Based on your comment above "Notes that Puppet Agent 6.0.2 doesn't have the issue." and Puppet 5 is EOL. I'm going to close this. Please reopen if it's still an issue in current versions.

This message was sent by Atlassian Jira (v8.13.2#813002-sha1:c495a97)
Atlassian logo
Reply all
Reply to author
Forward
0 new messages