This bug still affects Ubuntu, as far as 24.04.1. The file's now
`/lib/udev/rules.d/69-lvm.rules`.

I encountered a momentary problem with the vgchange workaround. Having
stopped and masked systemd-udevd.service, I tried `vgchange -an` but it
froze necessitating a `kill -9`. It only worked running after further
stopping and masking systemd-udevd-{kernel,control}.socket.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to lvm2 in Ubuntu.
https://bugs.launchpad.net/bugs/1088081

Title:
  udev rules make it impossible to deactivate lvm volume group with
  vgchange -an

Status in lvm2 package in Ubuntu:
  Confirmed
Status in udev package in Ubuntu:
  Confirmed

Bug description:
  Running 'vgchange -a n volume_group_name' generates udev events that are 
matched by /lib/udev/rules.d/85-lvm2.rules, causing it to run 'vgchange -a y'.  
This defeats the initial 'vgchange -a n' and makes it impossible to:
    * run 'cryptsetup luksClose' on the underlying encrypted device
    * safely remove a removable drive containing an LVM physical volume
    * safely use dd to copy the LVM partition to another device (LVM might be 
writing data)

  I turned up logging and it looks like the following happened to the instance 
I was watching:
    1. 'vgchange -a n vgname' caused LVM to close /dev/dm-5 (the LUKS dm device 
holding the LVM physical volume)
    2. udev logged this:  device /dev/dm-5 closed, synthesising 'change'
    3. a new 'change' 'block' udev event was enqueued for the LUKS dm device
    4. udev started processing the new 'change' event
    5. the event matched /lib/udev/rules.d/60-persistent-storage-dm.rules:16 so 
blkid was run and set ID_FS_TYPE=LVM2_member
    6. all of the conditions for /lib/udev/rules.d/85-lvm2.rules matched, so 
'vgchange -a y' was run

  Brainstorming ideas for fixing this:
    * I'm not sure why udev synthesizes a change event when a dm device is 
closed, but disabling that bit of code should fix this bug (and probably cause 
many worse bugs).
    * Maybe the lvm udev rule should condition on ACTION=="add" instead of 
ACTION="add|change" (just tried this and unfortunately it doesn't work -- 
unlocking a LUKS device causes two back-to-back udev events:  one 'add' event 
that only appears to match /lib/udev/rules.d/50-udev-default.rules:67 and a 
second 'change' event that matches much more).

  Other info:
  $ lsb_release -rdc
  Description:    Ubuntu 12.10
  Release:        12.10
  Codename:       quantal

  lvm2 version: 2.02.95-4ubuntu1
  udev version: 175-0ubuntu13

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


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to