[PDK-802] PDK Convert intermittently fails with bundling errors on Windows Created: 2018/02/07  Updated: 2018/06/21  Resolved: 2018/05/02

Status: Closed
Project: Puppet Development Kit
Component/s: None
Affects Version/s: None
Fix Version/s: PDK 1.6.0

Type: Bug Priority: Blocker
Reporter: Glenn Sarti Assignee: Jesse Scott
Resolution: Fixed Votes: 0
Labels: resolved-issue-added
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Windows 10 Pro 1709

Module: puppetlabs-reboot

PDK version 1.3.2


Issue Links:
Relates
relates to PUP-5588 Monkey patch attempts to load same ce... Closed
Template:
Acceptance Criteria:

pdk convert should not intermittently fail a bundle install

Epic Link: PDK Beaker Enablement
Team: Puppet Developer Experience
Method Found: Customer Feedback
Release Notes: Bug Fix
Release Notes Summary: There was a bug in the Ruby 'openssl' gem that caused a
race condition on Windows when loading certs. See https://bugs.ruby-lang.org/issues/11033 for background.

This is the caused ruby to throw an SSLError when PDK attempts to bundle install gem dependencies on Windows.

Inside PDK packages it should only be an issue on the Ruby 2.1.9
bundler invocations.
QA Risk Assessment: Needs Assessment

 Description   

---
appveyor.yml:
environment:
PUPPET_GEM_VERSION: "~> 4.0"
matrix:
- RUBY_VERSION: 24-x64
CHECK: "syntax lint"
- RUBY_VERSION: 24-x64
CHECK: metadata_lint
- RUBY_VERSION: 24-x64
CHECK: rubocop
 
.travis.yml:
bundle_args: --without system_tests
docker_sets:
- set: docker/centos-7
options:
- set: docker/ubuntu-14.04
options:
docker_defaults:
bundler_args: ""
secure: ""
branches:
- release
extras:
- rvm: 2.1.9
script: "\"bundle exec rake release_checks\""
 
Gemfile:
required:
':system_tests':
- gem: 'puppet-module-posix-system-r#{minor_version}'
platforms: ruby
- gem: 'puppet-module-win-system-r#{minor_version}'
platforms:
- mswin
- mingw
- x64_mingw
- gem: beaker
version: '~> 3.13'
from_env: BEAKER_VERSION
- gem: beaker-abs
from_env: BEAKER_ABS_VERSION
version: '~> 0.1'
- gem: beaker-pe
- gem: beaker-hostgenerator
from_env: BEAKER_HOSTGENERATOR_VERSION
- gem: beaker-rspec
from_env: BEAKER_RSPEC_VERSION
':development':
- gem: puppet-blacksmith
version: '~> 3.4'
 
Rakefile:
requires:
- puppet_blacksmith/rake_tasks

  • Run pdk convert
  • Output

C:\Source\puppetlabs-reboot [MODULES-6371-pdk-convert +0 ~1 -0 !]> pdk convert
 
------------Files to be added-----------
.gitlab-ci.yml
.pmtignore
.yardopts
spec/default_facts.yml
 
----------Files to be modified----------
metadata.json
.gitignore
.travis.yml
appveyor.yml
Gemfile
Rakefile
spec/spec_helper.rb
 
----------------------------------------
 
You can find a report of differences in convert_report.txt.
 
Do you want to continue and make these changes to your module? Yes
[X] Installing missing Gemfile dependencies.
pdk (FATAL): The dependency puppet-module-posix-default-r2.1 (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for x64-mingw32 but the dependency is only for ruby. To add those platforms to the bundle, run `bundle lock --add-platform ruby`.
The dependency puppet-module-posix-dev-r2.1 (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for x64-mingw32 but the dependency is only for ruby. To add those platforms to the bundle, run `bundle lock --add-platform ruby`.
The dependency puppet-module-posix-system-r2.1 (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for x64-mingw32 but the dependency is only for ruby. To add those platforms to the bundle, run `bundle lock --add-platform ruby`.
Fetching gem metadata from https://rubygems.org/..........
Fetching version metadata from https://rubygems.org/..
Resolving dependencies......
Using rake 12.3.0
Using fast_gettext 1.1.1
Using json 1.8.1
Using mini_portile2 2.1.0
Using ffi 1.9.18 (x64-mingw32)
Using locale 2.1.2
Using text 1.3.1
Using public_suffix 3.0.1
Using spdx-licenses 1.1.0
Using metaclass 0.0.4
Using parallel 1.12.1
Using coderay 1.1.2
Using method_source 0.8.2
Using slop 3.6.0
Using puppet-lint 2.3.3
Using hiera 3.4.2
Using minitar 0.6.1
Using rspec-support 3.7.0
Using diff-lcs 1.3
Using jgrep 1.5.0
Using stomp 1.4.4
Using systemu 2.6.5
Using ast 2.3.0
Using powerpack 0.1.1
Using ruby-progressbar 1.9.0
Using unicode-display_width 1.3.0
Using net-ssh 4.2.0
Using net-telnet 0.1.1
Using sfl 2.3
Fetching unf_ext 0.0.7.5 (x64-mingw32)
Fetching mime-types 2.99.3
Fetching netrc 0.11.0
Installing netrc 0.11.0
Installing mime-types 2.99.3
Fetching beaker-i18n_helper 1.1.0
Installing beaker-i18n_helper 1.1.0
Fetching beaker-abs 0.4.0
Fetching stringify-hash 0.0.2
Installing beaker-abs 0.4.0
Installing stringify-hash 0.0.2
Fetching excon 0.60.0
Fetching multi_json 1.13.1
Fetching multipart-post 2.0.0
Installing multipart-post 2.0.0
Installing multi_json 1.13.1
Installing excon 0.60.0
Fetching jwt 2.1.0
Fetching little-plugger 1.1.4
Installing jwt 2.1.0
Installing little-plugger 1.1.4
Fetching memoist 0.16.0
Installing memoist 0.16.0
Fetching os 0.9.6
Installing os 0.9.6
Fetching httpclient 2.8.3
Fetching hurley 0.2
Installing hurley 0.2
Installing httpclient 2.8.3
Fetching declarative 0.0.10
Installing declarative 0.0.10
Fetching declarative-option 0.1.0
Installing declarative-option 0.1.0
Fetching uber 0.1.0
Fetching retriable 3.1.1
Installing uber 0.1.0
Installing retriable 3.1.1
Fetching deep_merge 1.2.1
Fetching builder 3.2.3
Using formatador 0.2.5
Fetching ipaddress 0.8.3
Installing deep_merge 1.2.1
Installing builder 3.2.3
Fetching in-parallel 0.1.17
Installing ipaddress 0.8.3
Installing in-parallel 0.1.17
Fetching ansi 1.5.0
Fetching CFPropertyList 2.3.6
Fetching trollop 2.1.2
Installing CFPropertyList 2.3.6
Installing ansi 1.5.0
Installing trollop 2.1.2
Fetching hocon 1.2.5
Fetching inifile 3.0.0
Installing inifile 3.0.0
Installing hocon 1.2.5
Fetching minitest 5.11.3
Fetching open_uri_redirections 0.2.1
Installing minitest 5.11.3
Installing open_uri_redirections 0.2.1
Fetching byebug 9.0.6
Fetching rb-readline 0.5.5
Installing byebug 9.0.6 with native extensions
Installing rb-readline 0.5.5
Fetching rsync 1.0.9
Installing rsync 1.0.9
Using thor 0.20.0
Fetching beaker-task_helper 1.2.0
Fetching require_all 1.3.3
Installing beaker-task_helper 1.2.0
Installing require_all 1.3.3
Using bundler 1.15.1
Using puppet-syntax 2.4.1
Using rainbow 2.2.2
Using nokogiri 1.7.2 (x64-mingw32)
Using win32-dir 0.4.9
Using win32-eventlog 0.6.5
Using win32-process 0.7.5
Using win32-security 0.2.5
Using win32-service 0.8.8
Using facter 2.5.1 (x64-mingw32)
Using gettext 3.2.6
Using addressable 2.5.2
Using mocha 1.1.0
Using parallel_tests 2.14.2
Using pry 0.10.4
Using rspec-core 3.7.1
Using rspec-expectations 3.7.0
Using rspec-mocks 3.7.0
Using mcollective-client 2.11.4
Using parser 2.4.0.2
Using net-scp 1.2.1
OpenSSL::SSL::SSLError: SSL_read: cert already in hash table
An error occurred while installing unf_ext (0.0.7.5), and Bundler cannot
continue.
Make sure that `gem install unf_ext -v '0.0.7.5'` succeeds before bundling.
 
In Gemfile:
puppet-blacksmith was resolved to 3.4.0, which depends on
rest-client was resolved to 1.8.0, which depends on
http-cookie was resolved to 1.0.3, which depends on
domain_name was resolved to 0.5.20170404, which depends on
unf was resolved to 0.1.4, which depends on
unf_ext
 
 
pdk (FATAL): Unable to install missing Gemfile dependencies.
C:\Source\puppetlabs-reboot [MODULES-6371-pdk-convert +4 ~8 -0 !]>



 Comments   
Comment by Glenn Sarti [ 2018/02/07 ]

Subsequent `pdk test unit` fails in different spots.  There appears to be an intermittent race condition in play

C:\Source\puppetlabs-reboot [MODULES-6371-pdk-convert +4 ~8 -0 !]> pdk test unit
[X] Installing missing Gemfile dependencies.
pdk (FATAL): The dependency puppet-module-posix-default-r2.1 (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for x64-mingw32 but the dependency is only for ruby. To add those platforms to the bundle, run `bundle lock --add-platform ruby`.
The dependency puppet-module-posix-dev-r2.1 (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for x64-mingw32 but the dependency is only for ruby. To add those platforms to the bundle, run `bundle lock --add-platform ruby`.
The dependency puppet-module-posix-system-r2.1 (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for x64-mingw32 but the dependency is only for ruby. To add those platforms to the bundle, run `bundle lock --add-platform ruby`.
Fetching gem metadata from https://rubygems.org/..........
Fetching version metadata from https://rubygems.org/..
Resolving dependencies......
Using rake 12.3.0
Using fast_gettext 1.1.1
Using json 1.8.1
Using mini_portile2 2.1.0
Using ffi 1.9.18 (x64-mingw32)
Using locale 2.1.2
Using text 1.3.1
Using public_suffix 3.0.1
Using spdx-licenses 1.1.0
Using metaclass 0.0.4
Using parallel 1.12.1
Using coderay 1.1.2
Using method_source 0.8.2
Using slop 3.6.0
Using puppet-lint 2.3.3
Using hiera 3.4.2
Using minitar 0.6.1
Using rspec-support 3.7.0
Using diff-lcs 1.3
Using jgrep 1.5.0
Using stomp 1.4.4
Using systemu 2.6.5
Using ast 2.3.0
Using powerpack 0.1.1
Using ruby-progressbar 1.9.0
Using unicode-display_width 1.3.0
Using net-ssh 4.2.0
Using net-telnet 0.1.1
Using sfl 2.3
Fetching unf_ext 0.0.7.5 (x64-mingw32)
Using mime-types 2.99.3
Using netrc 0.11.0
Using beaker-i18n_helper 1.1.0
Using beaker-abs 0.4.0
Using stringify-hash 0.0.2
Using excon 0.60.0
Using multi_json 1.13.1
Using multipart-post 2.0.0
Using jwt 2.1.0
Using little-plugger 1.1.4
Using memoist 0.16.0
Using os 0.9.6
Using httpclient 2.8.3
Using hurley 0.2
Using declarative 0.0.10
Using declarative-option 0.1.0
Using uber 0.1.0
Using retriable 3.1.1
Using deep_merge 1.2.1
Using builder 3.2.3
Using formatador 0.2.5
Using ipaddress 0.8.3
Using in-parallel 0.1.17
Using ansi 1.5.0
Using CFPropertyList 2.3.6
Using trollop 2.1.2
Using hocon 1.2.5
Using inifile 3.0.0
Using minitest 5.11.3
Using open_uri_redirections 0.2.1
Fetching byebug 9.0.6
Using rb-readline 0.5.5
Using rsync 1.0.9
Using thor 0.20.0
Using beaker-task_helper 1.2.0
Using require_all 1.3.3
Using bundler 1.15.1
Using puppet-syntax 2.4.1
Using rainbow 2.2.2
Using nokogiri 1.7.2 (x64-mingw32)
Installing byebug 9.0.6 with native extensions
Using win32-dir 0.4.9
Using win32-eventlog 0.6.5
Using win32-process 0.7.5
Using win32-security 0.2.5
Using win32-service 0.8.8
Using facter 2.5.1 (x64-mingw32)
Using gettext 3.2.6
Using addressable 2.5.2
Using mocha 1.1.0
Using parallel_tests 2.14.2
Using pry 0.10.4
Using rspec-core 3.7.1
Using rspec-expectations 3.7.0
Using rspec-mocks 3.7.0
Using mcollective-client 2.11.4
Using parser 2.4.0.2
Using net-scp 1.2.1
Fetching beaker-hiera 0.1.1
Installing beaker-hiera 0.1.1
Fetching beaker-vagrant 0.2.0
Installing beaker-vagrant 0.2.0
Fetching beaker-vmpooler 1.2.0
Fetching docker-api 1.34.0
Fetching faraday 0.14.0
Installing beaker-vmpooler 1.2.0
Installing docker-api 1.34.0
Installing faraday 0.14.0
Fetching logging 2.2.2
Fetching representable 3.0.4
Installing logging 2.2.2
Installing representable 3.0.4
Fetching beaker-hostgenerator 1.1.7
Installing beaker-hostgenerator 1.1.7
Fetching fog-core 1.45.0
Installing fog-core 1.45.0
Fetching ruby-ll 2.1.2
Installing ruby-ll 2.1.2 with native extensions
Fetching fission 0.5.0
Installing fission 0.5.0
Fetching beaker-answers 0.22.0
Fetching aws-sdk-v1 1.67.0
Installing beaker-answers 0.22.0
Installing aws-sdk-v1 1.67.0
Fetching rbvmomi 1.11.6
Using puppet-module-win-default-r2.1 0.2.4
Using facterdb 0.4.1
Using gettext-setup 0.29
Using json-schema 2.8.0
Using rspec_junit_formatter 0.3.0
Fetching rspec-its 1.2.0
Installing rbvmomi 1.11.6
Installing rspec-its 1.2.0
Using rspec 3.7.0
Using rubocop 0.49.1
Using specinfra 2.67.3
OpenSSL::SSL::SSLError: SSL_read: cert already in hash table
An error occurred while installing unf_ext (0.0.7.5), and Bundler cannot
continue.
Make sure that `gem install unf_ext -v '0.0.7.5'` succeeds before bundling.
 
In Gemfile:
puppet-blacksmith was resolved to 3.4.0, which depends on
rest-client was resolved to 1.8.0, which depends on
http-cookie was resolved to 1.0.3, which depends on
domain_name was resolved to 0.5.20170404, which depends on
unf was resolved to 0.1.4, which depends on
unf_ext
 
 
[X] Cleaning up after running unit tests.
pdk (ERROR): The spec_clean rake task failed with the following error(s):
 
C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/resolver.rb:396:in `block in verify_gemfile_dependencies_are_found!': Could not find gem 'puppet-blacksmith (~> 3.4) x64-mingw32' in any of the gem sources listed in your Gemfile. (Bundler::GemNotFound)
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/resolver.rb:366:in `each'
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/resolver.rb:366:in `verify_gemfile_dependencies_are_found!'
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/resolver.rb:212:in `start'
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/resolver.rb:191:in `resolve'
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/definition.rb:235:in `resolve'
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/definition.rb:159:in `specs'
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/definition.rb:218:in `specs_for'
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/definition.rb:207:in `requested_specs'
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/runtime.rb:109:in `block in definition_method'
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/runtime.rb:21:in `setup'
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler.rb:101:in `setup'
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/setup.rb:20:in `<top (required)>'
from C:/PROGRA~1/PUPPET~1/DEVELO~1/private/ruby/2.1.9/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:128:in `require'
from C:/PROGRA~1/PUPPET~1/DEVELO~1/private/ruby/2.1.9/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:128:in `rescue in require'
from C:/PROGRA~1/PUPPET~1/DEVELO~1/private/ruby/2.1.9/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:39:in `require'
from C:/Source/puppetlabs-reboot/bin/rake:15:in `<main>'
 
pdk (FATAL): Failed to clean up after running unit tests
C:\Source\puppetlabs-reboot [MODULES-6371-pdk-convert +4 ~8 -0 !]>

and again...

C:\Source\puppetlabs-reboot [MODULES-6371-pdk-convert +4 ~8 -0 !]> pdk test unit
[X] Installing missing Gemfile dependencies.
pdk (FATAL): The dependency puppet-module-posix-default-r2.1 (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for x64-mingw32 but the dependency is only for ruby. To add those platforms to the bundle, run `bundle lock --add-platform ruby`.
The dependency puppet-module-posix-dev-r2.1 (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for x64-mingw32 but the dependency is only for ruby. To add those platforms to the bundle, run `bundle lock --add-platform ruby`.
The dependency puppet-module-posix-system-r2.1 (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for x64-mingw32 but the dependency is only for ruby. To add those platforms to the bundle, run `bundle lock --add-platform ruby`.
Fetching gem metadata from https://rubygems.org/..........
Fetching version metadata from https://rubygems.org/..
Resolving dependencies......
Using rake 12.3.0
Using fast_gettext 1.1.1
Using json 1.8.1
Using mini_portile2 2.1.0
Using ffi 1.9.18 (x64-mingw32)
Using locale 2.1.2
Using text 1.3.1
Using public_suffix 3.0.1
Using spdx-licenses 1.1.0
Using metaclass 0.0.4
Using parallel 1.12.1
Using coderay 1.1.2
Using method_source 0.8.2
Using slop 3.6.0
Using puppet-lint 2.3.3
Using hiera 3.4.2
Using minitar 0.6.1
Using rspec-support 3.7.0
Using diff-lcs 1.3
Using jgrep 1.5.0
Using stomp 1.4.4
Using systemu 2.6.5
Using ast 2.3.0
Using powerpack 0.1.1
Using ruby-progressbar 1.9.0
Using unicode-display_width 1.3.0
Using net-ssh 4.2.0
Using net-telnet 0.1.1
Using sfl 2.3
Fetching unf_ext 0.0.7.5 (x64-mingw32)
Using mime-types 2.99.3
Using netrc 0.11.0
Using beaker-i18n_helper 1.1.0
Using beaker-abs 0.4.0
Using stringify-hash 0.0.2
Using excon 0.60.0
Using multi_json 1.13.1
Using multipart-post 2.0.0
Using jwt 2.1.0
Using little-plugger 1.1.4
Using memoist 0.16.0
Using os 0.9.6
Using httpclient 2.8.3
Using hurley 0.2
Using declarative 0.0.10
Using declarative-option 0.1.0
Using uber 0.1.0
Using retriable 3.1.1
Using deep_merge 1.2.1
Using builder 3.2.3
Using formatador 0.2.5
Using ipaddress 0.8.3
Using in-parallel 0.1.17
Using ansi 1.5.0
Using CFPropertyList 2.3.6
Using trollop 2.1.2
Using hocon 1.2.5
Using inifile 3.0.0
Using minitest 5.11.3
Using open_uri_redirections 0.2.1
Fetching byebug 9.0.6
Using rb-readline 0.5.5
Using rsync 1.0.9
Using thor 0.20.0
Using beaker-task_helper 1.2.0
Using require_all 1.3.3
Using bundler 1.15.1
Installing byebug 9.0.6 with native extensions
Using puppet-syntax 2.4.1
Using rainbow 2.2.2
Using nokogiri 1.7.2 (x64-mingw32)
Using win32-dir 0.4.9
Using win32-eventlog 0.6.5
Using win32-process 0.7.5
Using win32-security 0.2.5
Using win32-service 0.8.8
Using facter 2.5.1 (x64-mingw32)
Using gettext 3.2.6
Using addressable 2.5.2
Using mocha 1.1.0
Using parallel_tests 2.14.2
Using pry 0.10.4
Using rspec-core 3.7.1
Using rspec-expectations 3.7.0
Using rspec-mocks 3.7.0
Using mcollective-client 2.11.4
Using parser 2.4.0.2
Using net-scp 1.2.1
Using beaker-hiera 0.1.1
Using beaker-vagrant 0.2.0
Using beaker-vmpooler 1.2.0
Using docker-api 1.34.0
Using faraday 0.14.0
Using logging 2.2.2
Using representable 3.0.4
Using beaker-hostgenerator 1.1.7
Using fog-core 1.45.0
Fetching ruby-ll 2.1.2
Installing ruby-ll 2.1.2 with native extensions
Using fission 0.5.0
Using beaker-answers 0.22.0
Using aws-sdk-v1 1.67.0
Using rbvmomi 1.11.6
Using puppet-module-win-default-r2.1 0.2.4
Using facterdb 0.4.1
Using gettext-setup 0.29
Using json-schema 2.8.0
Using rspec_junit_formatter 0.3.0
Using rspec-its 1.2.0
Using rspec 3.7.0
Using rubocop 0.49.1
Using specinfra 2.67.3
Fetching beaker-docker 0.3.0
Installing beaker-docker 0.3.0
Fetching signet 0.8.1
Fetching fog-json 1.0.2
Installing fog-json 1.0.2
Installing signet 0.8.1
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
 
C:/PROGRA~1/PUPPET~1/DevelopmentKit/private/ruby/2.1.9/bin/ruby.exe -r
./siteconf20180207-27056-g0la5c.rb extconf.rb
creating Makefile
 
make "DESTDIR=" clean
'make' is not recognized as an internal or external command,
operable program or batch file.
 
make "DESTDIR="
'make' is not recognized as an internal or external command,
operable program or batch file.
 
make failed, exit code 1
 
Gem files will remain installed in
C:/Users/glenn.sarti/AppData/Local/PDK/cache/ruby/2.1.0/gems/ruby-ll-2.1.2 for
inspection.
Results logged to
C:/Users/glenn.sarti/AppData/Local/PDK/cache/ruby/2.1.0/extensions/x64-mingw32/2.1.0/ruby-ll-2.1.2/gem_make.out
 
An error occurred while installing ruby-ll (2.1.2), and Bundler cannot continue.
Make sure that `gem install ruby-ll -v '2.1.2'` succeeds before bundling.
 
In Gemfile:
puppet-module-win-system-r2.1 was resolved to 0.2.4, which depends on
beaker-module_install_helper was resolved to 0.1.7, which depends on
beaker was resolved to 3.31.0, which depends on
beaker-puppet was resolved to 0.10.0, which depends on
oga was resolved to 2.14, which depends on
ruby-ll
 
 
[X] Cleaning up after running unit tests.
pdk (ERROR): The spec_clean rake task failed with the following error(s):
 
C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/resolver.rb:396:in `block in verify_gemfile_dependencies_are_found!': Could not find gem 'puppet-blacksmith (~> 3.4) x64-mingw32' in any of the gem sources listed in your Gemfile. (Bundler::GemNotFound)
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/resolver.rb:366:in `each'
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/resolver.rb:366:in `verify_gemfile_dependencies_are_found!'
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/resolver.rb:212:in `start'
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/resolver.rb:191:in `resolve'
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/definition.rb:235:in `resolve'
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/definition.rb:159:in `specs'
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/definition.rb:218:in `specs_for'
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/definition.rb:207:in `requested_specs'
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/runtime.rb:109:in `block in definition_method'
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/runtime.rb:21:in `setup'
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler.rb:101:in `setup'
from C:/PROGRA~1/PUPPET~1/DevelopmentKit/share/cache/ruby/2.1.0/gems/bundler-1.15.1/lib/bundler/setup.rb:20:in `<top (required)>'
from C:/PROGRA~1/PUPPET~1/DEVELO~1/private/ruby/2.1.9/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:128:in `require'
from C:/PROGRA~1/PUPPET~1/DEVELO~1/private/ruby/2.1.9/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:128:in `rescue in require'
from C:/PROGRA~1/PUPPET~1/DEVELO~1/private/ruby/2.1.9/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:39:in `require'
from C:/Source/puppetlabs-reboot/bin/rake:15:in `<main>'
 
pdk (FATAL): Failed to clean up after running unit tests
C:\Source\puppetlabs-reboot [MODULES-6371-pdk-convert +4 ~8 -0 !]>

Comment by Glenn Sarti [ 2018/02/07 ]

Seems to be a manifestation of https://groups.google.com/forum/#!topic/puppet-users/t-KLARupllw/discussion and https://tickets.puppetlabs.com/browse/PUP-734

I've seen this before on Windows and ruby throwing a fit.... Trying to find the monkey patch I did....

There it is...

https://github.com/puppetlabs/puppet/blob/2b7b4ed6b692bf595d4f95012a6a132024c991cb/lib/puppet/util/monkey_patches.rb#L55-L81

https://github.com/puppetlabs/puppet/commit/35572a9b8a9fa5e82ff2ef4b862fa02669c442db

Comment by Glenn Sarti [ 2018/02/08 ]

Raising to blocker as I'm unable to perform PDK convert or do unit tests

Comment by Jesse Scott [ 2018/04/30 ]

The second test unit failure seems to be an unrelated native extension compilation issue, going to isolate this ticket down to the "cert already in hash table" bundler issues which seem to trace their way back to https://bugs.ruby-lang.org/issues/11033

I've opened a PR which disables the parallelization of `bundle install` on unpatched platform/Ruby version combos. (Essentially Windows with < Ruby 2.3.5)

Comment by Jesse Scott [ 2018/05/02 ]

PR was merged so hopefully this resolves the "cert already in hash table" issues at least.

Generated at Wed Nov 20 21:27:25 PST 2019 using JIRA 7.7.1#77002-sha1:e75ca93d5574d9409c0630b81c894d9065296414.