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

PUP-11722 causing pdk to fail in 4.x with "NameError: uninitialized constant Concurrent::RubyThreadLocalVar" #127

Open
threepistons opened this issue Jan 27, 2023 · 0 comments
Labels
bug Something isn't working

Comments

@threepistons
Copy link

threepistons commented Jan 27, 2023

Describe the Bug

pdk validate fails with

pdk (INFO): Using Ruby 2.5.9
pdk (INFO): Using Puppet 6.28.0
pdk (ERROR): The spec_clean rake task failed with the following error(s):

rake aborted!
NameError: uninitialized constant Concurrent::RubyThreadLocalVar
Did you mean?  Concurrent::RubyThreadPoolExecutor

PUP-11722 describes the root cause, which is now resolved in Puppet with the release of gems 6.29.0 and 7.22.0.

The problem for me, as a consumer of the puppet-dev-tools Docker image, is that the puppet gems 6.29.0 and 7.22.0 aren't available to my workflow, even though they are in Rubygems and I have verified (7.22.0, 6.29.0) that they can be installed with gem into a vanilla Ubuntu container.

Expected Behavior

When I: use tag 1.0.0 of my controlrepo checking action, that worked up until recently, with no specified concurrent-ruby gem version in my site/roles/Gemfile and site/profiles/Gemfile.
And I: specify Puppet gem version 6.29.0 or 7.22.0 in my Github workflow file unittests.yml.txt
I get (if I put the block for testing 7.22.0 first):

+-------------------+
| Test the profiles |
+-------------------+
pdk (WARN): This module is compatible with an older version of PDK. Run `pdk update` to update it to your version of PDK.
pdk (ERROR): Unable to find a Puppet gem matching ~> 7.22.0.
/entrypoint.sh: line 27: return: can only `return' from a function or sourced script
pdk (WARN): This module is compatible with an older version of PDK. Run `pdk update` to update it to your version of PDK.
/opt/puppetlabs/pdk/private/ruby/2.5.9/lib/ruby/2.5.0/forwardable.rb:229: warning: Insecure world writable dir /usr/local/bundle in PATH, mode 040777
pdk (ERROR): Unable to find a Puppet gem matching ~> 7.22.0.
/entrypoint.sh: line 28: return: can only `return' from a function or sourced script

+----------------+
| Test the roles |
+----------------+
pdk (WARN): This module is compatible with an older version of PDK. Run `pdk update` to update it to your version of PDK.
pdk (ERROR): Unable to find a Puppet gem matching ~> 7.22.0.
/entrypoint.sh: line 33: return: can only `return' from a function or sourced script
pdk (WARN): This module is compatible with an older version of PDK. Run `pdk update` to update it to your version of PDK.
/opt/puppetlabs/pdk/private/ruby/2.5.9/lib/ruby/2.5.0/forwardable.rb:229: warning: Insecure world writable dir /usr/local/bundle in PATH, mode 040777
pdk (ERROR): Unable to find a Puppet gem matching ~> 7.22.0.
/entrypoint.sh: line 34: return: can only `return' from a function or sourced script

And if I put 6.29.0 first, I get the same message but stating 6.29.0 instead of 7.22.0.

Steps to Reproduce

Go to https://github.com/threepistons/action-install-versioned-puppet-gem/actions and run each workflow in turn. The unittest workflow will contain a message like "pdk (ERROR): Unable to find a Puppet gem matching ~> 6.29.0." and the other two workflows will succeed to install Puppet with numbered Gems.

Environment

  • Version 4.x and recent tagged images from Docker
  • Platform Github Actions

Additional Context

You can work around this by using an earlier Puppet gem (e.g. 7.21.0 or 6.28.0) and adding gem 'concurrent-ruby', '< 1.2.0', require: false to your the development section of your Gemfile in both the roles and profiles modules of the controlrepo, as suggested in PUP-11722.

@threepistons threepistons added the bug Something isn't working label Jan 27, 2023
@threepistons threepistons changed the title PUP-11722 causing pdk to fail in 4.x and last three tagged images PUP-11722 causing pdk to fail in 4.x with "NameError: uninitialized constant Concurrent::RubyThreadLocalVar" Jan 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant