sort out udev rules madness (3 editions installed into 4 files)

Bug #1002357 reported by Dimitri John Ledkov
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
mdadm (Ubuntu)
Fix Released
Undecided
Dimitri John Ledkov
Precise
Fix Released
Medium
Dimitri John Ledkov
Quantal
Fix Released
Undecided
Dimitri John Ledkov

Bug Description

[IMPACT]

 * Previously 3 different versions of udev rules where installed into 4 places (2 in the deb and 2 in the udeb)

 * This causes confusion, as multiple mdadm rules are run. It is not clear to the system administrator which udev rule to override in /etc/. It is even more confusing for remastering udebs, as different udev rule was needed to be overridden there.

 * The solution is to use a single matching name udev rule in both deb and udeb

 * The upstream udev rule was chosen to be used as described in the bug 968074

[TESTCASE #1]

 * Unpack old deb and udeb into a temporary directory and execute a command similar to this:

$ find quantal/ -name '*.rules' | xargs -L 1 md5sum

 * Expected output is 4 files and 3 unique hashes

 * Unpack new deb and udeb into a temporary directory and execute the same command:

$ find precise-proposed/ -name '*.rules' | xargs -L 1 md5sum

 * Expected output is 2 files with identical hashes

[TESTCASE #2]

* create RAID arrays with different metadata formats
- internal (0.9, 1.0, 1.1 or 1.2)

* check that udev rules assemble all of above RAID arrays

* expected results:
- both old and new udev rules assemble these arrays

[Regression Potential]

 * Same as in the bug 968074, the default udev rule has changed. Users who relied on the previous, incomplete/broken, udev rules may be pleasantly surprised or annoyed that the udev rule name has changed to match the one of Debian and upstream.

 * System administrators need to check their /etc/udev/rules.d/ to make sure that (a) they do not override mdadm rules (b) if they do, check that those overrides are still needed (c) that the override is named to match the new udev rule name.

[Other Info]

# Checksums and names of the old udev rules
$ find quantal/debian/ -name '*.rules' | xargs -L 1 md5sum
e143161798744026d7e4aac78e0bfede quantal/debian/mdadm/lib/udev/rules.d/65-mdadm-blkid.rules
916ce910a5829a0026a5b8bb3861c935 quantal/debian/mdadm/lib/udev/rules.d/85-mdadm.rules
6df86db16655769fa94086d3ee13453a quantal/debian/mdadm-udeb/lib/udev/rules.d/64-md-raid.rules
e143161798744026d7e4aac78e0bfede quantal/debian/mdadm-udeb/etc/udev/rules.d/65-mdadm-blkid.rules

$ Checksum, name and locations of the new udev rule
6df86db16655769fa94086d3ee13453a sid/debian/mdadm/lib/udev/rules.d/64-md-raid.rules
6df86db16655769fa94086d3ee13453a sid/debian/mdadm-udeb/lib/udev/rules.d/64-md-raid.rules

Related branches

Changed in mdadm (Ubuntu):
status: New → In Progress
assignee: nobody → Dmitrijs Ledkovs (dmitrij.ledkov)
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mdadm - 3.2.3-2ubuntu2

---------------
mdadm (3.2.3-2ubuntu2) quantal; urgency=low

  * Minimizing the merge-diff from Debian:
    + debian/rules, debian/mdadm.udev, debian/mdadm.mdadm-blkid.udev:
      Drop our own udev rules in favour of upstream's. Debian did so in
      3.0~devel3-43-g2800528-1. Upstream's rules have everything we had.
      (LP: #1002357, LP: #968074)
    + debian/initramfs/hooks: Update to copy only the new/correct udev rules
      file.
    + debian/rules: Remove pointless diff against debian. And now mdmon
    installs itself (LP: #957494).

  * debian/patches/series: Remove `disable-udev-incr-assembly.diff' to
    enable incremental assembly, now that we are using upstream rules & we
    always had incremental assembly enabled.

  * Fixing lintian tags, that are introduced in Ubuntu:
    + debian/source_mdadm.py: fix executable-not-elf-or-script
    + debian/changelog: correct trailer formating of acient changelog entry
 -- Dmitrijs Ledkovs <email address hidden> Mon, 21 May 2012 20:48:10 +0100

Changed in mdadm (Ubuntu):
status: In Progress → Fix Released
Changed in mdadm (Ubuntu Precise):
status: New → Confirmed
assignee: nobody → Dmitrijs Ledkovs (dmitrij.ledkov)
Changed in mdadm (Ubuntu Precise):
milestone: none → ubuntu-12.04.1
Changed in mdadm (Ubuntu Precise):
importance: Undecided → Medium
description: updated
Revision history for this message
Stéphane Graber (stgraber) wrote :

Is this still on target for 12.04.1?

Changed in mdadm (Ubuntu Precise):
status: Confirmed → Triaged
description: updated
Changed in mdadm (Ubuntu Precise):
status: Triaged → In Progress
Revision history for this message
Steve Langasek (vorlon) wrote : Please test proposed package

Hello Dmitrijs, or anyone else affected,

Accepted mdadm into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/mdadm/3.2.5-1ubuntu0.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 change the bug tag from verification-needed to verification-done. If it does not, 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!

Changed in mdadm (Ubuntu Precise):
status: In Progress → Fix Committed
tags: added: verification-needed
Revision history for this message
Steve Langasek (vorlon) wrote :

Dmitrijs, I think rather than noting that DDF and IMSM arrays are affected, I think a good second test case here would be to explicitly construct several different kinds of raid arrays and verify that the new udev rules can handle them correctly?

Revision history for this message
Dimitri John Ledkov (xnox) wrote :

@Steve Langasek, done.

description: updated
Revision history for this message
Adam Conrad (adconrad) wrote :

Hello Dmitrijs, or anyone else affected,

Accepted mdadm into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/mdadm/3.2.5-1ubuntu0.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 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 change the bug tag from verification-needed to verification-done. If it does not, 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!

Steve Langasek (vorlon)
description: updated
Revision history for this message
Dimitri John Ledkov (xnox) wrote :

Testcase #1: Done.

$ apt-get download mdadm
$ wget http://ubuntu.mirror.cambrium.nl/ubuntu//pool/main/m/mdadm/mdadm-udeb_3.2.3-2ubuntu1_amd64.udeb
$ dpkg-deb -R mdadm_*.deb standard
$ dpkg-deb -R mdadm-udeb*deb udeb
$ find . -name '*.rules' | xargs -L 1 md5sum
e143161798744026d7e4aac78e0bfede ./standard/lib/udev/rules.d/65-mdadm-blkid.rules
916ce910a5829a0026a5b8bb3861c935 ./standard/lib/udev/rules.d/85-mdadm.rules
6df86db16655769fa94086d3ee13453a ./udeb/lib/udev/rules.d/64-md-raid.rules
e143161798744026d7e4aac78e0bfede ./udeb/etc/udev/rules.d/65-mdadm-blkid.rules
$ rm -rf *deb standard

update to -proposed

$ apt-get download mdadm
Get:1 Downloading mdadm 3.2.5-1ubuntu0.2 [520 kB]
Fetched 520 kB in 1s (400 kB/s)
$ wget http://archive.ubuntu.com/ubuntu/pool/main/m/mdadm/mdadm-udeb_3.2.5-1ubuntu0.2_amd64.udeb
$ dpkg-deb -R *.deb standard
$ dpkg-deb -R *.udeb udeb
$ find . -name '*.rules' | xargs -L 1 md5sum
d0b282729fcb3d26ca5b76315c23eeeb ./standard/lib/udev/rules.d/64-md-raid.rules
d0b282729fcb3d26ca5b76315c23eeeb ./udeb/lib/udev/rules.d/64-md-raid.rules

Revision history for this message
Dimitri John Ledkov (xnox) wrote :

Test case #2:
I have successfully created 0.9, 1.0, 1.1 and 1.2 format raid arrays with old&new mdadm, which preserved/mounted across reboots and upgrades from precise to precise-proposed.

Steve Langasek (vorlon)
tags: added: verification-done
removed: verification-needed
Revision history for this message
Steve Langasek (vorlon) wrote : Update Released

The verification of this Stable Release Update 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 regresssions.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mdadm - 3.2.5-1ubuntu0.2

---------------
mdadm (3.2.5-1ubuntu0.2) precise-proposed; urgency=low

  * Patch udev-md-raid.rules to not auto-start arrays based on detection
    of ddf or isw (imsm) signatures; this conflicts with dmraid usage in
    precise and requires more analysis before it can be enabled in SRU.
    LP: #1030292.

mdadm (3.2.5-1ubuntu0.1) precise-proposed; urgency=low

  * Stable Micro Point Bug Fix release:
    - SRU master bug (LP: #1009973)
    - Fixes segfault upon update-initramfs (LP: #969384)
    - Fixes does not allow internal bitmap on version 1.2 arrays (LP: #1022915)
  * Preserved previous behaviour, by reverting:
    - bitmap chunk size of 0 will continue to mean 512B
    - Modify the below fix, to accept previous syntax
      "b10c663 config: fix handing of 'homehost' in AUTO line."
  * Use upstream version of udev rules, instead of three slightly
    different ubuntu udev rules (LP: #968074) (LP: #1002357)
  * Add missing mdmon utility. This enables external metadata RAID
    formats: DDF and Intel Matrix Storage Management (IMSM). (LP: #957494)
  * Copy udev rule from /etc/udev/rules.d/ as well as the
    /lib/udev/rules.d/, to allow local administrator to override mdadm
    rules file (LP: #1017407)
  * debian/initramfs/local-premount: add call wait_for_udev to wait a
    little longer for RAID devices to appear. This improves
    boot reliability. (LP: #942106)

mdadm (3.2.5-1) unstable; urgency=low

  [ Michael Tokarev ]
  * new upstream (bugfix) release, fixing regression when --add'ing
    device to an array, introduced in 3.2.4, plus other minor fixes
    (Closes: #673104, #673344)
  * new patch: sha1-includes.diff to fix #include mess in new sha1.h
  * added a check into debian/checkarray to skip checking arrays created
    less than 2 weeks ago (Closes: #624273)

  [ Dmitrijs Ledkovs ]
  * Remove obsolete documentation dating back to ~etch release
  * Remove reference to obsolete documention from debconf templates
  * Update debconf templates translations
  * Remove compatability with acient initramfs-tools
  * Remove debian-specific mdadm-startall.8 in clean target

mdadm (3.2.4-1) unstable; urgency=low

  * new upstream (bugfix) release (Closes: #664088, #661552)
  * removed debian-run-udev.diff (applied upstream), and
    all RUNDIR handling from debian/rules (it is the default now)
  * add build-arch and build-indep targets to debian/rules, and
    bump Standards-Version to 3.9.3

mdadm (3.2.3-3) unstable; urgency=low

  * switch from topgit to plain 3.0 (quilt) layout, creating
    debian/patches. Don't build-depend on quilt as patching
    is done automatically by dpkg-source.
  * debian/patches/debian-run-udev.diff by Roger Leigh (Closes: #644319, #627774)
  * update debian/mdadm.logcheck.ignore.server to recognize "k" in
    addition of "blocks" in kernel messages. Thanks to Frédéric Brière
    for the patch (Closes: #656038)
 -- Steve Langasek <email address hidden> Fri, 03 Aug 2012 23:08:39 -0700

Changed in mdadm (Ubuntu Precise):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.