Description of problem:
1. After the upgrade is complete, run the "imgbase rollback" command. After rebooting, the default boot entry is not on the previous layer.
2. Run the "nodectl rollback" command, an error occurred.
Version-Release number of selected component (if applicable):
rhvh-4.3.7.0-0.20191024.0
How reproducible:
100%
Steps to Reproduce:
1. Install rhvh-4.1-0.20180420.0
2. Setup local repo in RHVH, pointing to "redhat-virtualization-host-image-update-4.3.7-20191024.0.el7_7.noarch.rpm"
3. Upgrade to the latest build rhvh-4.3.7.0-0.20191024.0
# yum update
4. Reboot, login to the default boot entry and check:
# imgbase w
# imgbase layout
# nodectl info
5. Rollback to previous layer
# imgbase rollback
6. Reboot and focus on boot entry and check:
# imgbase w
# imgbase layout
# nodectl info
7. Run command
# nodectl rollback
Actual results:
1. The results of step 1 to step 4 are correct.
2. The result of step 5 and step 6:
1) The default boot entry is not on the previous layer(rhvh-4.1-0.20180420.0), but still on the latest layer(rhvh-4.3.7.0-0.20191024.0).
Please refer to the attached screen-shot "boot_entry_after_rollback.png"
2)# imgbase w
You are on rhvh-4.3.7.0-0.20191024.0+1
# imgbase layout
rhvh-4.1-0.20180420.0
+- rhvh-4.1-0.20180420.0+1
rhvh-4.3.7.0-0.20191024.0
+- rhvh-4.3.7.0-0.20191024.0+1
# nodectl info
layers:
rhvh-4.3.7.0-0.20191024.0:
rhvh-4.3.7.0-0.20191024.0+1
rhvh-4.1-0.20180420.0:
rhvh-4.1-0.20180420.0+1
bootloader:
default: rhvh-4.3.7.0-0.20191024.0 (3.10.0-1062.5.1.el7.x86_64)
entries:
rhvh-4.3.7.0-0.20191024.0 (3.10.0-1062.5.1.el7.x86_64):
index: 0
title: rhvh-4.3.7.0-0.20191024.0 (3.10.0-1062.5.1.el7.x86_64)
kernel: /boot/rhvh-4.3.7.0-0.20191024.0+1/vmlinuz-3.10.0-1062.5.1.el7.x86_64
args: "ro crashkernel=auto rd.lvm.lv=rhvh_hp-dl380g10-05/swap rd.lvm.lv=rhvh_hp-dl380g10-05/rhvh-4.3.7.0-0.20191024.0+1 rhgb quiet LANG=en_US.UTF-8 img.bootid=rhvh-4.3.7.0-0.20191024.0+1"
initrd: /boot/rhvh-4.3.7.0-0.20191024.0+1/initramfs-3.10.0-1062.5.1.el7.x86_64.img
root: /dev/rhvh_hp-dl380g10-05/rhvh-4.3.7.0-0.20191024.0+1
rhvh-4.1-0.20180420.0:
index: 1
title: rhvh-4.1-0.20180420.0
kernel: /boot/rhvh-4.1-0.20180420.0+1/vmlinuz-3.10.0-862.el7.x86_64
args: "ro crashkernel=auto rd.lvm.lv=rhvh_hp-dl380g10-05/swap rd.lvm.lv=rhvh_hp-dl380g10-05/rhvh-4.1-0.20180420.0+1 rhgb quiet LANG=en_US.UTF-8 img.bootid=rhvh-4.1-0.20180420.0+1"
initrd: /boot/rhvh-4.1-0.20180420.0+1/initramfs-3.10.0-862.el7.x86_64.img
root: /dev/rhvh_hp-dl380g10-05/rhvh-4.1-0.20180420.0+1
current_layer: rhvh-4.3.7.0-0.20191024.0+1
3. The result of step 7 is as follows:
# nodectl rollback
Traceback (most recent call last):
File "/usr/lib64/python2.7/logging/__init__.py", line 872, in emit
stream.write(fs % msg)
TypeError: unicode argument expected, got 'str'
Logged from file update.py, line 171
Traceback (most recent call last):
File "/usr/lib64/python2.7/logging/__init__.py", line 872, in emit
stream.write(fs % msg)
TypeError: unicode argument expected, got 'str'
Logged from file update.py, line 172
Traceback (most recent call last):
File "/usr/lib64/python2.7/logging/__init__.py", line 872, in emit
stream.write(fs % msg)
TypeError: unicode argument expected, got 'str'
Logged from file update.py, line 180
Traceback (most recent call last):
File "/usr/lib64/python2.7/logging/__init__.py", line 872, in emit
stream.write(fs % msg)
TypeError: unicode argument expected, got 'str'
Logged from file update.py, line 181
Status: Success
New layer: rhvh-4.1-0.20180420.0+1
Expected results:
1. After rollback, the default boot entry is on the previous layer(rhvh-4.1-0.20180420.0)
2. The "nodectl rollback" command can be executed correctly.
Additional info:
I tried to reproduce this bug again today. The results are different. The current situation is as follows:
Steps to Reproduce:
1. The steps to reproduce the bug are the same as the steps above.
Actual results:
1. After the upgrade is complete, enter rhvh-4.3.7.0-0.20191024.0 and run "imgbase rollback", this can be successful. It rolled back to rhvh-4.1-0.20180420.0.
2. Reboot and enter rhvh-4.1-0.20180420.0, run "imgbase rollback" to roll back to rhvh-4.3.7.0-0.20191024.0, it can not work.
Expected results:
1. rhvh-4.3.7.0-0.20191024.0 can roll back to rhvh-4.1-0.20180420.0, rhvh-4.1-0.20180420.0 can also roll back to rhvh-4.3.7.0-0.20191024.0
Description of problem: 1. After the upgrade is complete, run the "imgbase rollback" command. After rebooting, the default boot entry is not on the previous layer. 2. Run the "nodectl rollback" command, an error occurred. Version-Release number of selected component (if applicable): rhvh-4.3.7.0-0.20191024.0 How reproducible: 100% Steps to Reproduce: 1. Install rhvh-4.1-0.20180420.0 2. Setup local repo in RHVH, pointing to "redhat-virtualization-host-image-update-4.3.7-20191024.0.el7_7.noarch.rpm" 3. Upgrade to the latest build rhvh-4.3.7.0-0.20191024.0 # yum update 4. Reboot, login to the default boot entry and check: # imgbase w # imgbase layout # nodectl info 5. Rollback to previous layer # imgbase rollback 6. Reboot and focus on boot entry and check: # imgbase w # imgbase layout # nodectl info 7. Run command # nodectl rollback Actual results: 1. The results of step 1 to step 4 are correct. 2. The result of step 5 and step 6: 1) The default boot entry is not on the previous layer(rhvh-4.1-0.20180420.0), but still on the latest layer(rhvh-4.3.7.0-0.20191024.0). Please refer to the attached screen-shot "boot_entry_after_rollback.png" 2)# imgbase w You are on rhvh-4.3.7.0-0.20191024.0+1 # imgbase layout rhvh-4.1-0.20180420.0 +- rhvh-4.1-0.20180420.0+1 rhvh-4.3.7.0-0.20191024.0 +- rhvh-4.3.7.0-0.20191024.0+1 # nodectl info layers: rhvh-4.3.7.0-0.20191024.0: rhvh-4.3.7.0-0.20191024.0+1 rhvh-4.1-0.20180420.0: rhvh-4.1-0.20180420.0+1 bootloader: default: rhvh-4.3.7.0-0.20191024.0 (3.10.0-1062.5.1.el7.x86_64) entries: rhvh-4.3.7.0-0.20191024.0 (3.10.0-1062.5.1.el7.x86_64): index: 0 title: rhvh-4.3.7.0-0.20191024.0 (3.10.0-1062.5.1.el7.x86_64) kernel: /boot/rhvh-4.3.7.0-0.20191024.0+1/vmlinuz-3.10.0-1062.5.1.el7.x86_64 args: "ro crashkernel=auto rd.lvm.lv=rhvh_hp-dl380g10-05/swap rd.lvm.lv=rhvh_hp-dl380g10-05/rhvh-4.3.7.0-0.20191024.0+1 rhgb quiet LANG=en_US.UTF-8 img.bootid=rhvh-4.3.7.0-0.20191024.0+1" initrd: /boot/rhvh-4.3.7.0-0.20191024.0+1/initramfs-3.10.0-1062.5.1.el7.x86_64.img root: /dev/rhvh_hp-dl380g10-05/rhvh-4.3.7.0-0.20191024.0+1 rhvh-4.1-0.20180420.0: index: 1 title: rhvh-4.1-0.20180420.0 kernel: /boot/rhvh-4.1-0.20180420.0+1/vmlinuz-3.10.0-862.el7.x86_64 args: "ro crashkernel=auto rd.lvm.lv=rhvh_hp-dl380g10-05/swap rd.lvm.lv=rhvh_hp-dl380g10-05/rhvh-4.1-0.20180420.0+1 rhgb quiet LANG=en_US.UTF-8 img.bootid=rhvh-4.1-0.20180420.0+1" initrd: /boot/rhvh-4.1-0.20180420.0+1/initramfs-3.10.0-862.el7.x86_64.img root: /dev/rhvh_hp-dl380g10-05/rhvh-4.1-0.20180420.0+1 current_layer: rhvh-4.3.7.0-0.20191024.0+1 3. The result of step 7 is as follows: # nodectl rollback Traceback (most recent call last): File "/usr/lib64/python2.7/logging/__init__.py", line 872, in emit stream.write(fs % msg) TypeError: unicode argument expected, got 'str' Logged from file update.py, line 171 Traceback (most recent call last): File "/usr/lib64/python2.7/logging/__init__.py", line 872, in emit stream.write(fs % msg) TypeError: unicode argument expected, got 'str' Logged from file update.py, line 172 Traceback (most recent call last): File "/usr/lib64/python2.7/logging/__init__.py", line 872, in emit stream.write(fs % msg) TypeError: unicode argument expected, got 'str' Logged from file update.py, line 180 Traceback (most recent call last): File "/usr/lib64/python2.7/logging/__init__.py", line 872, in emit stream.write(fs % msg) TypeError: unicode argument expected, got 'str' Logged from file update.py, line 181 Status: Success New layer: rhvh-4.1-0.20180420.0+1 Expected results: 1. After rollback, the default boot entry is on the previous layer(rhvh-4.1-0.20180420.0) 2. The "nodectl rollback" command can be executed correctly. Additional info: