Bug 2137420 - Upgrade failed with "Transaction in progress" in MCO [rhel-8.4.0.z]
Summary: Upgrade failed with "Transaction in progress" in MCO [rhel-8.4.0.z]
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: rpm-ostree
Version: 8.4
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: rc
: ---
Assignee: Colin Walters
QA Contact: HuijingHei
URL:
Whiteboard:
Depends On: 2101379
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-10-24 20:23 UTC by RHEL Program Management Team
Modified: 2023-01-30 14:46 UTC (History)
9 users (show)

Fixed In Version: rpm-ostree-2020.7-4.el8_4
Doc Type: If docs needed, set a value
Doc Text:
Clone Of: 2101379
Environment:
Last Closed: 2023-01-30 14:46:10 UTC
Type: ---
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker RHELPLAN-137483 0 None None None 2022-10-24 20:45:02 UTC
Red Hat Product Errata RHBA-2023:0502 0 None None None 2023-01-30 14:46:12 UTC

Comment 4 Colin Walters 2022-11-01 17:25:56 UTC
Some tips on verifying: https://bugzilla.redhat.com/show_bug.cgi?id=2057544#c14

Comment 6 HuijingHei 2022-11-07 12:33:08 UTC
Hi Colin, I am not quite sure how to verify, any guidance? Thanks!

Start 49.84.202211030959-0 image with rpm-ostree-2020.7-3.el8, run `strace -f --fault connect:error=EPERM:when=2 rpm-ostree upgrade`, get "error: Could not connect: Operation not permitted". Maybe my understanding is not correct.

[root@cosa-devsh ~]# rpm -q rpm-ostree
rpm-ostree-2020.7-3.el8.x86_64

[root@cosa-devsh ~]# rpm-ostree status
State: busy
Transaction: 
  Initiator: client(id:cli dbus:1.32 unit:session-1.scope uid:0)
Deployments:
● ostree://9f25fb72db25e5a4457e5eb7a361e6b53b57e468b0455edf17578b70d7da8786
                   Version: 49.84.202211030959-0 (2022-11-03T10:02:16Z)

# strace -f --fault connect:error=EPERM:when=2 rpm-ostree upgrade
.....
error: Could not connect: Operation not permitted

Comment 7 Colin Walters 2022-11-07 13:39:31 UTC
Right, it's expected for the `strace` command to output an error - it's forcing a failing system call.

In the buggy version, all *further operations* such as another `rpm-ostree upgrade` should (incorrectly) block, waiting for the old client.

The new fixed version will allow retrying the operation.

In other words, the full reproduction scenario is:

strace -f --fault connect:error=EPERM:when=2 rpm-ostree upgrade  # expected failure in both cases
rpm-ostree upgrade   # Should output Pinned to commit; no upgrade available  - but in the broken version, this will stall

You'll also notice a difference in the output of `rpm-ostree status`; the broken version will show an active transaction, the fixed will not.

Comment 8 HuijingHei 2022-11-08 06:42:29 UTC
Thanks Colin for the detail explanation! Verify passed on 410.84.202211032138-0.

1) Test with unfixed version rpm-ostree-2020.7-3.el8.x86_64, after strace command, exec `rpm-ostree upgrade` is stuck.
==================================================
[root@cosa-devsh ~]# strace -f --fault connect:error=EPERM:when=2 rpm-ostree upgrade
...error: Could not connect: Operation not permitted

[root@cosa-devsh ~]# rpm-ostree upgrade

[core@cosa-devsh ~]$ rpm-ostree status
State: busy
Transaction: 
  Initiator: client(id:cli dbus:1.33 unit:session-4.scope uid:0)
Deployments:
● ostree://8d68051abeecf4991283052b4e6d38a5bad50e3c8e7b678973d5c39d30145ab0
                   Version: 410.84.202211032138-0 (2022-11-03T21:41:00Z)


2) Test with fixed version rpm-ostree-2020.7-4.el8_4.x86_64, after strace command, exec `rpm-ostree upgrade` print "No upgrade available".
==================================================
[root@cosa-devsh ~]# strace -f --fault connect:error=EPERM:when=2 rpm-ostree upgrade
...error: Could not connect: Operation not permitted

[root@cosa-devsh ~]# rpm-ostree upgrade
Checking out tree 8d68051... done
No enabled rpm-md repositories.
Importing rpm-md... done
Resolving dependencies... done
No upgrade available.

[root@cosa-devsh ~]# rpm-ostree status
State: idle
Deployments:
● ostree://8d68051abeecf4991283052b4e6d38a5bad50e3c8e7b678973d5c39d30145ab0
                   Version: 410.84.202211032138-0 (2022-11-03T21:41:00Z)
      ReplacedBasePackages: rpm-ostree rpm-ostree-libs 2020.7-3.el8 -> 2020.7-4.el8_4

  ostree://8d68051abeecf4991283052b4e6d38a5bad50e3c8e7b678973d5c39d30145ab0
                   Version: 410.84.202211032138-0 (2022-11-03T21:41:00Z)

Comment 16 errata-xmlrpc 2023-01-30 14:46:10 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (rpm-ostree bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2023:0502


Note You need to log in before you can comment on or make changes to this bug.