Uploaded image for project: 'Puppet Development Kit'
  1. Puppet Development Kit
  2. PDK-802

PDK Convert intermittently fails with bundling errors on Windows

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: PDK 1.6.0
    • Component/s: None
    • Environment:

      Windows 10 Pro 1709

      Module: puppetlabs-reboot

      PDK version 1.3.2

    • Template:
    • Acceptance Criteria:
      Hide

      pdk convert should not intermittently fail a bundle install

      Show
      pdk convert should not intermittently fail a bundle install
    • Team:
      Puppet Developer Experience
    • Method Found:
      Customer Feedback
    • Release Notes:
      Bug Fix
    • Release Notes Summary:
      Hide
      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.
      Show
      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 !]>

        Attachments

          Issue Links

            Activity

              jsd-sla-details-panel

                People

                • Assignee:
                  jesse Jesse Scott
                  Reporter:
                  glenn.sarti Glenn Sarti
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  4 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: