oracle / vagrant-projects

Vagrant projects for Oracle products and other examples
Universal Permissive License v1.0
946 stars 477 forks source link

21c XE - errors during install #438

Closed pocelka closed 2 years ago

pocelka commented 2 years ago

Describe the issue

When starting vagrant box for 21c XE I get ss: command not found when /etc/init.d/oracle-xe-21c configure is executed as part of install script. Seems like ss should be part of standard linux distribution but for some reason is missing in OL8?

Environment (please complete the following information):

PaulNeumann commented 2 years ago

@pocelka I see the same issue. Apparently the iproute package, which includes ss, isn't installed in the latest version of the Oracle Linux 8 base box.

The good news is that database configuration still seems to succeed, and the database seems to work normally, so the errors can probably be ignored. However, if you want to avoid the errors, there are a couple of workarounds.

Workaround 1

Modify the install script to install the iproute package during the build. Using a text editor, open the file vagrant-projects/OracleDatabase/21.3.0-XE/scripts/install.sh. Add the following line right after line 20 (the line that reads "dnf upgrade -y"):

dnf -y install iproute

Save the file, then rebuild the VM by running vagrant destroy -f, then vagrant up.

Workaround 2

Use the previous version of the Oracle Linux 8 base box, which includes the iproute package. To do that, run the commands below. WARNING: DO NOT DO THIS if you have other VMs using the Oracle Linux 8 base box.

# remove the VM and the Oracle Linux 8 base box
cd vagrant-projects/OracleDatabase/21.3.0-XE
vagrant destroy -f
vagrant box remove oraclelinux/8
# add the previous version of the Oracle Linux 8 base box
vagrant box add --box-version 8.5.320 https://oracle.github.io/vagrant-projects/boxes/oraclelinux/8.json
vagrant up

When you run vagrant up, you'll see a message saying that a newer version of the oraclelinux/8 box is available, but the build will proceed normally.

(@scoter-oracle @AmedeeBulle If the iproute package won't be included in future versions of the Oracle Linux 8 box, I can submit a PR to install it as part of the OracleDatabase/21.3.0-XE project.)

I hope this helps.

AmedeeBulle commented 2 years ago

Thanks for the diagnostics @PaulNeumann

I checked the build logs and see that for the OL8U6 build 332, iproute is removed as dependency when we remove psmisc...

virtualbox-iso.x86-64: ================================================================================
virtualbox-iso.x86-64:  Package           Arch      Version                         Repository    Size
virtualbox-iso.x86-64: ================================================================================
virtualbox-iso.x86-64: Removing:
virtualbox-iso.x86-64:  psmisc            x86_64    23.1-5.el8                      @anaconda    483 k
virtualbox-iso.x86-64: Removing dependent packages:
virtualbox-iso.x86-64:  iproute           x86_64    5.15.0-4.el8                    @anaconda    2.3 M
virtualbox-iso.x86-64:  kexec-tools       x86_64    2.0.20-68.0.1.el8               @anaconda    1.3 M
virtualbox-iso.x86-64: Removing unused dependencies:
virtualbox-iso.x86-64:  dracut-network    x86_64    049-201.git20220131.0.1.el8     @anaconda    167 k
virtualbox-iso.x86-64:  dracut-squash     x86_64    049-201.git20220131.0.1.el8     @anaconda    3.5 k
virtualbox-iso.x86-64:  ethtool           x86_64    2:5.13-1.el8                    @anaconda    640 k
virtualbox-iso.x86-64:  libbpf            x86_64    0.4.0-3.el8                     @anaconda    276 k
virtualbox-iso.x86-64:  snappy            x86_64    1.1.8-3.el8                     @anaconda     59 k
virtualbox-iso.x86-64:  squashfs-tools    x86_64    4.3-20.el8                      @anaconda    397 k

For the previous OL8U5 builds psmisc wasn't initially installed, so the removal of iproute didn't happened...

This is not intentional, we will ensure next build includes iproute

pocelka commented 2 years ago

@PaulNeumann Thanks, I will add this to install script. Because anyway I'm trying to adapt it to install apex and ords afterfards as for some reason OracleApex box is available only for 18c XE

pocelka commented 2 years ago

I think it is not meant for me to make it work.

First I tried workaround 1: When I try to install missing package I get:

Oracle Linux 8 Application Stream (x86_64)                                                                                                                                                                      
Error: Loading repository 'ol8_appstream' has failed

So I tried workaround 2:

    oracle21c-xe-vagrant: INSTALLER: Oracle preinstall and openssl complete
    oracle21c-xe-vagrant: INSTALLER: Environment variables set
    oracle21c-xe-vagrant: Last metadata expiration check: 0:07:03 ago on Mon 06 Jun 2022 08:02:55 PM CEST.
    oracle21c-xe-vagrant: Dependencies resolved.
    oracle21c-xe-vagrant: ================================================================================
    oracle21c-xe-vagrant:  Package                      Architecture Version     Repository          Size
    oracle21c-xe-vagrant: ================================================================================
    oracle21c-xe-vagrant: Installing:
    oracle21c-xe-vagrant:  oracle-database-xe-21c       x86_64       1.0-1       @commandline       2.2 G
    oracle21c-xe-vagrant: 
    oracle21c-xe-vagrant: Transaction Summary
    oracle21c-xe-vagrant: ================================================================================
    oracle21c-xe-vagrant: Install  1 Package
    oracle21c-xe-vagrant: 
    oracle21c-xe-vagrant: Total size: 2.2 G
    oracle21c-xe-vagrant: Installed size: 5.8 G
    oracle21c-xe-vagrant: Downloading Packages:
    oracle21c-xe-vagrant: Running transaction check
    oracle21c-xe-vagrant: Transaction check succeeded.
    oracle21c-xe-vagrant: Running transaction test
    oracle21c-xe-vagrant: Transaction test succeeded.
    oracle21c-xe-vagrant: Running transaction
    oracle21c-xe-vagrant:   Preparing        :                                                        1/1
    oracle21c-xe-vagrant:   Running scriptlet: oracle-database-xe-21c-1.0-1.x86_64                    1/1
    oracle21c-xe-vagrant: Error unpacking rpm package oracle-database-xe-21c-1.0-1.x86_64
    oracle21c-xe-vagrant:   Installing       : oracle-database-xe-21c-1.0-1.x86_64                    1/1
    oracle21c-xe-vagrant: Error: Transaction failed
    oracle21c-xe-vagrant:   Verifying        : oracle-database-xe-21c-1.0-1.x86_64                    1/1
    oracle21c-xe-vagrant: 
    oracle21c-xe-vagrant: Failed:
    oracle21c-xe-vagrant:   oracle-database-xe-21c-1.0-1.x86_64

Since the message was not really helping I tried to install it manually after connecting to box and I get

package oracle-database-xe-21c-1.0-1.x86_64 does not verify: Payload SHA256 digest: BAD (Expected 51f7ec54dc0d7505bce25cca34795a541f6bc965c470098ee619897ba3116e45 != 5827310ebb87951fc524562569b358ad55c663ec2edf5a913dfe255f9e83cbba)

Since I downloaded rpm outside of the vagrant installation script I thought that maybe file was corrupted during download but I get the same sh256sum as is on Oracle web:

# sha256sum oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm 
f8357b432de33478549a76557e8c5220ec243710ed86115c65b0c2bc00a848db  oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm
PaulNeumann commented 2 years ago

@pocelka I'm not sure why you're seeing these errors. I've just double-checked both workarounds, and the builds worked correctly. I suggest starting over and using Workaround 1.

First, remove the VM and the base box by running the following commands:

vagrant destroy -f
vagrant box remove oraclelinux/8 --all

Next, the only change to the files in the OracleDatabase/21.3.0-XE directory and its subdirectories should be adding the dnf -y install iproute line right after line 20 in the OracleDatabase/21.3.0-XE/scripts/install.sh file. If you've made any other changes, please undo them.

Optionally, you can add the database installer rpm, oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm, in the OracleDatabase/21.3.0-XE directory. If you download it yourself, rather than letting the installation script do it, please double-check the sha256sum (the value you posted above is correct).

Finally, run vagrant up again, and please let us know if you still see any errors.

I hope this helps.

pocelka commented 2 years ago

I didn't think that putting dnf -y install iproute on line before line 20 would be an issue. So I placed it now after upgrade and:

    oracle21c-xe-vagrant: INSTALLER: Started up
    oracle21c-xe-vagrant: Oracle Linux 8 BaseOS Latest (x86_64)            25 MB/s |  46 MB     00:01
    oracle21c-xe-vagrant: Oracle Linux 8 Application Stream (x86_64)       24 MB/s |  36 MB     00:01
    oracle21c-xe-vagrant: Latest Unbreakable Enterprise Kernel Release 6   24 MB/s |  47 MB     00:01
    oracle21c-xe-vagrant: Last metadata expiration check: 0:00:06 ago on Tue 07 Jun 2022 04:41:59 PM UTC.
    oracle21c-xe-vagrant: Dependencies resolved.
    oracle21c-xe-vagrant: ===========================================================================================
    oracle21c-xe-vagrant:  Package               Arch    Version                             Repository          Size
    oracle21c-xe-vagrant: ===========================================================================================
    oracle21c-xe-vagrant: Installing:
    oracle21c-xe-vagrant:  kernel-uek            x86_64  5.4.17-2136.307.3.5.el8uek          ol8_UEKR6          109 M
    oracle21c-xe-vagrant:  kernel-uek-devel      x86_64  5.4.17-2136.307.3.5.el8uek          ol8_UEKR6           18 M
    oracle21c-xe-vagrant: Upgrading:
    oracle21c-xe-vagrant:  rsyslog               x86_64  8.2102.0-7.el8_6.1                  ol8_appstream      753 k
    oracle21c-xe-vagrant: Installing dependencies:
    oracle21c-xe-vagrant:  linux-firmware        noarch  999:20220304-999.13.gitf011ccb4.el8 ol8_baseos_latest  216 M
    oracle21c-xe-vagrant:  linux-firmware-core   noarch  999:20220304-999.13.gitf011ccb4.el8 ol8_baseos_latest  509 k
    oracle21c-xe-vagrant: 
    oracle21c-xe-vagrant: Transaction Summary
    oracle21c-xe-vagrant: ===========================================================================================
    oracle21c-xe-vagrant: Install  4 Packages
    oracle21c-xe-vagrant: Upgrade  1 Package
    oracle21c-xe-vagrant: 
    oracle21c-xe-vagrant: Total download size: 344 M
    oracle21c-xe-vagrant: Downloading Packages:
    oracle21c-xe-vagrant: (1/5): linux-firmware-core-20220304-999.13.gitf  96 kB/s | 509 kB     00:05
    oracle21c-xe-vagrant: [MIRROR] kernel-uek-5.4.17-2136.307.3.5.el8uek.x86_64.rpm: Curl error (56): Failure when receiving data from the peer for https://yum.oracle.com/repo/OracleLinux/OL8/UEKR6/x86_64/getPackage/kernel-uek-5.4.17-2136.307.3.5.el8uek.x86_64.rpm [OpenSSL SSL_read: error:1408F119:SSL routines:ssl3_get_record:decryption failed or bad record mac, errno 0]
    oracle21c-xe-vagrant: (2/5): kernel-uek-devel-5.4.17-2136.307.3.5.el8 3.5 MB/s |  18 MB     00:05
    oracle21c-xe-vagrant: (3/5): rsyslog-8.2102.0-7.el8_6.1.x86_64.rpm    6.9 MB/s | 753 kB     00:00
    oracle21c-xe-vagrant: [MIRROR] kernel-uek-5.4.17-2136.307.3.5.el8uek.x86_64.rpm: Curl error (56): Failure when receiving data from the peer for https://yum.oracle.com/repo/OracleLinux/OL8/UEKR6/x86_64/getPackage/kernel-uek-5.4.17-2136.307.3.5.el8uek.x86_64.rpm [OpenSSL SSL_read: error:1408F119:SSL routines:ssl3_get_record:decryption failed or bad record mac, errno 0]
    oracle21c-xe-vagrant: (4/5): kernel-uek-5.4.17-2136.307.3.5.el8uek.x8 4.0 MB/s | 109 MB     00:27
    oracle21c-xe-vagrant: (5/5): linux-firmware-20220304-999.13.gitf011cc 5.9 MB/s | 216 MB     00:36
    oracle21c-xe-vagrant: --------------------------------------------------------------------------------
    oracle21c-xe-vagrant: Total                                           9.4 MB/s | 344 MB     00:36
    oracle21c-xe-vagrant: Running transaction check
    oracle21c-xe-vagrant: Transaction check succeeded.
    oracle21c-xe-vagrant: Running transaction test
    oracle21c-xe-vagrant: Transaction test succeeded.
    oracle21c-xe-vagrant: Running transaction
    oracle21c-xe-vagrant: Transaction couldn't start:
    oracle21c-xe-vagrant: package kernel-uek-devel-5.4.17-2136.307.3.5.el8uek.x86_64 does not verify: Payload SHA256 digest: BAD (Expected cded541bc096dbe2fab8f1e8171541d963654c5da310fab7e58689ca77a1ab67 != 6163178c8e27d99adecbf01f47abc17e7cf6fcb8d94b914ef40d3dcaf79f6ce4)
    oracle21c-xe-vagrant:   Preparing        :                                                        1/1
    oracle21c-xe-vagrant: The downloaded packages were saved in cache until the next successful transaction.
    oracle21c-xe-vagrant: You can remove cached packages by executing 'dnf clean packages'.
    oracle21c-xe-vagrant: Error: Could not run transaction.
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.

Right now I think that it might be related to some mirror from which it tries to get packages for upgrade. Could this be related to the timezone which I set in .env file; that it tries to use mirror close to my country and something is not good there?

I'll try again in few days, maybe it will be resolved by itself.

AmedeeBulle commented 2 years ago

Just to be sure, in case you are running on Windows with Hyper-V enabled, please check the section Hyper-V on Windows hosts of the README. Unexpected package verification errors are typically related to the host environment...

pocelka commented 2 years ago

I'm running on Fedora 36 with virtualbox provider.

PaulNeumann commented 2 years ago

@pocelka As @AmedeeBulle said, these kinds of errors usually indicate a problem with the host environment. However, it's possible that there's an issue with the yum mirror or the network between your host and the mirror. If so, then waiting a day or two might help.

Could this be related to the timezone which I set in .env file; that it tries to use mirror close to my country and something is not good there?

I don't think so. The install.sh script sets the VM time zone after the dnf upgrade, so the VM time zone was still UTC when the error occurred.

pocelka commented 2 years ago

I don't want to keep this issue open as it seems like it works for everyone else. Every time I try to create the VM I get different error message.

Last one is:

    oracle21c-xe-vagrant: INSTALLER: Started up
    oracle21c-xe-vagrant: Oracle Linux 8 BaseOS Latest (x86_64)            23 MB/s |  46 MB     00:01
    oracle21c-xe-vagrant: Oracle Linux 8 Application Stream (x86_64)       27 MB/s |  36 MB     00:01
    oracle21c-xe-vagrant: /tmp/vagrant-shell: line 20:  2075 Segmentation fault      (core dumped) dnf upgrade -y
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.

I even tried to create my own VM starting from scratch using OL8, but installer just throws an error when downloading packages. I don't have any other connection problems; therefore I suspect that it is related to yum/dnf mirrors