Mdadm allows to change the name of the volume to empty and not trim whitespaces.

Bug #1811228 reported by Roman Sobanski on 2019-01-10
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
debian-installer (Ubuntu)
Undecided
Unassigned
Bionic
Undecided
Unassigned
Cosmic
Undecided
Unassigned
mdadm (Ubuntu)
Undecided
Unassigned
Bionic
Undecided
Unassigned
Cosmic
Undecided
Unassigned

Bug Description

[Impact]

 * Due to a lack of input checking mdadm could program the IMSM
   with empty "" names for the storage devices causing issues
   later on.

 * Fix by backporting a fix that was committed shortly after what made
   it into Bionic/Disco

[Test Case]

 * This needs a Intel(R) Matrix Storage Hardware which limits the
   systems this can be tested. Below in the original report is example
   output of these commands.
   $ mdadm --create /dev/md/imsm0 --metadata=imsm --raid-devices=2 /dev/nvme11n1 /dev/nvme12n1 --run
   $ mdadm --create /dev/md/r0d2 --level=0 --chunk=128 --raid-devices=2 /dev/nvme11n1 /dev/nvme12n1 --run
   $ mdadm -D /dev/md/imsm0
   $ mdadm --stop /dev/md/r0d2
   $ mdadm --update-subarray=0 --update=name -N "" /dev/md/imsm0
   # the command above should not be allowed, empty of non-trimmed names cause issues down the road.
   $ mdadm --assemble --scan
   $ mdadm -D /dev/md/imsm0

[Regression Potential]

 * The fixes are local to the support of the Intel(R) Matrix Storage
   Manager through mdadm. As much as that makes testing harder it also
   limits the fallout of regressions to other components.
   The one regression I could think of is automation/scripts that
   expects to work with whitespaces, but since that is known to
   fail it is better to force them off of that.

[Other Info]

 * n/a

---

Description:
Mdadm allows to change the name of the volume to any, including empty, too short and too long.
White spaces in the begin or end of the correct name are not trimmed properly.

Steps to reproduce:
1. Create the volume:
# mdadm --create /dev/md/imsm0 --metadata=imsm --raid-devices=2 /dev/nvme11n1 /dev/nvme12n1 --run
# mdadm --create /dev/md/r0d2 --level=0 --chunk=128 --raid-devices=2 /dev/nvme11n1 /dev/nvme12n1 --run

2. Check if volume name is correct:
# mdadm -D /dev/md/imsm0
/dev/md/imsm0:
           Version : imsm
        Raid Level : container
     Total Devices : 2

   Working Devices : 2

              UUID : 6dce006b:086ce0fa:bdcf4f9e:d8bd68c4
     Member Arrays : /dev/md/r0d2

    Number Major Minor RaidDevice

       - 259 13 - /dev/nvme12n1
       - 259 12 - /dev/nvme11n1
root@gklab-94-128:~# mdadm -D /dev/md/r0d2
/dev/md/r0d2:
         Container : /dev/md/imsm0, member 0
        Raid Level : raid0
        Array Size : 781412352 (745.21 GiB 800.17 GB)
      Raid Devices : 2
     Total Devices : 2

             State : clean
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

        Chunk Size : 128K

Consistency Policy : none

              UUID : 9608dbcd:e4668ab4:015e7469:a263e5e0
    Number Major Minor RaidDevice State
       0 259 12 0 active sync /dev/nvme11n1
       1 259 13 1 active sync /dev/nvme12n1

3. Stop the volume:
# mdadm --stop /dev/md/r0d2

4. Try to change the name of the volume. New name should not be allowed by mdadm (ex. empty), or shuld start or end with whitespaces:
# mdadm --update-subarray=0 --update=name -N "" /dev/md/imsm0

5. Assembly the volume:
# mdadm --assemble --scan
mdadm: Started /dev/md126 with 2 devices

6. Check the volume name.

Expected result:
Mdam should not allow to change name to incorrect. The volume with wrong name should not be assembled. If volume name is correct, eventual whitespaces should be trimmed.

Current result:
Mdadm allows to change the name of the volume to any and assemble the volume with wrong name.
If name is correct and starts/ends with whitespace, it is not trimmed.

# mdadm -D /dev/md/imsm0
/dev/md/imsm0:
           Version : imsm
        Raid Level : container
     Total Devices : 2

   Working Devices : 2

              UUID : 6dce006b:086ce0fa:bdcf4f9e:d8bd68c4
     Member Arrays : /dev/md126

    Number Major Minor RaidDevice

       - 259 13 - /dev/nvme12n1
       - 259 12 - /dev/nvme11n1

# mdadm -E /dev/nvme12n1
/dev/nvme12n1:
          Magic : Intel Raid ISM Cfg Sig.
        Version : 1.0.00
    Orig Family : 3292ee00
         Family : 3292ee00
     Generation : 00000003
     Attributes : All supported
           UUID : 6dce006b:086ce0fa:bdcf4f9e:d8bd68c4
       Checksum : 88845429 correct
    MPB Sectors : 1
          Disks : 2
   RAID Devices : 1

  Disk01 Serial : FT641000CH400BGN
          State : active
             Id : 00000000
    Usable Size : 97676545 (372.61 GiB 400.08 GB)

[]:
           UUID : f4d7bd6c:34479c57:2583d3f6:7247c93e
     RAID Level : 0
        Members : 2
          Slots : [UU]
    Failed disk : none
      This Slot : 1
    Sector Size : 4096
     Array Size : 195353088 (745.21 GiB 800.17 GB)
   Per Dev Size : 97676800 (372.61 GiB 400.08 GB)
  Sector Offset : 0
    Num Stripes : 3052392
     Chunk Size : 128 KiB
       Reserved : 0
  Migrate State : idle
      Map State : normal
    Dirty State : clean
     RWH Policy : off

  Disk00 Serial : FT62040052400GGN
          State : active
             Id : 00000000
    Usable Size : 97676545 (372.61 GiB 400.08 GB)

Related branches

Roman Sobanski (rsobans) wrote :

This issue was already fixed in released mdadm-4.1. https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=20e8fe52e7190b3ffda127566852eac2eb7fa1f7

Actually there is "mdadm - v4.1-rc1 - 2018-03-22" in Ubuntu 18.04.2. Please update mdadm package to mdadm-4.1.

information type: Public → Private
affects: debian-installer (Ubuntu) → mdadm (Ubuntu)
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in debian-installer (Ubuntu):
status: New → Confirmed
Changed in mdadm (Ubuntu):
status: New → Confirmed
Pawel Baldysiak (pbaldysi) wrote :

Hi,
Is there any update on this one?

Thanks
Pawel

information type: Private → Public
Pawel Baldysiak (pbaldysi) wrote :

Hi,
It is fixed in 19.04 (mdadm there is 4.1).
Any chances to include the fix in 18.04 LTS?

Thanks
Pawel

Changed in mdadm (Ubuntu):
status: Confirmed → Fix Released

Hi,
I need your help in testing this.
I have created a PPA [1] with the fixes for this issue, but I lack a IMSM HW.

I'd ask the people affected/subscribed to test the PPA.
While doing so please
a) ensure the test steps you have trigger the bug without the PPA
b) ensure the PPA fixes the issue

Test steps on this bug seemed already good to me, but if you have issues using those to confirm it please let me know that we can fix the Description.

[1]: https://launchpad.net/~paelzer/+archive/ubuntu/bug-1811228-1811795-mdadm-imsm

description: updated

Incomplete waiting for PAP verification

Changed in mdadm (Ubuntu Bionic):
status: New → Incomplete
Changed in mdadm (Ubuntu Cosmic):
status: New → Incomplete
Mariusz Tkaczyk (mtkaczyk) wrote :

Hi,
The issue is fixed in PPA.

Thanks, Mariusz

Thanks for checking the PPA Mariusz.

This will now go to the review by the SRU Team.
Once accepted they will ask for a verification in -proposed (of both affected releases).
Once that is complete this can be released to all users.

Changed in mdadm (Ubuntu Bionic):
status: Incomplete → In Progress
Changed in mdadm (Ubuntu Cosmic):
status: Incomplete → In Progress

Hello Roman, or anyone else affected,

Accepted mdadm into cosmic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/mdadm/4.1~rc1-4ubuntu1.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 on 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-cosmic to verification-done-cosmic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-cosmic. In either case, without details of your testing we will not be able to proceed.

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

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in mdadm (Ubuntu Cosmic):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-cosmic
Łukasz Zemczak (sil2100) wrote :

Hello Roman, or anyone else affected,

Accepted mdadm into bionic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/mdadm/4.1~rc1-3~ubuntu18.04.2 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 on 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-bionic to verification-done-bionic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-bionic. In either case, without details of your testing we will not be able to proceed.

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

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in mdadm (Ubuntu Bionic):
status: In Progress → Fix Committed
tags: added: verification-needed-bionic
Mariusz Tkaczyk (mtkaczyk) wrote :

Hi,
the issue is fixed in bionic-proposed.

Thanks
Mariusz

Thanks Mariusz!
Since this verification needs special HW which at least I currently have none of - do you see a chance to also do the verification for cosmic-proposed? Lacking that it can't be really released for Bionic as it would then become an upgrade-regression.

tags: added: verification-done-bionic
removed: verification-needed-bionic

Hi,

I have tested issue in cosmic-proposed. It is fixed.

Regards,
Krzysztof

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mdadm - 4.1~rc1-4ubuntu1.1

---------------
mdadm (4.1~rc1-4ubuntu1.1) cosmic; urgency=medium

  * d/p/lp-1811228-imsm-Block-volume-creation-with-empty-name.patch: avoid
    creating whitespaced or empty names (LP: #1811228)
  * d/p/lp-1811795-remove-external-arrays-and-devices.patch: fix removal of
    failing disks with external metadata (LP: #1811795)

 -- Christian Ehrhardt <email address hidden> Wed, 10 Apr 2019 16:14:17 +0200

Changed in mdadm (Ubuntu Cosmic):
status: Fix Committed → Fix Released
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mdadm - 4.1~rc1-3~ubuntu18.04.2

---------------
mdadm (4.1~rc1-3~ubuntu18.04.2) bionic; urgency=medium

  * d/p/lp-1811228-imsm-Block-volume-creation-with-empty-name.patch: avoid
    creating whitespaced or empty names (LP: #1811228)
  * d/p/lp-1811795-remove-external-arrays-and-devices.patch: fix removal of
    failing disks with external metadata (LP: #1811795)

 -- Christian Ehrhardt <email address hidden> Wed, 10 Apr 2019 16:14:17 +0200

Changed in mdadm (Ubuntu Bionic):
status: Fix Committed → Fix Released

The verification of the Stable Release Update for mdadm has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers