Bug 2346831
| Summary: | fwupdmgr fails with kernel-6.14.0-0.rc3.29.fc42 | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Olivier Fourdan <ofourdan> | ||||
| Component: | kernel | Assignee: | Kernel Maintainer List <kernel-maint> | ||||
| Status: | CLOSED UPSTREAM | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
| Severity: | medium | Docs Contact: | |||||
| Priority: | unspecified | ||||||
| Version: | 42 | CC: | acaringi, adscvr, airlied, bskeggs, bugzilla.redhat, hdegoede, hpa, josef, kernel-maint, linville, masami256, mchehab, ptalbert, rhughes, steved, suraj.ghimire7 | ||||
| Target Milestone: | --- | Keywords: | Regression | ||||
| Target Release: | --- | ||||||
| Hardware: | x86_64 | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2025-03-03 11:14:11 UTC | Type: | --- | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Attachments: |
|
||||||
|
Description
Olivier Fourdan
2025-02-20 15:49:07 UTC
Created attachment 2077237 [details]
Boot messages
I bisected it to:
commit 908af31f4896f2c0645031f8b74a89d3a8beb5b9
Author: James Bottomley <James.Bottomley>
Date: Sun Jan 19 10:12:12 2025 -0500
efivarfs: fix error on write to new variable leaving remnants
Make variable cleanup go through the fops release mechanism and use
zero inode size as the indicator to delete the file. Since all EFI
variables must have an initial u32 attribute, zero size occurs either
because the update deleted the variable or because an unsuccessful
write after create caused the size never to be set in the first place.
In the case of multiple racing opens and closes, the open is counted
to ensure that the zero size check is done on the last close.
Even though this fixes the bug that a create either not followed by a
write or followed by a write that errored would leave a remnant file
for the variable, the file will appear momentarily globally visible
until the last close of the fd deletes it. This is safe because the
normal filesystem operations will mediate any races; however, it is
still possible for a directory listing at that instant between create
and close contain a zero size variable that doesn't exist in the EFI
table.
Signed-off-by: James Bottomley <James.Bottomley>
Signed-off-by: Ard Biesheuvel <ardb>
I've emailed James and he's come up with a fixup patch that I'm just building and testing now. I can work around the behaviour in https://github.com/fwupd/fwupd/pull/8500 (which is also the arguably correct thing to do) but it's going to cause some personal panic as I have to get an updated fwupd out on all distros so we'll need releases for multiple branches.
The fixup branch has been merged upstream now, so hopefully we'll pick this up for the next rc. |