Bug 1501249 - Blivet should use libblockdev runtime dependency checking to avoid unnecessary failures due to missing unneeded binaries
Summary: Blivet should use libblockdev runtime dependency checking to avoid unnecessar...
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: python-blivet
Version: rawhide
Hardware: All
OS: Linux
unspecified
urgent
Target Milestone: ---
Assignee: Vojtech Trefny
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1500992
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-10-12 09:24 UTC by Vojtech Trefny
Modified: 2018-01-23 12:13 UTC (History)
22 users (show)

Fixed In Version: python-blivet-3.0.0.b1-1
Doc Type: If docs needed, set a value
Doc Text:
Clone Of: 1500992
Environment:
Last Closed: 2018-01-23 12:13:30 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Vojtech Trefny 2017-10-12 09:24:51 UTC
+++ This bug was initially created as a clone of Bug #1500992 +++

Since Fedora-Rawhide-20171001.n.0 , virtually all openQA install tests from non-live media appear to be failing; the only one I can see that passes is the 'no swap device' test.

All the others seem to be running into a problem with swap handling in autopart. In anaconda.log we see this:

12:27:34,911 INF blivet.autopart: Detected 2.06 GiB of memory
12:27:34,915 INF blivet.autopart: Suggested swap size (2.06 GiB) exceeds 10 % of disk space, using 10 % of disk space (0.0) instead.
12:27:34,917 INF blivet.autopart: Swap attempt of 0.0

That '0.0' does not look right, and I think is the key source of the problems. Depending on the path that's followed, installs either wind up showing 'Error checking storage configuration' on the main hub (if using guided partitioning) or hitting a traceback if using custom partitioning but clicking the 'create partitions for me' link:

14:59:50,418 DBG blivet.autopart: existing 10 GiB disk vda (13) with non-existent msdos disklabel
14:59:50,442 DBG ui.gui.spokes.custom_storage: finished automatic partitioning
14:59:50,442 DBG exception: running handleException
14:59:50,443 CRT exception: Traceback (most recent call last):

  File "/usr/lib64/python3.6/site-packages/pyanaconda/ui/gui/spokes/custom_storage.py", line 2504, in on_create_clicked
    self._do_autopart()

  File "/usr/lib64/python3.6/site-packages/pyanaconda/ui/gui/spokes/custom_storage.py", line 135, in decorated
    return func(*args, **kwargs)

  File "/usr/lib64/python3.6/site-packages/pyanaconda/ui/gui/spokes/custom_storage.py", line 2461, in _do_autopart
    min_luks_entropy=crypto.MIN_CREATE_ENTROPY)

  File "/usr/lib/python3.6/site-packages/blivet/autopart.py", line 511, in do_autopart
    devs = _schedule_partitions(storage, disks, devs)

  File "/usr/lib/python3.6/site-packages/blivet/autopart.py", line 302, in _schedule_partitions
    storage.create_device(dev)

  File "/usr/lib/python3.6/site-packages/blivet/threads.py", line 45, in run_with_lock
    return m(*args, **kwargs)

  File "/usr/lib/python3.6/site-packages/blivet/blivet.py", line 1118, in create_device
    self.devicetree.actions.add(ActionCreateFormat(device))

  File "/usr/lib/python3.6/site-packages/blivet/threads.py", line 45, in run_with_lock
    return m(*args, **kwargs)

  File "/usr/lib/python3.6/site-packages/blivet/deviceaction.py", line 551, in __init__
    raise ValueError("resource to create this format %s is unavailable" % self._format.type)

ValueError: resource to create this format swap is unavailable

You can explore the various error cases at e.g.:

https://openqa.fedoraproject.org/tests/overview?distri=fedora&version=Rawhide&build=Fedora-Rawhide-20171010.n.1&groupid=1

which is all the results for the Fedora-Rawhide-20171010.n.1 compose. Note that live installs succeed, for some reason. The same 'Swap attempt of 0.0' appears in the logs for live installs, but they manage to complete, I'm not sure why.

Proposing as an F28 Beta blocker as this breaks all installs, which violates all kinds of basic and Beta criteria.

--- Additional comment from Vendula Poncova on 2017-10-12 04:12:15 EDT ---

The fix for this problem is already in lorax: https://github.com/rhinstaller/lorax/pull/253

Comment 1 Vojtech Trefny 2017-10-12 09:27:03 UTC
Blivet should init libblockdev with the new runtime dependecy checking enabled so loading the swap module (in this case) won't fail only because swaplabel tool is missing.

Comment 2 Geoffrey Marr 2017-11-27 18:35:20 UTC
Discussed during the 2017-11-27 blocker review meeting: [1]

The decision to delay the classification of this as a bug was made as we're not sure why this duplicate bug has been submitted. We will get with the original submitter of the bug and discuss at next week's meeting.

[1] https://meetbot.fedoraproject.org/fedora-blocker-review/2017-11-27/f27-8-blocker-review.2017-11-27-17.01.txt

Comment 3 Adam Williamson 2017-11-27 21:31:40 UTC
Vojtech, can you explain precisely why this duplicate was needed? Is it still needed, or should it be closed? Thanks!

Comment 4 Vojtech Trefny 2017-11-29 08:00:02 UTC
The initial issue here was missing swaplabel binary on the CD (blivet depends on util-linux package, but lorax is removing some "unused" files to make the image smaller and it removed swaplabel too). This is fixed in lorax now (no longer removes swaplabel), but there is still issue in blivet -- it shouldn't fail just because the binary is missing (we don't even use swaplabel in Anaconda).

So, this bug is still needed, but the original blocker is fixed.

Comment 5 Adam Williamson 2017-11-29 16:43:45 UTC
I see. So I've updated the summary to something more useful and removed the proposed blocker status.


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