Bug 1156285 - Tumbleweed installation fails with error in y2network/sysconfig/type_detector.rb
Tumbleweed installation fails with error in y2network/sysconfig/type_detector.rb
Status: RESOLVED FIXED
Classification: openSUSE
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Installation
Current
S/390-64 openSUSE Factory
: P5 - None : Normal (vote)
: ---
Assigned To: Knut Alejandro Anderssen González
Jiri Srain
https://trello.com/c/wGKdDJAo
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2019-11-08 10:15 UTC by Berthold Gunreben
Modified: 2022-09-12 10:34 UTC (History)
6 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
yast2 logs files (31.58 KB, application/octet-stream)
2019-11-08 10:15 UTC, Berthold Gunreben
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Berthold Gunreben 2019-11-08 10:15:02 UTC
Created attachment 823693 [details]
yast2 logs files

When trying to install Tumbleweed on s390x, yast fails during Initializing the Network Configuration. When executing "Read device configuration" I get the error:

 Caller:  /mounts/mp_0001/usr/share/YaST2/lib/y2network/sysconfig/type_detector.rb:34:in `type_by_config'
Details: private method `load' called for nil:NilClass

Attaching logs from save_y2logs.

Note that hwinfo --netcard finds the correct device:
 # hwinfo --netcard
09: CCW 00.0: 0286 OSA-Express controller
  [Created at s390.191]
  Unique ID: B9Bd.FOqOuhDmSR4
  SysFS ID: /devices/qeth/0.0.0800
  SysFS BusID: 0.0.0800
  SysFS Device Link: /devices/qeth/0.0.0800
  Hardware Class: network
  Model: "IBM OSA Express Network card"
  Vendor: int 0x6001 "IBM"
  Device: int 0x1731 "OSA Express Network card"
  SubVendor:
  SubDevice: int 0x1732
  Device File: enc800
  I/O Ports: 0x800-0x802 (rw)
  HW Address: 02:ff:ff:10:00:02
  Permanent HW Address: 02:ff:ff:10:00:02
  Link detected: yes
  Driver Info #0:
    Driver Status: qeth is active
    Driver Activation Cmd: "modprobe qeth"
  Config Status: cfg=no, avail=yes, need=no, active=unknown
  LCSS: 0.0
  CU Model: 0x1
  Device Model: 0x1
Comment 1 Knut Alejandro Anderssen González 2019-11-08 16:40:03 UTC
(In reply to Berthold Gunreben from comment #0)
> Created attachment 823693 [details]
> yast2 logs files
> 
> When trying to install Tumbleweed on s390x, yast fails during Initializing
> the Network Configuration. When executing "Read device configuration" I get
> the error:
> 
>  Caller: 
> /mounts/mp_0001/usr/share/YaST2/lib/y2network/sysconfig/type_detector.rb:34:
> in `type_by_config'
> Details: private method `load' called for nil:NilClass
> 
> Attaching logs from save_y2logs.
> 
> Note that hwinfo --netcard finds the correct device:
>  # hwinfo --netcard
> 09: CCW 00.0: 0286 OSA-Express controller
>   [Created at s390.191]
>   Unique ID: B9Bd.FOqOuhDmSR4
>   SysFS ID: /devices/qeth/0.0.0800
>   SysFS BusID: 0.0.0800
>   SysFS Device Link: /devices/qeth/0.0.0800
>   Hardware Class: network
>   Model: "IBM OSA Express Network card"
>   Vendor: int 0x6001 "IBM"
>   Device: int 0x1731 "OSA Express Network card"
>   SubVendor:
>   SubDevice: int 0x1732
>   Device File: enc800
>   I/O Ports: 0x800-0x802 (rw)
>   HW Address: 02:ff:ff:10:00:02
>   Permanent HW Address: 02:ff:ff:10:00:02
>   Link detected: yes
>   Driver Info #0:
>     Driver Status: qeth is active
>     Driver Activation Cmd: "modprobe qeth"
>   Config Status: cfg=no, avail=yes, need=no, active=unknown
>   LCSS: 0.0
>   CU Model: 0x1
>   Device Model: 0x1

There is definitely an error when inferring the type from the interface name by the type_detector:

https://github.com/yast/yast-network/blob/master/src/lib/y2network/sysconfig/interfaces_reader.rb#L126

https://github.com/yast/yast-network/blob/master/src/lib/y2network/sysconfig/type_detector.rb#L33

But that should only happend when no hwinfo.type is obtained.

Isn't there any other interfaces listed by hwinfo?

MMM could you open a console and check something before starting the installation?

Just run irb and check the hwinfo we are reading there:

irb(main):001:0> require "yast"
=> true
irb(main):002:0> require "y2network/hwinfo"
=> true

irb(main):004:0> Y2Network::Hwinfo.netcards
=> [#<Y2Network::Hwinfo:0x000002aa32c7d768 @hwinfo={"name"=>"OSA Express Network card (0.0.0700)", "type"=>"qeth", "udi"=>"", "sysfs_id"=>"/devices/css0/0.0.0007/0.0.0700", "dev_name"=>"", "requires"=>[], "modalias"=>"", "unique"=>"Kqhn.FOqOuhDmSR4", "driver"=>"", "num"=>0, "drivers"=>[{"active"=>true, "modprobe"=>true, "modules"=>[["qeth", ""]]}], "active"=>true, "module"=>"qeth", "options"=>"", "bus"=>"ccw", "busid"=>"0.0.0700", "mac"=>"", "permanent_mac"=>"", "link"=>nil, "wl_channels"=>nil, "wl_bitrates"=>nil, "wl_auth_modes"=>nil, "wl_enc_modes"=>nil}>, #<Y2Network::Hwinfo:0x000002aa32c7c688 @hwinfo={"name"=>"OSA Express Network card (0.0.0701)", "type"=>"qeth", "udi"=>"", "sysfs_id"=>"/devices/css0/0.0.0008/0.0.0701", "dev_name"=>"", "requires"=>[], "modalias"=>"", "unique"=>"n+xr.FOqOuhDmSR4", "driver"=>"", "num"=>1, "drivers"=>[{"active"=>true, "modprobe"=>true, "modules"=>[["qeth", ""]]}], "active"=>true, "module"=>"qeth", "options"=>"", "bus"=>"ccw", "busid"=>"0.0.0701", "mac"=>"", "permanent_mac"=>"", "link"=>nil, "wl_channels"=>nil, "wl_bitrates"=>nil, "wl_auth_modes"=>nil, "wl_enc_modes"=>nil}>, #<Y2Network::Hwinfo:0x000002aa32c732e0 @hwinfo={"name"=>"OSA Express Network card (0.0.0800)", "type"=>"qeth", "udi"=>"", "sysfs_id"=>"/devices/qeth/0.0.0800", "dev_name"=>"eth0", "requires"=>[], "modalias"=>"", "unique"=>"B9Bd.FOqOuhDmSR4", "driver"=>"", "num"=>2, "drivers"=>[{"active"=>true, "modprobe"=>true, "modules"=>[["qeth", ""]]}], "active"=>true, "module"=>"qeth", "options"=>"", "bus"=>"ccw", "busid"=>"0.0.0800", "mac"=>"02:00:00:00:02:9a", "permanent_mac"=>"02:00:00:00:02:9a", "link"=>true, "wl_channels"=>nil, "wl_bitrates"=>nil, "wl_auth_modes"=>nil, "wl_enc_modes"=>nil}>, #<Y2Network::Hwinfo:0x000002aa32c71d78 @hwinfo={"name"=>"OSA Express Network card (0.0.0702)", "type"=>"qeth", "udi"=>"", "sysfs_id"=>"/devices/css0/0.0.0009/0.0.0702", "dev_name"=>"", "requires"=>[], "modalias"=>"", "unique"=>"EBCw.FOqOuhDmSR4", "driver"=>"", "num"=>3, "drivers"=>[{"active"=>true, "modprobe"=>true, "modules"=>[["qeth", ""]]}], "active"=>true, "module"=>"qeth", "options"=>"", "bus"=>"ccw", "busid"=>"0.0.0702", "mac"=>"", "permanent_mac"=>"", "link"=>nil, "wl_channels"=>nil, "wl_bitrates"=>nil, "wl_auth_modes"=>nil, "wl_enc_modes"=>nil}>]
Comment 2 Berthold Gunreben 2019-11-11 08:12:44 UTC
(In reply to Knut Alejandro Anderssen González from comment #1)
> 
> There is definitely an error when inferring the type from the interface name
> by the type_detector:
> 
> https://github.com/yast/yast-network/blob/master/src/lib/y2network/sysconfig/
> interfaces_reader.rb#L126
> 
> https://github.com/yast/yast-network/blob/master/src/lib/y2network/sysconfig/
> type_detector.rb#L33
> 
> But that should only happend when no hwinfo.type is obtained.
> 
> Isn't there any other interfaces listed by hwinfo?

Sorry, I should have pasted the full output. Yes, there is another interface that has no connectivity:

 # hwinfo --netcard
09: CCW 00.0: 0286 OSA-Express controller
  [Created at s390.191]
  Unique ID: B9Bd.FOqOuhDmSR4
  SysFS ID: /devices/qeth/0.0.0800
  SysFS BusID: 0.0.0800
  SysFS Device Link: /devices/qeth/0.0.0800
  Hardware Class: network
  Model: "IBM OSA Express Network card"
  Vendor: int 0x6001 "IBM"
  Device: int 0x1731 "OSA Express Network card"
  SubVendor:
  SubDevice: int 0x1732
  Device File: enc800
  I/O Ports: 0x800-0x802 (rw)
  HW Address: 02:ff:ff:10:00:02
  Permanent HW Address: 02:ff:ff:10:00:02
  Link detected: yes
  Driver Info #0:
    Driver Status: qeth is active
    Driver Activation Cmd: "modprobe qeth"
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  LCSS: 0.0
  CU Model: 0x1
  Device Model: 0x1

14: IUCV 00.0: 0290 IUCV connection
  [Created at s390.256]
  Unique ID: jPaU.W3A5djgRqRC
  SysFS ID: /bus/iucv/devices/netiucv
  SysFS BusID: netiucv
  SysFS Device Link: /bus/iucv/devices/netiucv
  Hardware Class: network
  Model: "IBM IUCV"
  Vendor: int 0x6001 "IBM"
  Device: int 0x0005 "IUCV"
  Driver Info #0:
    Driver Status: netiucv is active
    Driver Activation Cmd: "modprobe netiucv"
  Config Status: avail=yes, active=yes


> 
> MMM could you open a console and check something before starting the
> installation?
> 
> Just run irb and check the hwinfo we are reading there:
> 
> irb(main):001:0> require "yast"
> => true
> irb(main):002:0> require "y2network/hwinfo"
> => true
> 
> irb(main):004:0> Y2Network::Hwinfo.netcards

# irb
irb(main):001:0> require "yast"
=> true
irb(main):002:0> require "y2network/hwinfo"
=> true
irb(main):003:0> Y2Network::Hwinfo.netcards
=> [#<Y2Network::Hwinfo:0x000002aa23b42830 @hwinfo={"name"=>"OSA Express Network card (0.0.0800)", "type"=>"qeth", "udi"=>"", "sysfs_id"=>"/devices/qeth/0.0.0800", "dev_name"=>"enc800", "requires"=>[], "modalias"=>"", "unique"=>"B9Bd.FOqOuhDmSR4", "driver"=>"", "num"=>0, "drivers"=>[{"active"=>true, "modprobe"=>true, "modules"=>[["qeth", ""]]}], "active"=>true, "module"=>"qeth", "options"=>"", "bus"=>"ccw", "busid"=>"0.0.0800", "mac"=>"02:ff:ff:10:00:02", "permanent_mac"=>"02:ff:ff:10:00:02", "link"=>true, "wl_channels"=>nil, "wl_bitrates"=>nil, "wl_auth_modes"=>nil, "wl_enc_modes"=>nil}>, #<Y2Network::Hwinfo:0x000002aa23b4ef90 @hwinfo={"name"=>"IUCV (netiucv)", "type"=>"iucv", "udi"=>"", "sysfs_id"=>"/bus/iucv/devices/netiucv", "dev_name"=>"", "requires"=>[], "modalias"=>"", "unique"=>"jPaU.W3A5djgRqRC", "driver"=>"", "num"=>1, "drivers"=>[{"active"=>true, "modprobe"=>true, "modules"=>[["netiucv", ""]]}], "active"=>true, "module"=>"netiucv", "options"=>"", "bus"=>"iucv", "busid"=>"netiucv", "mac"=>"", "permanent_mac"=>"", "link"=>nil, "wl_channels"=>nil, "wl_bitrates"=>nil, "wl_auth_modes"=>nil, "wl_enc_modes"=>nil}>]
Comment 3 Knut Alejandro Anderssen González 2019-11-13 09:36:42 UTC
We have done some re-factorization recenly in yast2-network, IUCV interfaces were marked as deprecated so we did not added support for them in the new code, but as hwinfo read them as a netcard we try to determine the interface type and list in the the interfaces list.

We should omit not supported interfaces from the list and of course not crashing when present.

I will add the bug to our "Incoming Board" in order to be planned and solved during next sprints.

Thnx for the bug report!
Comment 4 Knut Alejandro Anderssen González 2019-11-19 16:06:25 UTC
I'm already working on it.
Comment 5 Knut Alejandro Anderssen González 2020-01-14 13:42:03 UTC
It was already fixed in yast2-network-4.2.32
Comment 6 Berthold Gunreben 2020-01-17 15:55:49 UTC
Could you please double check that the fix is still in the sources? Todays openQA run (which is the first that gets so far since quite some time) fails with the exact same screen.
See also:

https://openqa.opensuse.org/tests/1144907#step/bootloader_s390/49
Comment 7 Berthold Gunreben 2020-01-17 15:59:30 UTC
Sergio just told me (rightly) that it is in a different function:

> But, the reported by you was in "type_by_config" the current fail is in
> "hostname_from_install_inf".