Bug 1687111

Summary: AttributeError: 'USBNetDevice' object has no attribute 'name' when starting redfish-finder service
Product: Red Hat Enterprise Linux 8 Reporter: Rachel Sibley <rasibley>
Component: redfish-finderAssignee: Neil Horman <nhorman>
Status: CLOSED ERRATA QA Contact: Rachel Sibley <rasibley>
Severity: high Docs Contact: Jaroslav Klech <jklech>
Priority: high    
Version: 8.0CC: ahuang12, bhu, core-kernel-mgr, jkachuck, jklech, nhorman, Smahmoud, tbowling, toneata
Target Milestone: rcKeywords: ZStream
Target Release: 8.1Flags: pm-rhel: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
.The `redfish-finder` service properly sets up BMC communication Previously, the `redfish-finder` service became unresponsive when it could not find a USB network interface for the baseboard management controller (BMC). Consequently, `redfish-finder` failed to set up BMC communication. This update reverts an early patch that byte-swaps the USB IDs to work around an early firmware issue. As a result, `redfish-finder` now functions as expected.
Story Points: ---
Clone Of:
: 1717383 (view as bug list) Environment:
Last Closed: 2019-11-05 20:53:59 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: 1660905, 1666894, 1671421, 1717383    

Description Rachel Sibley 2019-03-09 22:04:40 UTC
Description of problem:
Starting redfish-finder service fails with with the following error: AttributeError: 'USBNetDevice' object has no attribute 'name'

Version-Release number of selected component (if applicable):
~]# rpm -q redfish-finder
redfish-finder-0.2-1.el8.noarch

How reproducible:
Always

Steps to Reproduce:
1. yum info redfish-finder
2. systemctl start redfish-finder
3.

Actual results:
redfish-finder fails to start

Expected results:
redfish-finder starts successfully

Additional info:
~]# dmidecode --type 42
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 3.2.1 present.
# SMBIOS implementations newer than version 3.2.0 are not
# fully supported by this version of dmidecode.

Handle 0x3532, DMI type 42, 169 bytes
Management Controller Host Interface
	Host Interface Type: Network
	Device Type: USB
		idVendor: 0x04b3
		idProduct: 0x4010
		Protocol ID: 04 (Redfish over IP)
			Service UUID: 868ec9e7-037d-1f46-9519-cb5fe0f45a63
			Host IP Assignment Type: Static
			Host IP Address Format: IPv4
			IPv4 Address: 192.168.1.2
			IPv4 Mask: 255.255.255.0
			Redfish Service IP Discovery Type: Static
			Redfish Service IP Address Format: IPv4
			IPv4 Redfish Service Address: 192.168.1.1
			IPv4 Redfish Service Mask: 255.255.255.0
			Redfish Service Port: 443
			Redfish Service Vlan: 0
			Redfish Service Hostname: redfish-devel-xcc


~]# systemctl status redfish-finder
● redfish-finder.service - Redfish host api discovery service
   Loaded: loaded (/usr/lib/systemd/system/redfish-finder.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Sat 2019-03-09 16:57:04 EST; 10s ago
  Process: 23811 ExecStart=/usr/bin/redfish-finder (code=exited, status=1/FAILURE)
 Main PID: 23811 (code=exited, status=1/FAILURE)

Mar 09 16:57:04 <redacted> redfish-finder[23811]:   File "/usr/bin/redfish-finder", line 453, in main
Mar 09 16:57:04 <redacted> redfish-finder[23811]:     conn = nmConnection(smbios_info.device)
Mar 09 16:57:04 <redacted> redfish-finder[23811]:   File "/usr/bin/redfish-finder", line 350, in __init__
Mar 09 16:57:04 <redacted> redfish-finder[23811]:     self.cmdlinedown = "nmcli con down id " + self.ifc.getifcname()
Mar 09 16:57:04 <redacted> redfish-finder[23811]:   File "/usr/bin/redfish-finder", line 50, in getifcname
Mar 09 16:57:04 <redacted> redfish-finder[23811]:     return self.name
Mar 09 16:57:04 <redacted> redfish-finder[23811]: AttributeError: 'USBNetDevice' object has no attribute 'name'
Mar 09 16:57:04 <redacted> systemd[1]: redfish-finder.service: Main process exited, code=exited, status=1/FAILURE
Mar 09 16:57:04 <redacted> systemd[1]: redfish-finder.service: Failed with result 'exit-code'.
Mar 09 16:57:04 <redacted> systemd[1]: Failed to start Redfish host api discovery service.

Comment 1 Neil Horman 2019-03-12 14:50:33 UTC
This needs an upstream backport to handle the usb device/vendor id swapping found on the lenovo firmware.  Now that the firmware is updated I can get the latest upstream sources to fix it.  Though your target release is set to 8.0.  Does this need to be a blocker (assuming we have time for that), or an 8.1 target with a z-stream backport

Comment 2 Rachel Sibley 2019-03-12 15:02:17 UTC
@nhorman I am ok with setting to 8.1 with a z-stream backport, I'm not sure how many customers are relying on this feature for 8.0, is there a workaround for this ?

Comment 3 Neil Horman 2019-03-12 16:24:43 UTC
ok, lets do this as an 8.1 fix with a z-stream.  The field workaround would be manual modification of /usr/bin/redfish-finder with a small patch.  Ugly, but workable.  And this will be an early z-stream batch, so I think we're ok.

Comment 4 Neil Horman 2019-04-25 11:34:30 UTC
*** Bug 1702863 has been marked as a duplicate of this bug. ***

Comment 7 Joseph Kachuck 2019-06-05 14:34:22 UTC
Hello,
This bug has been copied as 8.0.0 z-stream bug #1717383

Thank You
Joe Kachuck

Comment 9 Rachel Sibley 2019-09-25 16:14:48 UTC
Verified as fixed with latest redfish-finder rpm, I do see a warning about parsing, but the service started
successfully, a separate bz can be filed if deemed necessary:
redfish-finder: Unexpected error parsing ServiceConfig

Before:
================
~]# rpm -q redfish-finder
redfish-finder-0.2-1.el8.noarch

~]#  systemctl start redfish-finder
Job for redfish-finder.service failed because the control process exited with error code.
See "systemctl status redfish-finder.service" and "journalctl -xe" for details.

~]# systemctl status redfish-finder
● redfish-finder.service - Redfish host api discovery service
   Loaded: loaded (/usr/lib/systemd/system/redfish-finder.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2019-09-25 12:09:28 EDT; 13s ago
  Process: 18508 ExecStart=/usr/bin/redfish-finder (code=exited, status=1/FAILURE)
 Main PID: 18508 (code=exited, status=1/FAILURE)

Sep 25 12:09:28 redfish-devel.desktop.lab.eng.rdu2.redhat.com redfish-finder[18508]:   File "/usr/bin/redfish-finder", line 453, in main
Sep 25 12:09:28 redfish-devel.desktop.lab.eng.rdu2.redhat.com redfish-finder[18508]:     conn = nmConnection(smbios_info.device)
Sep 25 12:09:28 redfish-devel.desktop.lab.eng.rdu2.redhat.com redfish-finder[18508]:   File "/usr/bin/redfish-finder", line 350, in __init__
Sep 25 12:09:28 redfish-devel.desktop.lab.eng.rdu2.redhat.com redfish-finder[18508]:     self.cmdlinedown = "nmcli con down id " + self.ifc.getifcname()
Sep 25 12:09:28 redfish-devel.desktop.lab.eng.rdu2.redhat.com redfish-finder[18508]:   File "/usr/bin/redfish-finder", line 50, in getifcname
Sep 25 12:09:28 redfish-devel.desktop.lab.eng.rdu2.redhat.com redfish-finder[18508]:     return self.name
Sep 25 12:09:28 redfish-devel.desktop.lab.eng.rdu2.redhat.com redfish-finder[18508]: AttributeError: 'USBNetDevice' object has no attribute 'name'
Sep 25 12:09:28 redfish-devel.desktop.lab.eng.rdu2.redhat.com systemd[1]: redfish-finder.service: Main process exited, code=exited, status=1/FAILURE
Sep 25 12:09:28 redfish-devel.desktop.lab.eng.rdu2.redhat.com systemd[1]: redfish-finder.service: Failed with result 'exit-code'.
Sep 25 12:09:28 redfish-devel.desktop.lab.eng.rdu2.redhat.com systemd[1]: Failed to start Redfish host api discovery service.

After:
================
~]# rpm -q redfish-finder
redfish-finder-0.3-3.el8.noarch

~]# systemctl stop redfish-finder

~]# systemctl start redfish-finder

~]# systemctl status redfish-finder
● redfish-finder.service - Redfish host api discovery service
   Loaded: loaded (/usr/lib/systemd/system/redfish-finder.service; disabled; vendor preset: disabled)
   Active: active (exited) since Wed 2019-09-25 12:11:33 EDT; 5s ago
  Process: 18913 ExecStart=/usr/bin/redfish-finder (code=exited, status=0/SUCCESS)
 Main PID: 18913 (code=exited, status=0/SUCCESS)

Sep 25 12:11:33 redfish-devel.desktop.lab.eng.rdu2.redhat.com redfish-finder[18913]: Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/A>
Sep 25 12:11:33 redfish-devel.desktop.lab.eng.rdu2.redhat.com redfish-finder[18913]: redfish-finder: Getting dmidecode info
Sep 25 12:11:33 redfish-devel.desktop.lab.eng.rdu2.redhat.com redfish-finder[18913]: redfish-finder: Unexpected error parsing ServiceConfig
Sep 25 12:11:33 redfish-devel.desktop.lab.eng.rdu2.redhat.com redfish-finder[18913]: redfish-finder: Building NetworkManager connection info
Sep 25 12:11:33 redfish-devel.desktop.lab.eng.rdu2.redhat.com redfish-finder[18913]: redfish-finder: Obtaining OS config info
Sep 25 12:11:33 redfish-devel.desktop.lab.eng.rdu2.redhat.com redfish-finder[18913]: redfish-finder: Converting SMBIOS Host Config to NetworkManager Connection info
Sep 25 12:11:33 redfish-devel.desktop.lab.eng.rdu2.redhat.com redfish-finder[18913]: redfish-finder: Applying NetworkManager connection configuration changes
Sep 25 12:11:33 redfish-devel.desktop.lab.eng.rdu2.redhat.com redfish-finder[18913]: redfish-finder: Adding redfish host info to OS config
Sep 25 12:11:33 redfish-devel.desktop.lab.eng.rdu2.redhat.com redfish-finder[18913]: redfish-finder: Done, BMC is now reachable via hostname redfish-localhost
Sep 25 12:11:33 redfish-devel.desktop.lab.eng.rdu2.redhat.com systemd[1]: Started Redfish host api discovery service.

Comment 11 errata-xmlrpc 2019-11-05 20:53:59 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2019:3351