Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(ruby 3.1) ChefApply::Text._error_table: psych.rb:368:in `load' wrong number of arguments #218

Open
kolen opened this issue Jan 10, 2023 · 0 comments
Labels
Status: Untriaged An issue that has yet to be triaged.

Comments

@kolen
Copy link

kolen commented Jan 10, 2023

Description

When using ruby 3.1 or 3.2 and running chef-run, if an error occurs, the following internal error is outputted: (see "client output").

I don't know if chef-apply is supposed to be used with ruby 3.x and that this issue should be reported. Ruby 3.1 introduced several breaking changes with YAML module, including change to YAML.load arguments. After the following change issue no longer remains and the error message is outputted correctly:

diff --git a/lib/chef_apply/text.rb b/lib/chef_apply/text.rb
index 850eb2d..7c4ccdc 100644
--- a/lib/chef_apply/text.rb
+++ b/lib/chef_apply/text.rb
@@ -28,7 +28,7 @@ module ChefApply
       # error metadata.
       path = File.join(_translation_path, "errors", "en.yml")
       raw_yaml = File.read(path)
-      @error_table ||= YAML.load(raw_yaml, _translation_path, symbolize_names: true)[:errors]
+      @error_table ||= YAML.load(raw_yaml, filename: _translation_path, symbolize_names: true)[:errors]
     end

     def self._translation_path

Chef Apply Version

0.9.4

Platform Version

Mac OS 10.13.6 x86_64

Replication Case

# use ruby 3.1 or 3.2
cd /tmp
chef generate cookbook test_cookbook
cd test_cookbook
echo 'remote_file "example" { }' > recipes/default.rb
chef-run somehost .

Client Output

[✔] Packaging cookbook... done!
[\] Generating local policyfile.../Users/kolen/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/ffi-yajl-2.4.0/lib/ffi_yajl/encoder.rb:42: warning: undefining the allocator of T_DATA class FFI_Yajl::Ext::Encoder::YajlGen
[✔] Generating local policyfile... exporting... done!
[✖] Applying … from … to target.
└── [✖] […] Failed to converge ….
INTERNAL ERROR
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Message:
wrong number of arguments (given 2, expected 1)
Backtrace:
/Users/kolen/.rbenv/versions/3.2.0/lib/ruby/3.2.0/psych.rb:368:in `load'
/Users/kolen/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/chef-apply-0.9.4/lib/chef_apply/text.rb:31:in `_error_table'
/Users/kolen/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/chef-apply-0.9.4/lib/chef_apply/text/error_translation.rb:27:in `initialize'
/Users/kolen/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/chef-apply-0.9.4/lib/chef_apply/ui/error_printer.rb:103:in `new'
/Users/kolen/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/chef-apply-0.9.4/lib/chef_apply/ui/error_printer.rb:103:in `initialize'
/Users/kolen/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/chef-apply-0.9.4/lib/chef_apply/ui/error_printer.rb:71:in `new'
/Users/kolen/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/chef-apply-0.9.4/lib/chef_apply/ui/error_printer.rb:71:in `write_backtrace'
/Users/kolen/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/chef-apply-0.9.4/lib/chef_apply/cli.rb:328:in `capture_exception_backtrace'
/Users/kolen/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/chef-apply-0.9.4/lib/chef_apply/cli.rb:293:in `handle_perform_error'
/Users/kolen/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/chef-apply-0.9.4/lib/chef_apply/cli.rb:123:in `rescue in perform_run'
/Users/kolen/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/chef-apply-0.9.4/lib/chef_apply/cli.rb:116:in `perform_run'
/Users/kolen/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/chef-apply-0.9.4/lib/chef_apply/cli.rb:73:in `block in run'
/Users/kolen/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/chef-telemetry-1.1.1/lib/chef/telemeter.rb:75:in `block in timed_capture'
/Users/kolen/.rbenv/versions/3.2.0/lib/ruby/3.2.0/benchmark.rb:296:in `measure'
/Users/kolen/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/chef-telemetry-1.1.1/lib/chef/telemeter.rb:75:in `timed_capture'
/Users/kolen/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/chef-telemetry-1.1.1/lib/chef/telemeter.rb:71:in `timed_run_capture'
/Users/kolen/.rbenv/versions/3.2.0/lib/ruby/3.2.0/forwardable.rb:240:in `timed_run_capture'
/Users/kolen/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/chef-apply-0.9.4/lib/chef_apply/cli.rb:71:in `run'
/Users/kolen/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/chef-apply-0.9.4/lib/chef_apply/startup.rb:199:in `start_chef_apply'
/Users/kolen/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/chef-apply-0.9.4/lib/chef_apply/startup.rb:65:in `run'
/Users/kolen/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/chef-apply-0.9.4/bin/chef-run:23:in `<top (required)>'
/Users/kolen/.rbenv/versions/3.2.0/bin/chef-run:25:in `load'
/Users/kolen/.rbenv/versions/3.2.0/bin/chef-run:25:in `<main>'
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Stacktrace

See above

@kolen kolen added the Status: Untriaged An issue that has yet to be triaged. label Jan 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Untriaged An issue that has yet to be triaged.
Projects
None yet
Development

No branches or pull requests

1 participant