← Back to team overview

group.of.nepali.translators team mailing list archive

[Bug 1524031] Re: attempting to preserve disk curtin expects PTTYPE in blkid output

 

Hello Ryan, or anyone else affected,

Accepted curtin into xenial-proposed. The package will build now and be
available at
https://launchpad.net/ubuntu/+source/curtin/0.1.0~bzr425-0ubuntu1~16.04.1
in a few hours, and then in the -proposed repository.

Please help us by testing this new package.  See
https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to
enable and use -proposed.  Your feedback will aid us getting this update
out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug,
mentioning the version of the package you tested, and change the tag
from verification-needed to verification-done. If it does not fix the
bug for you, please add a comment stating that, and change the tag to
verification-failed.  In either case, details of your testing will help
us make a better decision.

Further information regarding the verification process can be found at
https://wiki.ubuntu.com/QATeam/PerformingSRUVerification .  Thank you in
advance!

** Tags added: verification-needed

** Also affects: curtin (Ubuntu)
   Importance: Undecided
       Status: New

** Also affects: curtin (Ubuntu Xenial)
   Importance: Undecided
       Status: New

-- 
You received this bug notification because you are a member of नेपाली
भाषा समायोजकहरुको समूह, which is subscribed to Xenial.
Matching subscriptions: Ubuntu 16.04 Bugs
https://bugs.launchpad.net/bugs/1524031

Title:
  attempting to preserve disk curtin expects PTTYPE in blkid output

Status in curtin:
  Fix Committed
Status in curtin package in Ubuntu:
  Fix Released
Status in curtin source package in Xenial:
  Fix Committed

Bug description:
  [Impact]

   * On a Trusty host, if users enable storage disk preserve feature,
     the use of blkid expects PTTYPE value in the output, however, this is
     not present in Trusty blkid output.  This prevents Trusty hosts from
     preserving existing partitions.

     Curtin has been updated to fallback to using parted to determine how to
     preserve existing partitions on disks when directed.
     
  [Test Case]

   * Install proposed curtin package and deploy in a Trusty ephemeral
     environment with the following storage configuration:

     storage:
      version: 1
      config:
        - id: vdg
          model: Unknown Model
          preserve: true
          ptable: gpt
          serial: 64bddb21-61f3-4869-8
          type: disk
          wipe: superblock

    PASS: Successfully deploy image while preserving the original partition
          table.

    FAIL: Deployment fails with the following error:

  	line 530, in disk_handler
  		out.splitlines()))[0].split("=")[-1]
  	IndexError: list index out of range
  	list index out of range

  
  [Regression Potential]

   * No known other failures when using parted as replacement for blkid
     partition data.


  [Original Description]
  On a trusty host, this storage configuration breaks:

  storage:
    version: 1
    config:
      - id: vdg
        model: Unknown Model
        preserve: true
        ptable: gpt
        serial: 64bddb21-61f3-4869-8
        type: disk
        wipe: superblock

  like this:

  Running command ['partprobe', '/dev/vdg'] with allowed return codes [0, 1] (shell=False, capture=False)
  Running command ['udevadm', 'settle'] with allowed return codes [0] (shell=False, capture=False)
  Running command ['blkid', '-o', 'export', '/dev/vdg'] with allowed return codes [0] (shell=False, capture=True)
  An error occured handling 'vdg': IndexError - list index out of range
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/curtin/commands/main.py", line 208, in main
      ret = args.func(args)
    File "/usr/lib/python3/dist-packages/curtin/commands/block_meta.py", line 63, in block_meta
      meta_custom(args)
    File "/usr/lib/python3/dist-packages/curtin/commands/block_meta.py", line 1208, in meta_custom
      handler(command, storage_config_dict)
    File "/usr/lib/python3/dist-packages/curtin/commands/block_meta.py", line 530, in disk_handler
      out.splitlines()))[0].split("=")[-1]
  IndexError: list index out of range
  list index out of range

  From this code here:

          # Check state of current ptable
          try:
              (out, _err) = util.subp(["blkid", "-o", "export", disk],
                                      capture=True)
          except util.ProcessExecutionError:
              raise ValueError("disk '%s' has no readable partition table or \
                  cannot be accessed, but preserve is set to true, so cannot \
                  continue")
          current_ptable = list(filter(lambda x: "PTTYPE" in x,
                                       out.splitlines()))[0].split("=")[-1]

  And the output of blkid -o export /dev/vdg on trusty instance is:

  # blkid -o export /dev/vdg
  UUID=ef30955b-8aa0-453f-a37d-d631a09a6f7c
  UUID_SUB=9a21ae23-6f14-405d-9e9a-8955855132d5
  TYPE=btrfs

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