Can't cancel rpm-ostree "null" transaction

Using Fedora 32 SilverBlue

I’ve rebooted and rpm-ostree seems to be stuck executing a transaction that I cannot cancel:

$ sudo rpm-ostree status
State: busy
Transaction:
Initiator: client(id:gnome-software dbus:1.108 unit:gnome-launched-gnome-software-service.desktop-1880.scope uid:1000)

Any attempt at installing new packages or upgrading results in “error: Transaction in progress: (null)”. This started happening after installing a bunch of packages and then rebooting.

Anyone seen this and know how to proceed?

Hello @pbjez1,
Welcome to the discussion area. For user help, it is always best to start at discussion.fedoraproject.org. There will invariably be someone there who knows about your issue.
After an update, and every time you login to Gnome, Gnome Software will check rpm-ostree for updates and flatpak for updates. This sometimes takes a long time, but if you wait it will complete. If for some reason it is hung on doing this transaction, or querying the repo, you may try rpm-ostree cancel to stop pending transactions then try rpm-ostree cleanup -m and rpm-ostree cleanup -p to cleanup metatdata and pending deployments. Also rpm-ostree cleanup -b to clear the temporary files a transaction or transactions create.

Thanks @jakfrost, yes sorry I forgot to mention that rpm-ostree cancel just hangs indefinitely. It’s been up for more than 3 hours and busy the entire time, so I don’t think waiting it out will help.

All other rpm-ostree commands like cleanup just return error: Transaction in progress: (null).

I can move this topic to discussion.fedoraproject.org if that’s a more appropriate forum.

No that’s fine, we started here and we can continue here. If it is constantly in limbo like that I would suggest booting into your previous commit, and re-layering the packages you layered that caused this in the first place. I know it’s not ideal, but it will get you past this I think.

OK thanks … rolling back was what I hoped would be a last resort but will give it a shot.

I like to think of it as “Gee, I can just rollback to the working commit and fix this.” I am predisposed to positive thinking.

True, it beats a wipe and reinstall by a mile!

Looks like rollback is not a simple option either:

$ sudo rpm-ostree rollback 
error: Transaction in progress: (null)

I didn’t mean rollback I meant select the previous commit in the GRUB menu. Press any key at boot to get the menu then select the previous commit.

Restarting the rpm-ostreed service cancels the transaction:

sudo systemctl restart rpm-ostreed.service

1 Like

You should also be able to ask rpm-ostree to cancel the current transaction with:

$ sudo rpm-ostree cancel

yeah tried that a while back and no go … restarting the service is the only thing I’ve found that works consistently.