Skip to content

(3.8.0 - 3.9.3) ParallelCluster Build Image Failing during Installation of Minitar Ruby Gem Dependency  #6405

@himani2411

Description

@himani2411

The issue

During pcluster build-image, ParallelCluster installs Berkshelf gems for dependency management. Minitar is a dependency of Berkshelf. On Tuesday, August 6, Minitar released 2 different versions, v1.0.0 and last version of minitar v0.12 with the deprecated archive-tar-minitar v0.12.

The latest minitar v1.0.0 removed the Archive::Tar namespace and archive/tar path as they have been deprecated since 2017. And moved the executable in a separate minitar-cli package. These changes in minitar v 1.0.0+ causes failure in Berkshelf installation and hence the ParallelCluster Build Image fails.

Reference to Berkshelf Installation Failure chef/berkshelf#26

Error details

ParallelCluster fails to build images. The error surfaced by ParallelCluster Build Image is:

pcluster describe-image --image-id $IMAGE_ID | jq ".imagebuilderImageStatusReason"

Error occurred during operation 'Workflow Execution ID: 'wf-xxxxxx-xxxxxx-xxxxxx-xxxxxx-xxxxxx' failed with reason: Document arn:<APRTITION>:imagebuilder:<REGION>:<ACCOUNT_ID>:component/parallelclusterimage-*/<parallelcluster-version>/1 failed!'

And, below is the snippet of the failure in ParallelCluster Build Image Logs which you can capture using pcluster export-image-logs - AWS ParallelCluster

 LANG=en_US.UTF-8 sudo /opt/cinc/embedded/bin/berks vendor /etc/chef/cookbooks --delete || (echo 'Vendoring cookbook failed.' && exit 1)
done;
<internal:/opt/cinc/embedded/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- archive/tar/minitar (LoadError)
 from <internal:/opt/cinc/embedded/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
 from /opt/cinc/embedded/lib/ruby/gems/3.1.0/gems/berkshelf-8.0.7/lib/berkshelf/packager.rb:1:in `<top (required)>'
 from /opt/cinc/embedded/lib/ruby/gems/3.1.0/gems/berkshelf-8.0.7/lib/berkshelf/berksfile.rb:1:in `require_relative'
 from /opt/cinc/embedded/lib/ruby/gems/3.1.0/gems/berkshelf-8.0.7/lib/berkshelf/berksfile.rb:1:in `<top (required)>'
 from /opt/cinc/embedded/lib/ruby/gems/3.1.0/gems/berkshelf-8.0.7/lib/berkshelf.rb:222:in `require_relative'
 from /opt/cinc/embedded/lib/ruby/gems/3.1.0/gems/berkshelf-8.0.7/lib/berkshelf.rb:222:in `<top (required)>'
 from /opt/cinc/embedded/lib/ruby/gems/3.1.0/gems/berkshelf-8.0.7/lib/berkshelf/cli.rb:1:in `require_relative'
 from /opt/cinc/embedded/lib/ruby/gems/3.1.0/gems/berkshelf-8.0.7/lib/berkshelf/cli.rb:1:in `<top (required)>'
 from <internal:/opt/cinc/embedded/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
 from <internal:/opt/cinc/embedded/lib/ruby/3.1.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
 from /opt/cinc/embedded/lib/ruby/gems/3.1.0/gems/berkshelf-8.0.7/bin/berks:3:in `<top (required)>'
 from /opt/cinc/embedded/bin/berks:25:in `load'
 from /opt/cinc/embedded/bin/berks:25:in `<main>'

Affected versions

This issue impacts ParallelCluster versions from 3.8.0 to 3.9.3, across all OSes, schedulers.

Mitigation

You can find a detailed explanation and the mitigation of the problem in Wiki here

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions