This repository was archived by the owner on May 14, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 5
This repository was archived by the owner on May 14, 2021. It is now read-only.
chef-shell in client mode does not work #3
Copy link
Copy link
Open
Description
Background
We are using poise-derived
cookbook for lazy attributes. It works fine in our ecosystem.
Problem
The problem was when we had to use the chef-shell
command in a client mode to make some debugging.
It does not work and it raises the following error:
$ chef-shell -z -l debug
[...]
[2017-01-02T15:13:45+00:00] DEBUG: [poise-derived] Installing event handler
[2017-01-02T15:13:45+00:00] DEBUG: Filtered backtrace of compile error: /var/chef/cache/cookbooks/poise-derived/files/halite_gem/poise_derived/handler.rb:41:in `<class:Handler>',/var/chef/cache/cookbooks/poise-derived/files/halite_gem/poise_derived/handler.rb:28:in `<module:PoiseDerived>',/var/chef/cache/cookbooks/poise-derived/files/halite_gem/poise_derived/handler.rb:23:in `<top (required)>',/var/chef/cache/cookbooks/poise-derived/files/halite_gem/poise_derived/cheftie.rb:18:in `<top (required)>',/var/chef/cache/cookbooks/poise-derived/libraries/default.rb:19:in `<top (required)>'
[2017-01-02T15:13:45+00:00] DEBUG: Backtrace entry for compile error: '/var/chef/cache/cookbooks/poise-derived/files/halite_gem/poise_derived/handler.rb:41:in `<class:Handler>''
[2017-01-02T15:13:45+00:00] DEBUG: Line number of compile error: '41'
================================================================================
Recipe Compile Error in /var/chef/cache/cookbooks/poise-derived/libraries/default.rb
================================================================================
NoMethodError
-------------
undefined method `events' for nil:NilClass
Cookbook Trace:
---------------
/var/chef/cache/cookbooks/poise-derived/files/halite_gem/poise_derived/handler.rb:41:in `<class:Handler>'
/var/chef/cache/cookbooks/poise-derived/files/halite_gem/poise_derived/handler.rb:28:in `<module:PoiseDerived>'
/var/chef/cache/cookbooks/poise-derived/files/halite_gem/poise_derived/handler.rb:23:in `<top (required)>'
/var/chef/cache/cookbooks/poise-derived/files/halite_gem/poise_derived/cheftie.rb:18:in `<top (required)>'
/var/chef/cache/cookbooks/poise-derived/libraries/default.rb:19:in `<top (required)>'
Relevant File Content:
----------------------
/var/chef/cache/cookbooks/poise-derived/files/halite_gem/poise_derived/handler.rb:
34:
35: def attribute_load_complete
36: PoiseDerived::DSL.uninstall
37: end
38:
39: # Install event handler.
40: Chef::Log.debug('[poise-derived] Installing event handler')
41>> Chef.run_context.events.register(self.instance)
42: end
43: end
44:
Platform:
---------
x86_64-linux
epic fail!
/var/chef/cache/cookbooks/poise-derived/files/halite_gem/poise_derived/handler.rb:41:in `<class:Handler>': undefined method `events' for nil:NilClass (NoMethodError)
from /var/chef/cache/cookbooks/poise-derived/files/halite_gem/poise_derived/handler.rb:28:in `<module:PoiseDerived>'
from /var/chef/cache/cookbooks/poise-derived/files/halite_gem/poise_derived/handler.rb:23:in `<top (required)>'
from /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /var/chef/cache/cookbooks/poise-derived/files/halite_gem/poise_derived/cheftie.rb:18:in `<top (required)>'
from /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /opt/chef/embedded/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /var/chef/cache/cookbooks/poise-derived/libraries/default.rb:19:in `<top (required)>'
from /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.17.44/lib/chef/run_context/cookbook_compiler.rb:193:in `load'
from /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.17.44/lib/chef/run_context/cookbook_compiler.rb:193:in `block in load_libraries_from_cookbook'
from /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.17.44/lib/chef/run_context/cookbook_compiler.rb:189:in `each'
from /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.17.44/lib/chef/run_context/cookbook_compiler.rb:189:in `load_libraries_from_cookbook'
from /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.17.44/lib/chef/run_context/cookbook_compiler.rb:99:in `block in compile_libraries'
from /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.17.44/lib/chef/run_context/cookbook_compiler.rb:98:in `each'
from /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.17.44/lib/chef/run_context/cookbook_compiler.rb:98:in `compile_libraries'
from /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.17.44/lib/chef/run_context/cookbook_compiler.rb:71:in `compile'
from /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.17.44/lib/chef/run_context.rb:187:in `load'
from /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.17.44/lib/chef/shell/shell_session.rb:208:in `rebuild_context'
from /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.17.44/lib/chef/shell/shell_session.rb:59:in `block in reset!'
from /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.17.44/lib/chef/shell/shell_session.rb:101:in `loading'
from /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.17.44/lib/chef/shell/shell_session.rb:54:in `reset!'
from /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.17.44/lib/chef/shell.rb:127:in `session'
from /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.17.44/lib/chef/shell.rb:136:in `init'
from /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.17.44/lib/chef/shell.rb:65:in `start'
from /opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.17.44/bin/chef-shell:34:in `<top (required)>'
from /usr/bin/chef-shell:57:in `load'
from /usr/bin/chef-shell:57:in `<main>'
It looks like a bug in the handler definition. Chef.run_context
is nil
in that mode while in the normal chef-client
it is a Chef::RunContext
object.
Software versions
Chef: 12.17.44
Metadata
Metadata
Assignees
Labels
No labels