Some tips on verifying: https://bugzilla.redhat.com/show_bug.cgi?id=2057544#c14
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
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.
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)
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