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