All good for a final review and Eoan upload (followed by the SRUs then).

** Description changed:

+ [Impact]
+ 
+  * sg3-utils-udev package introduces 55-scsi-sg3_id.rules udev rule that
+ take places BEFORE rules either finding correct ID_SERIAL for the USB
+ block device, or calculating it from "usb_id" parameter:
+ 
+     - this rule changes USB ID_SERIAL parameter for the ones given by
+ the Vital Product Data from the block device.
+ 
+     - USB memory sticks might not provide VPD pages (0x80, 0x83) and,
+ because of that, the USB ID_SERIAL will be broken.
+ 
+     - because the failure in sg_inq command from the 55-XXX udev rules
+ file, to obtain the VPDs, the udev ACTION(add) takes long time and
+ consumers might not have considered a "settle" need.
+ 
+  * Anything depending on ID_SERIAL udev attribute from USB block devices
+ might not find appropriate device.
+ 
+  * Any type of udev consumer not calculating the need for a big 
time-consuming "udevadm settle" right after a pen drive is inserted
+ might not be able to see all USB block devices attributes from udev.
+ 
+ [Test Case]
+ 
+  * Install package "sg3-utils-udev", monitor journalctl -f while
+ introducing a memory stick in your machine and watch sg_inq command
+ failing:
+ 
+ systemd-udevd[1021]: Process '/usr/bin/sg_inq --export
+ --inhex=/sys/block/sdb/device/vpd_pg83 --raw' failed with exit code 15.
+ 
+  * Compare udevadm attributes with and without "sg3-utils-udev" package
+ is installed:
+ 
+ Without sg3-utils 55-scsi-sg3_id.rules:
+ 
+ $ udevadm info --query=all --name=/dev/sdb | grep -i serial
+ E: ID_SERIAL=Corsair_Voyager_Mini_3.0_070851D0E490C776-0:0
+ E: ID_SERIAL_SHORT=070851D0E490C776
+ 
+ With 55-scsi-sg3_id.rules:
+ 
+ $ udevadm info --query=all --name=/dev/sdb | grep -i serial
+ E: ID_SERIAL=3
+ E: ID_SERIAL_SHORT=2000acde48234567
+ 
+ [Regression Potential]
+ 
+  * Minor: either I brake functionality for sg3-utils packages on USB
+ block devices. Since sg3-utils is used mostly for SCSI debugging,
+ management and investigations, its a very minor risk.
+ 
+  * The change is a 1 line change in a udev rule file, very easy to test
+ following the test case.
+ 
+ [Other Info]
+ 
+ 
+ ORIGINAL DESCRIPTION:
+  
  * MAAS version: 2.4.2 (7034-g2f5deb8b8-0ubuntu1)
  
  MAAS UI changes:
  
  ```
  Node changed status - From 'Deploying' to 'Failed deployment'
  Node installation failure - 'curtin' curtin command install
  ```
  
  when console_log shows:
  
  ```
  
  [  244.588201] cloud-init[3139]:           File 
"/curtin/curtin/commands/block_meta.py", line 1515, in get_path_if_present
  [  244.588389] cloud-init[3139]:             return 
get_path_to_storage_volume(disk, config)
  [  244.588588] cloud-init[3139]:           File 
"/curtin/curtin/commands/block_meta.py", line 433, in get_path_to_storage_volume
  [  244.588774] cloud-init[3139]:             specified to identify disk")
  [  244.588963] cloud-init[3139]:         ValueError: serial, wwn or path to 
block dev must be                 specified to identify disk
  [  244.589153] cloud-init[3139]:         serial, wwn or path to block dev 
must be                 specified to identify disk
- [  244.589338] cloud-init[3139]:         
+ [  244.589338] cloud-init[3139]:
  [  244.589523] cloud-init[3139]: Stderr: ''
  [  244.589708] cloud-init[3139]: Unexpected error while running command.
  [  244.589905] cloud-init[3139]: Command: ['curtin', 'block-meta', 'custom']
  [  244.590088] cloud-init[3139]: Exit code: 3
  [  244.590271] cloud-init[3139]: Reason: -
  [  244.590459] cloud-init[3139]: Stdout: start: 
cmd-install/stage-partitioning/builtin/cmd-block-meta: curtin command block-meta
  ```
  
  Reproducible: yes
  
- aarch64, arm64 machine: 
+ aarch64, arm64 machine:
  Manufacturer: CN8890-2000BG2601-CP-Y-G
  Part Number: CN88xx
  
  Cavium SOC
  =========================
  Cavium THUNDERX Boot Stub
  =========================
  BDK Version: 04.02.14, 2.38 Branch: gigabyte-2.38, Built: Fri Aug 18 01:16:58 
UTC 2017
  
  Board Model:    gbt-mt30
  Board name:     MT30-GS1-00
  System name:    R120-T33-00
  Board Revision: 1.x
  Board SKU:      04 SATA
  SKU version:    1.1
  
  Node:  0 (Fixed)
  Chip:  0xa1 Pass 2.1
  SKU:   CN8890-2000BG2601-CP-Y-G
  
  *MAAS get-curtin-config: https://paste.ubuntu.com/p/k54HHN55ZF/

** Summary changed:

- failing to deploy Ubuntu Disco 
+ MAAS can't deploy Ubuntu if ID_SERIAL of any block device is broken (USB 
pendrive in this case).

** Changed in: sg3-utils (Debian)
   Importance: Unknown => Undecided

** Changed in: sg3-utils (Debian)
       Status: Unknown => New

** Changed in: sg3-utils (Debian)
 Remote watch: Debian Bug tracker #1833618 => None

** Package changed: sg3-utils (Debian) => maas

** Changed in: maas
       Status: New => Invalid

** Changed in: maas
       Status: Invalid => In Progress

** Changed in: maas
     Assignee: (unassigned) => Rafael David Tinoco (rafaeldtinoco)

** Changed in: curtin
   Importance: Undecided => Critical

** Changed in: curtin
     Assignee: (unassigned) => Rafael David Tinoco (rafaeldtinoco)

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

Title:
  MAAS can't deploy Ubuntu if ID_SERIAL of any block device is broken
  (USB pendrive in this case).

To manage notifications about this bug go to:
https://bugs.launchpad.net/curtin/+bug/1833618/+subscriptions

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

Reply via email to