hashicorp / vagrant

Vagrant is a tool for building and distributing development environments.
https://www.vagrantup.com
Other
26.28k stars 4.43k forks source link

Unable to activate vagrant_cloud-3.1.1, because rexml-3.3.2 conflicts with rexml (~> 3.2.5) #13502

Closed alexandrosomegas closed 1 month ago

alexandrosomegas commented 1 month ago

Debug output

vagrant reload /usr/lib/ruby/3.2.0/rubygems/specification.rb:2303:in raise_if_conflicts': Unable to activate vagrant_cloud-3.1.1, because rexml-3.3.2 conflicts with rexml (~> 3.2.5) (Gem::ConflictError) from /usr/lib/ruby/3.2.0/rubygems/specification.rb:1432:inactivate' from /usr/lib/ruby/3.2.0/rubygems/core_ext/kernel_gem.rb:63:in block in gem' from /usr/lib/ruby/3.2.0/rubygems/core_ext/kernel_gem.rb:63:insynchronize' from /usr/lib/ruby/3.2.0/rubygems/core_ext/kernel_gem.rb:63:in gem' from /opt/vagrant/embedded/gems/gems/vagrant-2.4.1/bin/vagrant:95:inblock (2 levels) in

' from /opt/vagrant/embedded/gems/gems/vagrant-2.4.1/bin/vagrant:94:in each' from /opt/vagrant/embedded/gems/gems/vagrant-2.4.1/bin/vagrant:94:inblock in
' from /opt/vagrant/embedded/gems/gems/vagrant-2.4.1/bin/vagrant:105:in `
'

Expected behavior

Actual behavior

Reproduction information

This happened after today full system update on Arch Linux (yay -Syu)

resolving dependencies... looking for conflicting packages...

Packages (9) gnome-nibbles-4.1.0-1 iwd-2.22-1 php-mongodb-1.19.4-1 ruby-3.2.5-2 ruby-bundled-gems-3.2.5-2 ruby-default-gems-3.2.5-2 ruby-rexml-3.3.2-1 ruby-stdlib-3.2.5-2 wayland-1.23.1-1

Total Download Size: 6.02 MiB Total Installed Size: 24.42 MiB Net Upgrade Size: 0.63 MiB

:: Proceed with installation? [Y/n] :: Retrieving packages... ruby-3.2.5-2-x86_64 4.0 MiB 17.4 MiB/s 00:00 [######################] 100% php-mongodb-1.19... 756.1 KiB 4.83 MiB/s 00:00 [######################] 100% iwd-2.22-1-x86_64 581.6 KiB 4.98 MiB/s 00:00 [######################] 100% gnome-nibbles-4.... 385.2 KiB 2.89 MiB/s 00:00 [######################] 100% ruby-rexml-3.3.2... 197.9 KiB 3.86 MiB/s 00:00 [######################] 100% wayland-1.23.1-1... 140.4 KiB 2.28 MiB/s 00:00 [######################] 100% ruby-bundled-gem... 4.6 KiB 97.8 KiB/s 00:00 [######################] 100% ruby-default-gem... 4.5 KiB 96.6 KiB/s 00:00 [######################] 100% ruby-stdlib-3.2.... 4.5 KiB 96.2 KiB/s 00:00 [######################] 100% Total (9/9) 6.0 MiB 4.29 MiB/s 00:01 [######################] 100% (9/9) checking keys in keyring [######################] 100% (9/9) checking package integrity [######################] 100% (9/9) loading package files [######################] 100% (9/9) checking for file conflicts [######################] 100% (9/9) checking available disk space [######################] 100% :: Processing package changes... (1/9) upgrading wayland [######################] 100% (2/9) upgrading gnome-nibbles [######################] 100% (3/9) upgrading iwd [######################] 100% (4/9) upgrading php-mongodb [######################] 100% (5/9) upgrading ruby [######################] 100% (6/9) upgrading ruby-rexml [######################] 100% (7/9) upgrading ruby-bundled-gems [######################] 100% (8/9) upgrading ruby-default-gems [######################] 100% (9/9) upgrading ruby-stdlib [######################] 100% :: Running post-transaction hooks... (1/6) Reloading system manager configuration... (2/6) Arming ConditionNeedsUpdate... (3/6) Reloading system bus configuration... (4/6) Compiling GSettings XML schema files... (5/6) Updating icon theme caches... (6/6) Updating the desktop file MIME type cache...

...

:: 10 packages to upgrade/install. 10 extra/gnome-nibbles 4.0.4-1.1 -> 4.1.0-1 9 extra/iwd 2.21-1 -> 2.22-1 8 extra/php-mongodb 1.19.3-1 -> 1.19.4-1 7 extra/ruby 3.2.5-1 -> 3.2.5-2 6 extra/ruby-bundled-gems 3.2.5-1 -> 3.2.5-2 5 extra/ruby-default-gems 3.2.5-1 -> 3.2.5-2 4 extra/ruby-rexml 3.2.6-2 -> 3.3.2-1 3 extra/ruby-stdlib 3.2.5-1 -> 3.2.5-2 2 extra/wayland 1.23.0-1 -> 1.23.1-1 1 aur/google-chrome 128.0.6613.119-1 -> 128.0.6613.137-1

Vagrant version

vagrant -v Vagrant 2.4.1

ruby -v ruby 3.2.5 (2024-07-26 revision 31d0f1a2e7) [x86_64-linux]

gem list

LOCAL GEMS

abbrev (default: 0.1.1) base64 (default: 0.1.1) benchmark (default: 0.2.1) bigdecimal (default: 3.1.3) bundler (default: 2.5.11) cgi (default: 0.3.6) csv (default: 3.2.6) date (default: 3.3.3) debug (1.7.1) delegate (default: 0.3.0) did_you_mean (default: 1.6.3) digest (default: 3.1.1) drb (default: 2.1.1) english (default: 0.7.2) erb (4.0.4) error_highlight (default: 0.5.1) etc (default: 1.4.2) fcntl (default: 1.0.2) fiddle (default: 1.1.1) fileutils (default: 1.7.0) find (default: 0.1.1) forwardable (default: 1.3.3) getoptlong (default: 0.2.0) io-console (default: 0.6.0) io-nonblock (default: 0.2.0) io-wait (default: 0.3.0) ipaddr (default: 1.2.5) irb (default: 1.6.2) json (default: 2.6.3) logger (default: 1.5.3) matrix (0.4.2) minitest (5.22.3) mutex_m (default: 0.1.2) net-ftp (0.3.5) net-http (default: 0.4.1) net-imap (0.4.12) net-pop (0.1.2) net-protocol (default: 0.2.1) net-smtp (0.5.0) nkf (default: 0.1.2) observer (default: 0.1.1) open-uri (default: 0.3.0) open3 (default: 0.1.2) openssl (default: 3.1.0) optparse (default: 0.3.1) ostruct (default: 0.5.5) pathname (default: 0.2.1) power_assert (2.0.3) pp (default: 0.4.0) prettyprint (default: 0.1.1) prime (0.1.2) pstore (default: 0.1.2) psych (default: 5.0.1) racc (default: 1.6.2) rake (13.0.6) rbs (3.4.4) rdoc (default: 6.5.1.1) readline (default: 0.0.3) readline-ext (default: 0.1.5) reline (default: 0.3.2) resolv (default: 0.2.2) resolv-replace (default: 0.1.1) rexml (3.3.2) rinda (default: 0.1.1) rss (0.3.0) ruby2_keywords (default: 0.0.5) securerandom (default: 0.2.2) set (default: 1.0.3) shellwords (default: 0.1.0) singleton (default: 0.1.1) stringio (default: 3.0.4) strscan (default: 3.0.5) syntax_suggest (default: 1.1.0) syslog (default: 0.1.1) tempfile (default: 0.1.3) test-unit (3.6.2) time (default: 0.2.2) timeout (default: 0.3.1) tmpdir (default: 0.1.3) tsort (default: 0.1.1) typeprof (0.21.8) un (default: 0.2.1) uri (default: 0.12.2) weakref (default: 0.1.2) yaml (default: 0.2.1) zlib (default: 3.0.0)

virtualbox-7.0.20-1

Host operating system

Guest operating system

Steps to reproduce

vagrant reload or vagrant reload

# Copy-paste your Vagrantfile here. Remove any sensitive information such as passwords, authentication tokens, or email addresses.
Pierrotws commented 1 month ago

Work around is to revert ruby-rexml upgrade from 3.2.6 to 3.3.2

sudo pacman -U /var/cache/pacman/pkg/ruby-rexml-3.2.6-2-any.pkg.tar.zst

and then freeze upgrade in /etc/pacman.conf

IgnorePkg = ruby-rexml

If you're also using Virtualbox as backend, you also need workaround proposed here

alexandrosomegas commented 1 month ago

Thank you!

alexandrosomegas commented 1 month ago

An more easy option is to use 'downgrade' for downgrade:


sudo su work/stats [develop] » downgrade ruby-rexml loading packages... warning: downgrading package ruby-rexml (3.3.2-1 => 3.2.6-2) resolving dependencies... looking for conflicting packages...

Packages (1) ruby-rexml-3.2.6-2

Total Installed Size: 0.43 MiB Net Upgrade Size: -0.57 MiB

:: Proceed with installation? [Y/n] y (1/1) checking keys in keyring [#############################] 100% (1/1) checking package integrity [#############################] 100% (1/1) loading package files [#############################] 100% (1/1) checking for file conflicts [#############################] 100% (1/1) checking available disk space [#############################] 100% :: Processing package changes... (1/1) downgrading ruby-rexml [#############################] 100% :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... add ruby-rexml to IgnorePkg? [y/N] y


ndlrfz commented 1 month ago

For Archlinux and similar, you can use the previous version of ruby-rexml package from here:

https://archive.archlinux.org/packages/r/ruby-rexml/

For example:

wget https://archive.archlinux.org/packages/r/ruby-rexml/ruby-rexml-3.2.6-2-any.pkg.tar.zst
sudo pacman -U ruby-rexml-3.2.6-2-any.pkg.tar.zst
alexandrosomegas commented 1 month ago

Just info for Arch linux + yay users. Damn, today viertualbox went version up to unsupported version 7.1. (it could be expected since today is Friday 13th). downgrade to v 7.0.20-1

sudo su downgrade virtualbox-host-dkms and downgrade virtualbox

It worked for me. Problem could be that we don't know long we must keep virtualbox, virtualbox-host-dkms, ruby-rexml in IgnorePkg (probably till new version of vagrant will fix those conflicts?

Screenshot from 2024-09-13 07-53-08

mateuszR84 commented 1 month ago

@alexandrosomegas - did you run full system update before having this error? i did and now i have similar problem, but seems like downgrading virtualbox and dkms didn't work, now i've got error saying that the kernel module is not loaded. What is your current kernel version?

Edit: it works, steps to reproduce: downgrade virtualbox, downgrade virtualbox-host-dkms, run pacman -S linux linux-headers, reboot

leaveye commented 1 month ago

An more easy option is to use 'downgrade' for downgrade:

sudo su work/stats [develop] » downgrade ruby-rexml loading packages... warning: downgrading package ruby-rexml (3.3.2-1 => 3.2.6-2) resolving dependencies... looking for conflicting packages...

Packages (1) ruby-rexml-3.2.6-2

Total Installed Size: 0.43 MiB Net Upgrade Size: -0.57 MiB

:: Proceed with installation? [Y/n] y (1/1) checking keys in keyring [#############################] 100% (1/1) checking package integrity [#############################] 100% (1/1) loading package files [#############################] 100% (1/1) checking for file conflicts [#############################] 100% (1/1) checking available disk space [#############################] 100% :: Processing package changes... (1/1) downgrading ruby-rexml [#############################] 100% :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... add ruby-rexml to IgnorePkg? [y/N] y

well I am not ruby user. is there any guide for using the downgrade tool?

leaveye commented 1 month ago

Just info for Arch linux + yay users. Damn, today viertualbox went version up to unsupported version 7.1. (it could be expected since today is Friday 13th). downgrade to v 7.0.20-1

sudo su downgrade virtualbox-host-dkms and downgrade virtualbox

It worked for me. Problem could be that we don't know long we must keep virtualbox, virtualbox-host-dkms, ruby-rexml in IgnorePkg (probably till new version of vagrant will fix those conflicts?

Screenshot from 2024-09-13 07-53-08

True, downgrade these 3 works for me for this error. But vagrant then tells:

❯ vagrant reload
==> default: Checking if box 'debian/bookworm64' version '12.20240503.1' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: bridged
    default: Adapter 3: bridged
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["startvm", "a92789f7-1744-4355-821a-92560140a0dc", "--type", "headless"]

Stderr: VBoxManage: error: The virtual machine 'devops_default_1726238446231_23652' has terminated unexpectedly during startup with exit code 1 (0x1)
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component MachineWrap, interface IMachine

After google, reinstall virtualbox virtualbox-host-dkms virtualbox-ext-vnc from pacman cache version 7.0.20-1 doesnt help.

Edit: It works just as @mateuszR84 said. after reinstall my in-using linux linux-header, to fire DKMS rebuild I guess, and REBOOT.

alexandrosomegas commented 1 month ago

@mateuszR84

@alexandrosomegas - did you run full system update before having this error? i did and now i have similar problem, but seems like downgrading virtualbox and dkms didn't work, now i've got error saying that the kernel module is not loaded. What is your current kernel version?

Edit: it works, steps to reproduce: downgrade virtualbox, downgrade virtualbox-host-dkms, run pacman -S linux linux-headers, reboot

Yes, I did full system upgrade (Arch linux). As I wrote after 3 downgrade (and pinned them to ignore offered by downgrade) I mentioned, Vagrant up/ssh worked fine. (About install Downgrade Arch users can look here: https://aur.archlinux.org/packages/downgrade (it can be installed using simple command: yay -S downgrade) But question is when we can remove those 3 pkg from ignore... I hope with new version of vagrant.

vagrant reload ==> statistics: Checking if box 'laravel/homestead' version '14.0.2' is up to date... ==> statistics: Clearing any previously set forwarded ports... ==> statistics: Clearing any previously set network interfaces... ==> statistics: Preparing network interfaces based on configuration... statistics: Adapter 1: nat statistics: Adapter 2: hostonly ==> statistics: Forwarding ports... statistics: 80 (guest) => 8000 (host) (adapter 1) statistics: 443 (guest) => 44300 (host) (adapter 1) statistics: 8081 (guest) => 8081 (host) (adapter 1) statistics: 8082 (guest) => 8082 (host) (adapter 1) statistics: 8083 (guest) => 8083 (host) (adapter 1) statistics: 8091 (guest) => 8091 (host) (adapter 1) statistics: 8888 (guest) => 8888 (host) (adapter 1) statistics: 2181 (guest) => 2183 (host) (adapter 1) statistics: 2888 (guest) => 2888 (host) (adapter 1) statistics: 3888 (guest) => 3888 (host) (adapter 1) statistics: 22 (guest) => 2222 (host) (adapter 1) ==> statistics: Running 'pre-boot' VM customizations... ==> statistics: Booting VM... ==> statistics: Waiting for machine to boot. This may take a few minutes... statistics: SSH address: 127.0.0.1:2222 statistics: SSH username: vagrant statistics: SSH auth method: private key statistics: Warning: Connection reset. Retrying... statistics: Warning: Remote connection disconnect. Retrying... statistics: Warning: Connection reset. Retrying... statistics: Warning: Remote connection disconnect. Retrying... ==> statistics: Machine booted and ready! ==> statistics: Checking for guest additions in VM... ==> statistics: Setting hostname... ==> statistics: Configuring and enabling network interfaces... ==> statistics: Mounting shared folders... statistics: /vagrant => /home/work/dating-stats statistics: /home/vagrant/dating-statistics => /home/work/dating-stats ==> statistics: Detected mount owner ID within mount options. (uid: 1000 guestpath: /home/vagrant/dating-statistics) ==> statistics: Detected mount group ID within mount options. (gid: 1000 guestpath: /home/vagrant/dating-statistics) ==> statistics: Machine already provisioned. Run vagrant provision or use the --provision ==> statistics: flag to force provisioning. Provisioners marked to run always will still run.

than vagrant ssh, and all worked fine for me.

alexandrosomegas commented 1 month ago

@leaveye Here is Downgrade: https://aur.archlinux.org/packages/downgrade

An more easy option is to use 'downgrade' for downgrade: sudo su work/stats [develop] » downgrade ruby-rexml loading packages... warning: downgrading package ruby-rexml (3.3.2-1 => 3.2.6-2) resolving dependencies... looking for conflicting packages... Packages (1) ruby-rexml-3.2.6-2 Total Installed Size: 0.43 MiB Net Upgrade Size: -0.57 MiB :: Proceed with installation? [Y/n] y (1/1) checking keys in keyring [#############################] 100% (1/1) checking package integrity [#############################] 100% (1/1) loading package files [#############################] 100% (1/1) checking for file conflicts [#############################] 100% (1/1) checking available disk space [#############################] 100% :: Processing package changes... (1/1) downgrading ruby-rexml [#############################] 100% :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... add ruby-rexml to IgnorePkg? [y/N] y

well I am not ruby user. is there any guide for using the downgrade tool?

vmsh0 commented 1 month ago

I understand the workaround currently is to downgrade a Ruby dep and VirtualBox, but is there a plan properly fix this?

hcartiaux commented 1 month ago

I understand the workaround currently is to downgrade a Ruby dep and VirtualBox, but is there a plan properly fix this?

If we are still speaking about archlinux, the Vagrant PKGBUILD embeds its own gem dependencies in /opt/vagrant/embedded/gems/, so rebuilding the PKGBUILD will produce a new package with rexml 3.2 included.

But then you will run into the same problem with the vagrant-cloud gem which also depends on rexml ~>3.2.0. There's an open bug here: https://github.com/hashicorp/vagrant_cloud/pull/87

wbecker commented 2 weeks ago

Annoying this approach seems to fail in arch now - when building the module:


  CC [M]  /var/lib/dkms/vboxhost/7.0.8_OSE/build/vboxdrv/combined-agnostic2.o
/var/lib/dkms/vboxhost/7.0.8_OSE/build/vboxnetflt/linux/VBoxNetFlt-linux.c: In function ‘vboxNetFltLinuxSkBufToSG’:
/var/lib/dkms/vboxhost/7.0.8_OSE/build/vboxnetflt/linux/VBoxNetFlt-linux.c:928:36: error: ‘skb_frag_t’ {aka ‘struct skb_frag’} has no member named ‘bv_len’
  928 |         pSG->aSegs[iSeg].cb = pFrag->bv_len;
      |                                    ^~
/var/lib/dkms/vboxhost/7.0.8_OSE/build/vboxnetflt/linux/VBoxNetFlt-linux.c:929:66: error: ‘skb_frag_t’ {aka ‘struct skb_frag’} has no member named ‘bv_offset’; did you mean ‘offset’?
  929 |         pSG->aSegs[iSeg].pv = VBOX_SKB_KMAP_FRAG(pFrag) + pFrag->bv_offset;

I guess this means downgrading the kernel as well...

Edit - this change seems to have happened in linux@6.9 - currently on 6.11 - how is it compiling for anyone with recent headers?

Edit 2 - think this was my error. I looked at https://archive.archlinux.org/packages/v/virtualbox-host-dkms/ and saw the bottom version as being .0.8, when there was a .0.20 hiding above. Using 20 should work hopefully!