Bug 2455855 - Storage editor fails to prevent mounting btrfs / subv over /home subv
Summary: Storage editor fails to prevent mounting btrfs / subv over /home subv
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: cockpit
Version: 44
Hardware: x86_64
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Katerina Koukiou
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard: AcceptedFreezeException RejectedBlocker
Depends On:
Blocks: F44FinalFreezeException
TreeView+ depends on / blocked
 
Reported: 2026-04-07 06:04 UTC by tk2345_
Modified: 2026-04-25 01:49 UTC (History)
17 users (show)

Fixed In Version: cockpit-360.1-1.fc44 cockpit-361-1.fc44
Clone Of:
Environment:
Last Closed: 2026-04-25 01:49:22 UTC
Type: Bug
Embargoed:
awilliam: needinfo? (mvollmer)
mpitt: needinfo-


Attachments (Terms of Use)

Description tk2345_ 2026-04-07 06:04:47 UTC
Description of problem:

Storage editor fails to prevent mounting btrfs / subvolume over btrfs /home subvolume. This causes the storage checker to fail verifying the layout, prevents unmounting the subvolumes and may prevent the installation to continue.

Version-Release number of selected component (if applicable):

F44 WS beta.

How reproducible:

Always.

Steps to Reproduce:
1. Enter storage editor. Create /boot, /boot/efi, btrfs /home and / subvolumes.
2. Mount /home and / subvolumes in that order.
3. Press "Return to installation".

Actual results:

See https://discussion.fedoraproject.org/t/issue-when-trying-to-install-f44-beta-with-anaconda-web-ui/185049

Expected results:

Storage editor prevents mounting / over /home, similar to how it prevents mounting /boot over /boot/efi.

Additional info:

Comment 1 Christopher Klooz 2026-04-07 08:50:46 UTC
I'm not sure if this report contains the relevant data to reproduce: I think the summary of Jeff [1] contains the trigger to always reproduce the bug but also to always run the web-ui without triggering the bug. So I read his summary that he can decide if he triggers the bug or not, thus identifying the trigger:

Extract of [1]:

>  I repeated my test exactly as you showed with a VM, although I reversed steps 7 & 8. (It is only logical (and mandatory) that / be mounted before /home)
> The installation completed as expected.
>
> I then tried again but this time I mounted /home before I mounted / (in the order you noted with steps 7 & 8)
>
> This time it gave me the error already noted.

I assume this is the bug: the storage editor does not adjust the order of mounts appropriately unless the users did it already themselves, at least in the given condition -> my assumption that this is a bug is based on the assumption that the installer is intended to determine itself the appropriate order about when to mount what partition, such as determining itself that / must be mounted before /home.

[1] https://discussion.fedoraproject.org/t/issue-when-trying-to-install-f44-beta-with-anaconda-web-ui/185049/35 (= post 35)

Comment 2 Fedora Blocker Bugs Application 2026-04-07 12:11:40 UTC
Proposed as a Blocker for 44-final by Fedora user lruzicka using the blocker tracking app because:

 REASONING:  
Violates Beta “Custom partitioning” criterion: installer must reject invalid configurations without crashing.
This bug allows creation of an invalid Btrfs subvolume mount layout and fails later during validation, blocking installation.
================================================================================

Comment 3 Stephen Gallagher 2026-04-08 12:24:43 UTC
Just to clarify: this causes the partitioning to occur and destructively change the disk, but then fails to mount the newly-created partitions because the ordering is invalid?

Comment 4 Jeff 2026-04-08 14:36:35 UTC
I was able to produce the reported issue in the linked forum topic with an attempted installation on a VM.

I first created the partitioning in the storage editor, then tried mounting the new partitions in an invalid order.
Specifically I mounted /home before I mounted / while still within the storage editor.  The mounts occurred as expected.

However, when I then clicked to 'return to installation' I received the notification linked in the initial description above.

This error was not due to an invalid partition configuration, but seems to be due to the storage editor allowing an invalid mount sequence that the editor then was unable to unmount the partitions in the correct (expected) order.

The Storage editor should not allow mounting file system partitions in an invalid order since doing so hides the first mounted file system (/home) under the root file system (/) and the result is an inability to unmount /home before unmounting /.

My suggested solution would be to never allow mounting any file systems created within the storage editor (/home, /var, /boot, /boot/efi, etc) before the root file system (/) has been mounted.

I am not sure why the storage editor even needs to mount file systems that are newly created and usually contain no data anyway.
There is already a mechanism to prevent mounting /boot over /boot/efi
https://discussion.fedoraproject.org/t/issue-when-trying-to-install-f44-beta-with-anaconda-web-ui/185049/48
and this should apply to all file systems created within the storage editor.

Comment 5 Katerina Koukiou 2026-04-08 14:37:51 UTC
This mount order should be prevented by cockpit-storage. 

Upstream fix: https://github.com/cockpit-project/cockpit/pull/23109

Comment 6 Kamil Páral 2026-04-08 14:44:29 UTC
In my testing, I didn't see any destructive behavior and anaconda never crashed. When the user mounts partitions in this order, anaconda is unable to unmount them, which basically locks the user out of any further actions. Unmount is not possible, installation is not possible, not even removing partitions or reformatting the drive is possible. So there's no data loss, the user is most likely forced to quit anaconda and reboot to get out of the situation (or issue manual unmount commands in the correct order, if they know how).

Comment 7 Marius Vollmer 2026-04-10 08:44:04 UTC
The bug here is that Cockpit's code for detecting "over mounting" did not work for btrfs subvolumes.  This is being fixed in https://github.com/cockpit-project/cockpit/pull/23109.

Thanks for reporting that!

Additionally, we will remove the "Mount" action from the filesystem menu (when Cockpit is used with Anaconda): https://github.com/cockpit-project/cockpit/pull/23115

It was left there "just in case anybody finds it useful", with the idea that people know what they are doing when they open the "Storage editor". But the consensus seems to be now that it is too dangerous, and that people might be lead to think they should actually mount filesystems while that is not necessary during installation.

But note that mounting filesystems is not inherently dangerous, it is just that our tools don't work well with hidden mount points and Cockpit tries to protect against that, but failed in the case of btrfs.

Comment 8 Lukas Ruzicka 2026-04-13 18:21:39 UTC
AGREED RejectedFinalBlocker AcceptedFinalFreezeException

Discussed at the 2026-04-13 (blocker / freeze exception) review meeting:

This is an awkward corner case if you encounter it, but you have to do something that's not really necessary to hit it (try and mount filesystems). It doesn't crash the installer or eat any data; you just get a bit stuck. You can recover with a manual unmount, or by rebooting and trying again. We agreed this doesn't really clearly violate either the cited criterion or the Final "Disk layouts" criterion. It's accepted as an FE because we would like to fix this small footgun safely if possible.

https://meetbot-raw.fedoraproject.org//blocker-review_matrix_fedoraproject-org/2026-04-13/f44-blocker-review.2026-04-13-16.00.log.txt

Comment 9 Adam Williamson 2026-04-13 20:23:45 UTC
Can we backport the fix for F44 today or tomorrow? It would be nice indeed to have this fixed for the Final installers.

Comment 10 Katerina Koukiou 2026-04-14 06:32:14 UTC
Marius merged the fix already: https://github.com/cockpit-project/cockpit/pull/23115

Martin can we have this release for F44 today?

Comment 11 Marius Vollmer 2026-04-14 07:24:45 UTC
I have tagged cockpit 360.1: 

https://github.com/cockpit-project/cockpit/releases/tag/360.1
https://src.fedoraproject.org/rpms/cockpit/pull-request/423

There seems to be trouble building rpms because somehow cockpit.spec ended up with "Version: 36360.1.1":

https://src.fedoraproject.org/rpms/cockpit/pull-request/423#request_diff

Comment 12 Marius Vollmer 2026-04-14 07:31:25 UTC
> somehow cockpit.spec ended up with "Version: 36360.1.1":

This smells like our fix-spec script has been applied to a soec file that already had the right version.  (The script just replaces a "0" in the "Version" line with the right version and if you start with our template that has "Version: 0" and do that twice, you end up with "36360.1.1".)

Comment 13 Jelle van der Waa 2026-04-14 07:40:46 UTC
See https://github.com/cockpit-project/cockpit/pull/23110

Comment 14 Marius Vollmer 2026-04-14 07:42:52 UTC
>> somehow cockpit.spec ended up with "Version: 36360.1.1":

> This smells like our fix-spec script has been applied to a soec file that already had the right version.  (The script just replaces a "0" in the "Version" line with the right version and if you start with our template that has "Version: 0" and do that twice, you end up with "36360.1.1".)

Ah, this is know and being fixed here: https://github.com/cockpit-project/cockpit/pull/23110

And the release is also being hand-fixed to be able to proceed.

Computers! Luckily AI will fix all that.

Comment 15 tk2345_ 2026-04-14 08:00:30 UTC
With https://github.com/cockpit-project/cockpit/pull/23115 I guess the user still sees Unmount actions on all mounted subvolumes. Without Mount actions, the user must have used an external tool to mount them. With an external tool the user can mount the subvolumes in the wrong order, still triggering the issue.

Comment 16 Marius Vollmer 2026-04-14 08:07:41 UTC
(In reply to tk2345_ from comment #15)
> With https://github.com/cockpit-project/cockpit/pull/23115 I guess the user
> still sees Unmount actions on all mounted subvolumes. Without Mount actions,
> the user must have used an external tool to mount them. With an external
> tool the user can mount the subvolumes in the wrong order, still triggering
> the issue.

You are absolutely right!

Comment 17 Fedora Update System 2026-04-14 10:40:13 UTC
FEDORA-2026-ea792bf240 (cockpit-360.1-1.fc44) has been submitted as an update to Fedora 44.
https://bodhi.fedoraproject.org/updates/FEDORA-2026-ea792bf240

Comment 18 Fedora Update System 2026-04-15 01:09:55 UTC
FEDORA-2026-ea792bf240 has been pushed to the Fedora 44 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2026-ea792bf240`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2026-ea792bf240

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 19 Adam Williamson 2026-04-15 15:41:14 UTC
> There seems to be trouble building rpms because somehow cockpit.spec ended up with "Version: 36360.1.1":

I know you guys release fast but this is ridiculous! ;)

Comment 20 tk2345_ 2026-04-15 19:11:20 UTC
I'm still able to mount btrfs subvolumes in Fedora 44 WS RC-1.2, but only in the correct order. "Mount" is not offered for non-btrfs volumes.

https://github.com/cockpit-project/cockpit/pull/23109 works.
https://github.com/cockpit-project/cockpit/pull/23115 works partially.

Comment 21 Fedora Update System 2026-04-16 23:41:28 UTC
FEDORA-2026-ea792bf240 (cockpit-360.1-1.fc44) has been pushed to the Fedora 44 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 22 Marius Vollmer 2026-04-17 06:15:45 UTC
(In reply to tk2345_ from comment #20)

> I'm still able to mount btrfs subvolumes in Fedora 44 WS RC-1.2, [...]

Ouch, I missed that subvolumes have their own actions.  Thanks for reporting!

Comment 23 Marius Vollmer 2026-04-17 07:09:23 UTC
(In reply to Marius Vollmer from comment #22)
> (In reply to tk2345_ from comment #20)
> 
> > I'm still able to mount btrfs subvolumes in Fedora 44 WS RC-1.2, [...]
> 
> Ouch, I missed that subvolumes have their own actions.  Thanks for reporting!

It is being fixed here: https://github.com/cockpit-project/cockpit/pull/23149

I expect it to be released next week as part of Cockpit 361. Let me know if that is good enough for you.

Comment 24 Adam Williamson 2026-04-17 07:12:01 UTC
It would be great if we could get it today (Friday) or Monday for the next RC.

Comment 25 Marius Vollmer 2026-04-21 12:16:51 UTC
The 361 release is now proposed here: https://src.fedoraproject.org/rpms/cockpit/pull-request/427

Comment 26 Jelle van der Waa 2026-04-22 09:49:06 UTC
Since the issue is closed I can't edit the bodhi update to add this ticket to https://bodhi.fedoraproject.org/updates/FEDORA-2026-adecf05ea9

Adam, what is usually the procedure here?

Comment 27 Kamil Páral 2026-04-22 11:10:19 UTC
Bodhi prevents you from adding a closed bug? That's unexpected. Isn't the problem that the update is created by packit and you can't edit it?

Either way, reopening this bug, until the remaining fix is pushed. Please try to edit the update again.

Comment 28 Fedora Update System 2026-04-22 15:51:01 UTC
FEDORA-2026-adecf05ea9 (cockpit-361-1.fc44) has been submitted as an update to Fedora 44.
https://bodhi.fedoraproject.org/updates/FEDORA-2026-adecf05ea9

Comment 29 Fedora Update System 2026-04-23 01:34:40 UTC
FEDORA-2026-adecf05ea9 has been pushed to the Fedora 44 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2026-adecf05ea9`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2026-adecf05ea9

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 30 Fedora Update System 2026-04-25 01:49:22 UTC
FEDORA-2026-adecf05ea9 (cockpit-361-1.fc44) has been pushed to the Fedora 44 stable repository.
If problem still persists, please make note of it in this bug report.


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