Public bug reported:

#### Problem Description

During canonical hardware certification execution on s390x systems
configured with both SCSI multipath (mpath) and DASD storage,
find_largest_partition() in checkbox_support/disk_support.py selects an
unintended DASD partition (e.g. /dev/dasdc1) instead of the target SCSI
multipath partition (e.g. /dev/mpathb-part1).#### Root Cause Analysis

The block device iteration in find_largest_partition() compares device sizes 
sequentially as returned by lsblk. When SCSI multipath is active, individual 
underlying SCSI paths (sda, sdb, etc.) and the aggregated multipath map 
(mpathb) appear as separate entries with identical partition sizes.
The decision condition:

cond_d = new_sz > old_sz and not new_lv
Execution sequence:


1. /dev/sda1 (e.g. 42.9 GB, part, ext4) is processed first and accepted as the 
currently largest partition.
2. /dev/mpathb-part1 (42.9 GB, part, ext4) is processed later. Because new_sz > 
old_sz evaluates to False (42,947,575,808 > 42,947,575,808 is False),cond_d is 
not met and the canonical multipath partition is skipped.
3. If DASD partitions (e.g. /dev/dasda1 / /dev/dasdc1 with ~44.3 GB) exist with 
slightly larger capacities, they subsequently win the comparison, resulting in 
DASD being incorrectly selected.

#### Steps to Reproduce

1. Set up an s390x system running Ubuntu 26.04 with configured SCSI multipath 
devices (mpathX) and DASD devices attached.
2. Ensure both SCSI multipath and DASD have valid filesystems/partitions (DASD 
slightly larger or SCSI paths evaluated before mpath).
3. Run the Canonical Certification precheck / tests invoking 
find_largest_partition().

#### Expected Behavior

The SCSI multipath device/partition (/dev/mpathX-partY /
/dev/mapper/mpathX-partY) should be recognized and selected as the
target partition, ignoring redundant underlying raw SCSI path devices
(sdX).

#### Actual Behavior

The multipath partition is ignored due to strictly-greater size
comparison against its own raw path, leading to DASD selection or
selection of a raw path member rather than the multipath device.

### Suggested Fix / Recommendation

Make checkbox_support/disk_support.py multipath-aware:


? Preferred: Filter out/ignore raw SCSI path member devices (sdX, sdXN) when a 
corresponding mpath device exists, processing only the canonical mpathX-partN 
entries.
? Alternative: Treat mpath-type devices similarly to logical volumes (lv), 
allowing preference over raw path counterparts when partition sizes are equal

As a temporary workaround we could disable DASDs. But that does not
sound like a proper solution.

** Affects: linux (Ubuntu)
     Importance: Undecided
     Assignee: Skipper Bug Screeners (skipper-screen-team)
         Status: New


** Tags: architecture-s39064 bugnameltc-222905 severity-high 
targetmilestone-inin---

** Tags added: architecture-s39064 bugnameltc-222905 severity-high
targetmilestone-inin---

** Changed in: ubuntu
     Assignee: (unassigned) => Skipper Bug Screeners (skipper-screen-team)

** Package changed: ubuntu => linux (Ubuntu)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2169272

Title:
  [UBUNTU 26.04] HW certification: find_largest_partition() returns
  wrong disk on s390x with SCSI multipath

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2169272/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to