Description
This bug seems similar to #1353 but not exactly the same.
PDK validate fails to complete when checking YAML files.
platform: Ubuntu 22.04.4 LTS
package: pdk 3.2.0.1-1jammy amd64 Puppet Development Kit
$ pdk validate nodes/mail.hi.umn.edu.yaml
pdk (INFO): Using Ruby 3.2.3
pdk (INFO): Using Puppet 8.6.0
pdk (INFO): Running all available validators...
┌ [✔] Running metadata validators ...
└── [✔] Checking metadata syntax (metadata.json tasks/.json).
┌ [✔] Running puppet validators ...
┌ [✔] Running ruby validators ...
└── [✔] Checking Ruby code style (/.rb).
┌ [✔] Running tasks validators ...
├── [✔] Checking task names (tasks/**/).
└── [✔] Checking task metadata style (tasks/.json).
┌ [|] Running yaml validators ...
└── [|] Checking YAML syntax (**/.yaml **/*.yml).
/opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/validate/yaml/yaml_syntax_validator.rb:61:in `rescue in validate_target': uninitialized constant PDK::Validate::YAML::YAMLSyntaxValidator::Psych (NameError)
rescue Psych::SyntaxError => e
^^^^^
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/validate/yaml/yaml_syntax_validator.rb:51:in `validate_target'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/validate/internal_ruby_validator.rb:66:in `block in invoke'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/validate/internal_ruby_validator.rb:65:in `each'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/validate/internal_ruby_validator.rb:65:in `invoke'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/validate/validator_group.rb:89:in `block in invoke'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/validate/validator_group.rb:88:in `each'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/validate/validator_group.rb:88:in `invoke'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/validate.rb:86:in `block (2 levels) in invoke_validators_by_name'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/cli/exec_group.rb:68:in `map'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/cli/exec_group.rb:68:in `exit_code'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/validate.rb:90:in `invoke_validators_by_name'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/cli/validate.rb:99:in `block (2 levels) in <module:CLI>'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/cri-2.15.12/lib/cri/command.rb:362:in `run_this'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/cri-2.15.12/lib/cri/command.rb:298:in `run'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/cri-2.15.12/lib/cri/command.rb:316:in `run'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/cli.rb:58:in `run'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/exe/pdk:6:in `<top (required)>'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/bin/pdk:25:in `load'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/bin/pdk:25:in `<main>'
/opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/validate/yaml/yaml_syntax_validator.rb:52:in `validate_target': uninitialized constant YAML (NameError)
::YAML.safe_load(PDK::Util::Filesystem.read_file(target), permitted_classes: YAML_ALLOWLISTED_CLASSES, permitted_symbols: [], aliases: true)
^^^^^^
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/validate/internal_ruby_validator.rb:66:in `block in invoke'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/validate/internal_ruby_validator.rb:65:in `each'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/validate/internal_ruby_validator.rb:65:in `invoke'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/validate/validator_group.rb:89:in `block in invoke'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/validate/validator_group.rb:88:in `each'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/validate/validator_group.rb:88:in `invoke'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/validate.rb:86:in `block (2 levels) in invoke_validators_by_name'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/cli/exec_group.rb:68:in `map'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/cli/exec_group.rb:68:in `exit_code'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/validate.rb:90:in `invoke_validators_by_name'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/cli/validate.rb:99:in `block (2 levels) in <module:CLI>'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/cri-2.15.12/lib/cri/command.rb:362:in `run_this'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/cri-2.15.12/lib/cri/command.rb:298:in `run'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/cri-2.15.12/lib/cri/command.rb:316:in `run'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/lib/pdk/cli.rb:58:in `run'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/lib/ruby/gems/3.2.0/gems/pdk-3.2.0/exe/pdk:6:in `<top (required)>'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/bin/pdk:25:in `load'
from /opt/puppetlabs/pdk/private/ruby/3.2.3/bin/pdk:25:in `<main>'
The previous version I had installed was 3.0.1.3-1jammy and had been working fine.
Jeff