Enabling or disabling a dasd-fba device from the installer, for a zVM, results in a dasdview error

Bug #1899692 reported by John George
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Ubuntu on IBM z Systems
Fix Released
Undecided
Unassigned
subiquity
Fix Released
Undecided
Unassigned

Bug Description

Enabling or disabling a dasd-fba device from the installer results in a Traceback

dasd-fba
0.0.0101 online dasdc ▸
0.0.0102 online dasdd ▸
0.0.0103 online dasde ▸┌────────────┐
0.0.0104 ▸│◂ (close) │
                                             │ Enable │
dasd-eckd │ Disable │
0.0.0190 ▸└────────────┘

Traceback (most recent call last):
  File "/snap/subiquity/2027/lib/python3.6/site-packages/probert/storage.py", line 109, in _extract_partition_table
    ptable = json.loads(output)
  File "/snap/subiquity/2027/usr/lib/python3.6/json/__init__.py", line 354, in loads
    return _default_decoder.decode(s)
  File "/snap/subiquity/2027/usr/lib/python3.6/json/decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/snap/subiquity/2027/usr/lib/python3.6/json/decoder.py", line 355, in raw_decode
    obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 8 column 4 (char 151)

The 1602279883.248446465.install_fail.crash file in the attached tgz reports errors from dasdview:
         Checking if dasd 0.0.0101 needs formatting
         Running command ['dasdview', '--extended', '/dev/dasdc'] with allowed return codes [0] (capture=True)
         An error occured handling 'dasd-dasdc': ValueError - dasdview output has fewer than 52 lines, cannot parse
         finish: cmd-install/stage-partitioning/builtin/cmd-block-meta: FAIL: configuring dasd: dasd-dasdc
         TIMED BLOCK_META: 19.334
         finish: cmd-install/stage-partitioning/builtin/cmd-block-meta: FAIL: curtin command block-meta
         Traceback (most recent call last):
           File "/snap/subiquity/2027/lib/python3.6/site-packages/curtin/commands/main.py", line 202, in main
             ret = args.func(args)
           File "/snap/subiquity/2027/lib/python3.6/site-packages/curtin/log.py", line 97, in wrapper
             return log_time("TIMED %s: " % msg, func, *args, **kwargs)
           File "/snap/subiquity/2027/lib/python3.6/site-packages/curtin/log.py", line 79, in log_time
             return func(*args, **kwargs)
           File "/snap/subiquity/2027/lib/python3.6/site-packages/curtin/commands/block_meta.py", line 111, in block_meta
             return meta_custom(args)
           File "/snap/subiquity/2027/lib/python3.6/site-packages/curtin/commands/block_meta.py", line 1916, in meta_custom
             handler(command, storage_config_dict)
           File "/snap/subiquity/2027/lib/python3.6/site-packages/curtin/commands/block_meta.py", line 564, in dasd_handler
             disk_layout, label)):
           File "/snap/subiquity/2027/lib/python3.6/site-packages/curtin/block/dasd.py", line 561, in needs_formatting
             if layout != self.disk_layout():
           File "/snap/subiquity/2027/lib/python3.6/site-packages/curtin/block/dasd.py", line 519, in disk_layout
             view = dasdview(self.devname)
           File "/snap/subiquity/2027/lib/python3.6/site-packages/curtin/block/dasd.py", line 65, in dasdview
             return _parse_dasdview(out)
           File "/snap/subiquity/2027/lib/python3.6/site-packages/curtin/block/dasd.py", line 226, in _parse_dasdview
             'dasdview output has fewer than 52 lines, cannot parse')
         ValueError: dasdview output has fewer than 52 lines, cannot parse
         dasdview output has fewer than 52 lines, cannot parse

This failure is seen when doing a new install to the Solutions QA zVM guest s5lp1-gen03.

Revision history for this message
John George (jog) wrote :
Revision history for this message
Frank Heimes (fheimes) wrote :
Download full text (3.8 KiB)

I tried the activation of DASD FBA devices again - with the 20.10 installer (ISO image Oct 1st) and the 20.04.1 installer and it failed for me on 20.10 only - hence I think a regression got introduced.

During DASD FBA activations I see (on groovy) the following error msg in subiquity:
----------%<--------------------%<--------------------%<--------------------%<----------
result = self.fn(*self.args, **self.kwargs)
                   File "/snap/subiquity/2027/lib/python3.6/site-packages/subiquitycore/prober.py", line 60, in get_storage
                                                                                                                               return Storage().probe(probe_types=probe_types)
                                                                                                                                                                                File "/snap/subiquity/2027/lib/python3.6/site-packages/probert/storage.py", line 186, in probe
                                    probed_data[ptype] = pfunc(context=self.context)

File "/snap/subiquity/2027/lib/python3.6/site-packages/probert/storage.py", line 128, in blockdev_probe

                                                                                                                                                                                                 ptable = _extract_partition_table(device['DEVNAME'])
         File "/snap/subiquity/2027/lib/python3.6/site-packages/probert/storage.py", line 111, in _extract_partition_table
                                                                                                                              log.error('Failed to load sfdisk json output:', e)
                                                                                                                                                                                Message: 'Failed to load sfdisk json output:'
                                                                                                                                                                                                                             Arguments: (JSONDecodeError('Expecting property name enclosed in double quotes: line 8 column 4 (char 151)',),)

Logging error ---
                                                                                                                   Traceback (most recent call last):
                                                                                                                                                       File "/snap/subiquity/2027/lib/python3.6/site-packages/probert/storage.py", line 109, in _extract_partition_table

                              ptable = json.loads(output)
File "/snap/subiquity/2027/usr/lib/python3.6/json/__init__.py", line 354, in loads
                                                                                                                                                 return _default_decoder.decode(s)
                                                                                                                                                                  ...

Read more...

Revision history for this message
Frank Heimes (fheimes) wrote :
Revision history for this message
Frank Heimes (fheimes) wrote :

/var/crash from 20.10 installation (/var/crash was empty)

Revision history for this message
Frank Heimes (fheimes) wrote :

/var/crash from 20.04.1 installation (/var/crash was empty)

Revision history for this message
Frank Heimes (fheimes) wrote :
Revision history for this message
Dimitri John Ledkov (xnox) wrote :

Bumping subiquity to use that probert commit in edge.

Then will create a beta build, based on last subiquity tag + that newer probert.

Frank Heimes (fheimes)
Changed in ubuntu-z-systems:
status: New → In Progress
Revision history for this message
Frank Heimes (fheimes) wrote :

I just retried a 20.10 installation with a special subiquity build from edge that includes the fix
https://github.com/canonical/probert/pull/100
"subiquity 20.09.1+git94.42b4aec4 2094 latest/edge canonical* classic"

With this build the python errors do not show up anymore and don't scramble the subiquity screens anymore.

The DASD FBA devices also seem to be properly activated now:
root@ubuntu-server:/# lszdev dasd-fba --online
TYPE ID ON PERS NAMES
dasd-fba 0.0.0101 yes yes dasda
dasd-fba 0.0.0102 yes yes dasdb
dasd-fba 0.0.0103 yes yes dasdc
dasd-fba 0.0.0104 yes yes dasdd
root@ubuntu-server:/#

In /var/crash I can see several entries - some are due to the fact that I had to restart the installer after having subiquity updated to the edge-version, others are probably the old dasdview error (due to DASD FBA) that is now properly written to disk ...

I'm attaching entire /var/log and /var/crash - just in case ...

Changed in ubuntu-z-systems:
status: In Progress → Fix Committed
no longer affects: curtin
Revision history for this message
Dimitri John Ledkov (xnox) wrote :

One of the crashes is a separate serial-only issue. Opened https://bugs.launchpad.net/subiquity/+bug/1900707 for tracking.

Revision history for this message
Frank Heimes (fheimes) wrote :

Just retried subiquity beta based on 20.10:
"subiquity 20.09.1+git1.67496d12 2100 latest/stable/… canonical* classic"

After having 4 DASD FBAs activated without any visual issue (python errors etc.)
root@ubuntu-server:/# lszdev dasd-fba --online
TYPE ID ON PERS NAMES
dasd-fba 0.0.0101 yes yes dasda
dasd-fba 0.0.0102 yes yes dasdb
dasd-fba 0.0.0103 yes yes dasdc
dasd-fba 0.0.0104 yes yes dasdd

I checked /var/crash and even that is empty:
root@ubuntu-server:/# ls -la /var/crash/
total 0
drwxrwxrwt 1 root root 40 Oct 20 16:23 .
drwxr-xr-x 1 root root 160 Oct 20 09:46 ..

With that I assume that LP 1900707 can be closed, again?!

Revision history for this message
Frank Heimes (fheimes) wrote :

Retried again with
http://cdimage.ubuntu.com/ubuntu-server/daily-live/20201020.1/groovy-live-server-s390x.iso
and I can confirm that it works fine (incl. 1900707).

Closing this ticket as Fix Released.

Changed in ubuntu-z-systems:
status: Fix Committed → Fix Released
Changed in subiquity:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.