Bug 1394026

Summary: SAS address parsing issue
Product: [Fedora] Fedora Reporter: Jérôme Carretero <cJ-redhat>
Component: python-blivetAssignee: Blivet Maintenance Team <blivet-maint-list>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 25CC: anaconda-maint-list, awilliam, blivet-maint-list, cJ-redhat, g.kaviyarasu, jonathan, mkolman, pjones, robatino, sgallagh, tflink, vanmeeuwen+fedora, vponcova
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: RejectedBlocker AcceptedFreezeException
Fixed In Version: python-blivet-2.1.6-4.fc25 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-11-18 08:23:53 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1277290    

Description Jérôme Carretero 2016-11-10 20:50:32 UTC
Description of problem: fatal error pop-up at beginning of installation process

Version-Release number of selected component (if applicable):
 Fedora-Server-dvd-x86_64-25-20161108.n.1.iso

How reproducible:
 100% on machine with appropriate hardware

Steps to Reproduce:
1. Run installer
2. Wait
3. Observe

Actual results: Installer crash

Expected results: Installer works

Additional info: Check traceback below



Traceback (most recent call last):
  File "/usr/lib64/python3.5/site-packages/pyanaconda/threads.py", line 251, in run
    threading.Thread.run(self, *args, **kwargs)
  File "/usr/lib64/python3.5/threading.py", line 862, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/lib/python3.5/site-packages/blivet/osinstall.py", line 1175, in storage_initialize
    storage.reset()
  File "/usr/lib/python3.5/site-packages/blivet/threads.py", line 45, in run_with_lock
    return m(*args, **kwargs)
  File "/usr/lib/python3.5/site-packages/blivet/blivet.py", line 273, in reset
    self.edd_dict = get_edd_dict(self.partitioned)
  File "/usr/lib/python3.5/site-packages/blivet/devicelibs/edd.py", line 712, in get_edd_dict
    edd_entries_dict = collect_edd_data(root=root)
  File "/usr/lib/python3.5/site-packages/blivet/devicelibs/edd.py", line 649, in collect_edd_data
    edd_data_dict[biosdev] = EddEntry(path, root=root)
  File "/usr/lib/python3.5/site-packages/blivet/devicelibs/edd.py", line 194, in __init__
    self.load()
  File "/usr/lib/python3.5/site-packages/blivet/devicelibs/edd.py", line 319, in load
    self.sas_address = int(unknown_match.group(1), base=16)
ValueError: invalid literal for int() with base 16: 'SAS'

Local variables in innermost frame:
unknown_match: <_sre.SRE_Match object; span=(0, 36), match='SAS     \tunknown: 4433221100000000 0'>
sas_match: None
interface: SAS          unknown: 4433221100000000 0
self:   path: /sys/firmware/edd/int13_dev84/ version: 0x30 
        mbr_signature: None sectors: None SAS
interface: "SAS unknown: 4433221100000000 0"

Comment 1 Adam Williamson 2016-11-10 22:40:37 UTC
I am proposing this as a Final blocker just because I cannot wait to see people's faces...

Seriously, though, it's a violation of: "The installer must be able to complete an installation using any supported locally connected storage interface." SAS is a supported locally connected storage interface. https://fedoraproject.org/wiki/Fedora_25_Alpha_Release_Criteria#storage-interfaces

pjones, this is in code you wrote:

https://github.com/rhinstaller/blivet/commit/2c5bbf3f9a734240ac9f8621ccd7e27f97a806a7

the regex that's matched is:

re_interface_unknown = re.compile(r'^(\S*)\s*unknown: (\S*) (\S*)\s*$')

and then we do:

                        self.sas_address = int(unknown_match.group(1), base=16)
                        self.sas_lun = int(unknown_match.group(2), base=16)

just looking at the line that matched and the capture groups, 'obviously' we want groups 2 and 3, not 1 and 2. But that seems so obvious it almost makes me think I'm missing something.

Comment 2 Stephen Gallagher 2016-11-11 13:18:37 UTC
+1 blocker

Comment 3 Peter Jones 2016-11-11 17:39:39 UTC
https://github.com/rhinstaller/blivet/pull/524

Comment 4 Adam Williamson 2016-11-14 16:38:01 UTC
Jerome, can you please test with this updates image and see if it fixes the bug?

https://www.happyassassin.net/updates/1394026.0.img

to use it, boot the installer with inst.updates=https://www.happyassassin.net/updates/1394026.0.img as a kernel parameter. Thanks!

For the record, I don't think it really makes sense to take this as a blocker simply because we have no reliable testing capacity for SAS and have treated the test case for it pretty much as an in-joke for the last several releases. I'm intended to propose we revise the criterion to say something like 'commonly-used local storage interfaces' and include a list of what's specifically supported, e.g. PATA, SATA, VirtIO...

I'm moving around this morning and may not be at the meeting the whole time, so logging my thoughts in-bug.

Comment 5 Tim Flink 2016-11-14 18:21:50 UTC
I just ran a quick install on a machine with SAS drives and the install completed without issue.

That being said, this machine does have a RAID controller with no RAID set up which could be enough of a HW difference to make the test result useless. Without knowing more about the machine that produced the original error, it's hard for me to say.

Comment 6 Adam Williamson 2016-11-14 19:26:44 UTC
I *think* (based on pjones' references) the bug may affect only EDD (that's Enhanced Disk Device...I think) 4.0 hardware. I have absolutely no idea how common that is. pjones likely knows more.

Comment 7 Adam Williamson 2016-11-14 19:34:32 UTC
Discussed at 2016-11-14 blocker review meeting: https://meetbot-raw.fedoraproject.org/fedora-blocker-review/2016-11-14/f25-blocker-review.2016-11-14-17.00.html . Rejected as a blocker on the basis that we really don't want the criterion to cover interfaces we do not test regularly. We will discuss a specific criterion adjustment in more detail, but we are agreed that the criterion should be revised not to cover this issue.

Comment 8 Adam Williamson 2016-11-14 19:41:53 UTC
We did, however, accept it as a freeze exception issue.

Comment 9 Fedora Update System 2016-11-16 08:33:32 UTC
python-blivet-2.1.6-4.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2016-80f65e5670

Comment 10 Adam Williamson 2016-11-16 08:42:04 UTC
Can you try this again with F25 RC-1.3? Download links can be found at the top of https://fedoraproject.org/wiki/Test_Results:Fedora_25_RC_1.3_Installation . Thanks!

Comment 11 Fedora Update System 2016-11-16 20:25:54 UTC
python-blivet-2.1.6-4.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-80f65e5670

Comment 12 Fedora Update System 2016-11-18 08:23:53 UTC
python-blivet-2.1.6-4.fc25 has been pushed to the Fedora 25 stable repository. If problems still persist, please make note of it in this bug report.

Comment 13 Red Hat Bugzilla 2023-09-14 03:34:16 UTC
The needinfo request[s] on this closed bug have been removed as they have been unresolved for 1000 days