puppetlabs / bolt

Bolt is an open source orchestration tool that automates the manual work it takes to maintain your infrastructure on an as-needed basis or as part of a greater orchestration workflow. It can be installed on your local workstation and connects directly to remote nodes with SSH or WinRM, so you are not required to install any agent software.
https://puppet.com/docs/bolt/latest/bolt.html
Apache License 2.0
492 stars 222 forks source link

Sometimes modules take a very long time to install #3239

Open wilful opened 9 months ago

wilful commented 9 months ago
image

Describe the Bug

Sometimes, during the installation of the module, the processor starts to take 100% and the installation itself may take several hours. Try on MacAir/MacMini/Linux Rocky

Expected Behavior

The usual installation takes little time

Steps to Reproduce

This happens sometimes when adding a new module to a project

bolt module add openstack-glance
modules:
- puppetlabs/git
- puppet/consul
- puppet/nomad
- puppetlabs/docker
- puppet/vault
- puppet/vault_lookup
- puppet/ssh_keygen
- puppetlabs/vcsrepo
- puppet/archive
- puppet/extlib
- puppetlabs/firewall
- puppet/wireguard
- puppetlabs/inifile
- saz/timezone
- puppet/chrony
- puppet/systemd
- puppet/ferm
- puppetlabs/lvm
- saz/ssh
- openstack/keystone
- puppetlabs/apache

Strace bolt process

futex(0x11ab320, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x11ab390, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY) = 0
futex(0x11ab320, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x4165844, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x11ab320, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x11ab394, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, NULL, FUTEX_BITSET_MATCH_ANY) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x11ab320, FUTEX_WAKE_PRIVATE, 1) = 0

Environment

❯ bolt --version 3.26.2 MacOS - Version 13.2.1 (22D68)

wilful commented 9 months ago
image

On my MacMini the same problem when installing and on Rocky linux

image

512 min spended

donoghuc commented 9 months ago

Thanks for reporting this! I have heard some reports of this. I think there may be a bug in dependency resolution in an underlying puppetfile-resolver library. I have not had a chance to dig in to that but this is helpful information.

davidsandilands commented 2 weeks ago

I suspect this is related to https://github.com/puppetlabs/bolt/issues/3226