[Bug 802626] Re: vgchange may deadlock in initramfs when VG present that's not used for rootfs

Wessel Dankers wsl-launchpad at fruit.je
Sun Oct 23 22:38:38 UTC 2011


vgchange will create the device mapper table entries before exiting, so
that part should be taken care of. After it's finished, udev will create
the device nodes and symlinks as it gets the information about the new
dm nodes from the kernel.

>From the vgchange manpage:

       --noudevsync
              Disable udev synchronisation. The  process  will  not  wait  for
              notification  from  udev.   It will continue irrespective of any
              possible udev processing in the background.  You should only use
              this if udev is not running or has rules that ignore the devices
              LVM2 creates.

Note that the above snippet doesn't say anything about udev waiting on
vgchange, just the reverse. And I agree udev is the "user" here, as I
already noted in #19. ;)

All failure modes I've seen (missing device nodes, 60 second boot times,
etc) were variations on either udev killing vgchange after a timeout,
udev getting killed before it could kill vgchange, handover issues
between the initramfs udev instance and the main udev instance with
vgchange interupted or still deadlocked, etc. All of them were solved by
removing the vgchange deadlock.

The only remaining issue I see is that udevcomplete_all can't function
reliably in this scenario (as you say) because the events that result
from vgchange's actions are handled asynchronously. It might be that
vgchange passes some udev cookies to solve that issue, but that seems
unrelated to the above option.

-- 
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is subscribed to a duplicate bug report (833891).
https://bugs.launchpad.net/bugs/802626

Title:
  vgchange may deadlock in initramfs when VG present that's not used for
  rootfs

Status in “lvm2” package in Ubuntu:
  Triaged
Status in “udev” package in Ubuntu:
  Confirmed
Status in “lvm2” source package in Oneiric:
  Triaged
Status in “udev” source package in Oneiric:
  Confirmed

Bug description:
  The system is now unable to boot.
  I had to boot on previous kernel 3.0.0.
  Symptoms are boot freezes. When debugging, issuing a vgscan works ok.
  doing the vgchange -a y just hangs. I need to reboot the system afterwards.

  ProblemType: Bug
  DistroRelease: Ubuntu 11.10
  Package: lvm2 2.02.66-4ubuntu2
  ProcVersionSignature: Ubuntu 3.0-0.1-generic 3.0.0-rc2
  Uname: Linux 3.0-0-generic x86_64
  Architecture: amd64
  Date: Mon Jun 27 18:15:46 2011
  ProcEnviron:
   LANGUAGE=fr_FR:en
   PATH=(custom, user)
   LANG=fr_FR.utf8
   LC_MESSAGES=fr_FR.UTF-8
   SHELL=/bin/bash
  SourcePackage: lvm2
  UpgradeStatus: No upgrade log present (probably fresh install)

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



More information about the Ubuntu-sponsors mailing list