I use Anaconda Installer to install Fedora 40 on my mini PC, but installer crashed immediately.
Blivet detects Intel-based Apple Mac devices with the T2 security chip. The function is_t2mac relies on reading DMI information, but encounters errors when attempting to decode misconfigured information that cannot be interpreted as UTF-8. Specifically, the problem arises at buf = read_file(DMI_PRODUCT_NAME).strip().
Traceback:
```log
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ERROR:anaconda.modules.common.task.task:Thread AnaTaskThread-ScanDevicesTask-1 has failed: Traceback (most recent call last):
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib64/python3.12/site-packages/pyanaconda/core/threads.py", line 280, in run
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: threading.Thread.run(self)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib64/python3.12/threading.py", line 1010, in run
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: self._target(*self._args, **self._kwargs)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/common/task/task.py", line 94, in _thread_run_callback
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: self._task_run_callback()
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/common/task/task.py", line 107, in _task_run_callback
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: self._set_result(self.run())
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ^^^^^^^^^^
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/storage/reset.py", line 64, in run
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: self._reset_storage(self._storage)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/storage/reset.py", line 84, in _reset_storage
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: storage.reset()
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/threads.py", line 53, in run_with_lock
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: return m(*args, **kwargs)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ^^^^^^^^^^^^^^^^^^
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/storage/devicetree/model.py", line 265, in reset
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: super().reset(cleanup_only=cleanup_only)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/threads.py", line 53, in run_with_lock
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: return m(*args, **kwargs)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ^^^^^^^^^^^^^^^^^^
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/blivet.py", line 149, in reset
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: self.devicetree.populate(cleanup_only=cleanup_only)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/threads.py", line 53, in run_with_lock
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: return m(*args, **kwargs)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ^^^^^^^^^^^^^^^^^^
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/populator/populator.py", line 446, in populate
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: self._populate()
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/threads.py", line 53, in run_with_lock
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: return m(*args, **kwargs)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ^^^^^^^^^^^^^^^^^^
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/populator/populator.py", line 490, in _populate
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: self.handle_device(dev)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/threads.py", line 53, in run_with_lock
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: return m(*args, **kwargs)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ^^^^^^^^^^^^^^^^^^
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/populator/populator.py", line 309, in handle_device
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: self.handle_format(info, device)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/threads.py", line 53, in run_with_lock
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: return m(*args, **kwargs)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ^^^^^^^^^^^^^^^^^^
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/populator/populator.py", line 335, in handle_format
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: helper_class = self._get_format_helper(info, device=device)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/threads.py", line 53, in run_with_lock
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: return m(*args, **kwargs)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ^^^^^^^^^^^^^^^^^^
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/populator/populator.py", line 230, in _get_format_helper
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: return get_format_helper(info, device=device)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/populator/helpers/__init__.py", line 63, in get_format_helper
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: return _six.next((h for h in _format_helpers if h.match(data, device=device)), None)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/populator/helpers/__init__.py", line 63, in
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: return _six.next((h for h in _format_helpers if h.match(data, device=device)), None)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/populator/helpers/boot.py", line 59, in match
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: fmt = formats.get_format(cls._type_specifier)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/formats/__init__.py", line 101, in get_format
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: fmt = fmt_class(*args, **kwargs)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ^^^^^^^^^^^^^^^^^^^^^^^^^^
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/threads.py", line 53, in run_with_lock
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: return m(*args, **kwargs)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ^^^^^^^^^^^^^^^^^^
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/formats/fs.py", line 1282, in __init__
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: super(MacEFIFS, self).__init__(**kwargs)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/threads.py", line 53, in run_with_lock
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: return m(*args, **kwargs)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ^^^^^^^^^^^^^^^^^^
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/formats/fs.py", line 167, in __init__
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: if self.supported:
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ^^^^^^^^^^^^^^
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/threads.py", line 53, in run_with_lock
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: return m(*args, **kwargs)
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ^^^^^^^^^^^^^^^^^^
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/formats/fs.py", line 1277, in supported
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: return super(MacEFIFS, self).supported and arch.is_efi() and arch.is_mactel()
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ^^^^^^^^^^^^^^^^
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/arch.py", line 236, in is_mactel
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: elif is_t2mac():
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ^^^^^^^^^^
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/arch.py", line 221, in is_t2mac
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: buf = read_file(DMI_PRODUCT_NAME).strip()
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "/usr/lib/python3.12/site-packages/blivet/util.py", line 630, in read_file
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: content = f.read()
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: ^^^^^^^^
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: File "", line 322, in decode
May 29 09:55:06 localhost-live org.fedoraproject.Anaconda.Modules.Storage[3359]: UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 0: invalid start byte
```
Description:
I use Anaconda Installer to install Fedora 40 on my mini PC, but installer crashed immediately.
Blivet detects Intel-based Apple Mac devices with the T2 security chip. The function
is_t2mac
relies on reading DMI information, but encounters errors when attempting to decode misconfigured information that cannot be interpreted as UTF-8. Specifically, the problem arises atbuf = read_file(DMI_PRODUCT_NAME).strip()
.Traceback: