All Fedora versions fail to install

Hi, I have tried to install various versions of Fedora (20,21, 34,35,36,37,38). I am using the Fedora Writer to download and write/check to the media (USB).
When attempting to ‘Install to Hard Drive’ (desktop gui), it either will ‘spin’ and then go away, or fail altogether.
On this latest, I ran from the terminal, with -d option. The results are similar to prior attempts. There are errors with specific scripts, e.g.

File “/usr/lib/python3.11/site-packages/blivet/populator/populator.py”, line 471, in _populate
new_devices = udev.get_devices()
I can’t upload logs, so this is the debug from liveinst command:
File “/usr/bin/anaconda-cleanup”, line 82, in
devicetree.populate(cleanup_only=True)
File “/usr/lib/python3.11/site-packages/blivet/threads.py”, line 53, in run_with_lock
return m(*args, **kwargs)
^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.11/site-packages/blivet/populator/populator.py”, line 446, in populate
self._populate()
File “/usr/lib/python3.11/site-packages/blivet/threads.py”, line 53, in run_with_lock
return m(*args, **kwargs)
^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.11/site-packages/blivet/populator/populator.py”, line 471, in _populate
new_devices = udev.get_devices()
^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.11/site-packages/blivet/udev.py”, line 105, in get_devices
dev = device_to_dict(device)
^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.11/site-packages/blivet/udev.py”, line 77, in device_to_dict
result = dict(device.properties)
^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.11/site-packages/pyudev/device/_device.py”, line 1101, in getitem
return ensure_unicode_string(value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.11/site-packages/pyudev/_util.py”, line 56, in ensure_unicode_string
value = value.decode(sys.getfilesystemencoding())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xdb in position 1: unexpected end of data
Starting installer, one moment…
anaconda 38.23.4-2.fc38 for Fedora 38 started.

  • installation log files are stored in /tmp during the installation
  • shell is available on TTY2 and in second TMUX pane (ctrl+b, then press 2)
  • when reporting a bug add logs from /tmp as separate text/plain attachments

(anaconda:3878): Gtk-WARNING **: 18:26:29.157: Theme parsing error: gtk.css:1649:16: ‘-gtk-icon-size’ is not a valid property name

(anaconda:3878): Gtk-WARNING **: 18:26:29.157: Theme parsing error: gtk.css:1652:16: ‘-gtk-icon-size’ is not a valid property name
Traceback (most recent call last):
File “/sbin/anaconda”, line 478, in
ignore_oemdrv_disks()
File “/usr/lib64/python3.11/site-packages/pyanaconda/ui/lib/storage.py”, line 415, in ignore_oemdrv_disks
matched = device_matches(“LABEL=OEMDRV”, disks_only=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib64/python3.11/site-packages/pyanaconda/core/storage.py”, line 180, in device_matches
single_spec_matches = udev.resolve_glob(full_spec)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.11/site-packages/blivet/udev.py”, line 192, in resolve_glob
for dev in get_devices():
^^^^^^^^^^^^^
File “/usr/lib/python3.11/site-packages/blivet/udev.py”, line 105, in get_devices
dev = device_to_dict(device)
^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.11/site-packages/blivet/udev.py”, line 77, in device_to_dict
result = dict(device.properties)
^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.11/site-packages/pyudev/device/_device.py”, line 1101, in getitem
return ensure_unicode_string(value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib/python3.11/site-packages/pyudev/_util.py”, line 56, in ensure_unicode_string
value = value.decode(sys.getfilesystemencoding())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xdb in position 1: unexpected end of data
This machine is an MSI MaxX570 Tomahawk WiFI, with AMD Ryzen 5700 G, 64 GB Ram.

You have a device property containing invalid UTF-8, which python infamously doesn’t tolerate well. From the comments on that issue, this may ultimately be caused by a kernel bug.

Can you try running this python code, tweaked slightly from the snippet in the issue?

#!/usr/bin/python3

import pyudev

context = pyudev.Context()

try:
    for device in context.list_devices(subsystem='block'):
        if 'PARTNAME' in device.properties:
            print(device.properties['PARTNAME'])

except UnicodeDecodeError:
    print(device)

This should help identify the device triggering the bug.

2 Likes

Chris,

first, apologies for the delay, but work…

second, this worked to resolve. I don’t think it’s a kernel bug per se. The Windows drive has a 16 MB parition with no identifiable file system. I’m not sure if it’s needed by MS, but for now, I’ll let it be. The label/name was definitiely not UTF. I cleared that. After that Fedora installed without a hitch.

Perhaps, as an ?enhancement, if there could be, either (a) ignore it, or (b) offer to replace the value for the user, after informing the user what the issue is/appears to be. This would have been less frustrating if I had been smart enough, or if the error was not hidden down in the logs. Granted, there could have been other reasons for a failure, but this seemed to be the only one, in my case.

Much, much thanks.

John

GPT partition names are encoded in UTF-16LE. The kernel bug is that it tries to convert that to ASCII, but improperly passes through bytes >127, inevitably making invalid UTF-8 multi-byte sequences: [PATCH v2 0/1] block: fix conversion of GPT partition name to 7-bit

I think it would be worth filing a bug for this in RHBZ. (I guess against the kernel? or maybe Anaconda?)

1 Like

The upstream issue is already tracked in pyudev, as you already linked above. I don’t think we need a bug downstream as well, it won’t speed it up.