← Back to team overview

desktop-packages team mailing list archive

[Bug 1394348] Re: nvidia-331.postrm calls `stop nvidia-persistenced`, but upstart job has been removed

 

This bug was fixed in the package nvidia-graphics-drivers-331 -
331.113-0ubuntu2

---------------
nvidia-graphics-drivers-331 (331.113-0ubuntu2) vivid; urgency=medium

  [ Jason Gerard DeRose ]
  * debian/templates/nvidia-graphics-drivers.postrm.in:
    - Fix broken postrm script, plus add work-around for upgrading
      from previous broken versions of the same (LP: #1394348).
    - No longer call `stop nvidia-persistenced` as the Upstart job was
      removed in 331.89-0ubuntu3.
    - Remove "nvidia-persistenced" user/group in a failsafe manner
      (ie. even if userdel fails, postrm will not exit with a non-zero
      status).
  * debian/templates/nvidia-graphics-drivers.preinst.in:
    - Call `/usr/bin/stop-nvidia-persistenced` to work-around
      the broken postrm script introduced in 331.89-0ubuntu3; without
      this, upgrading between major nvidia driver versions (eg. 331=>343)
      will break.
  * debian/templates/nvidia-graphics-drivers.prerm.in:
    - Call `/usr/bin/stop-nvidia-persistenced` so that the
      nvidia-persistenced process is killed prior to the postrm script
      being called (which means that removing the "nvidia-persistenced"
      user/group can actually succeed).
 -- Alberto Milone <alberto.milone@xxxxxxxxxxxxx>   Wed, 10 Dec 2014 10:33:28 +0100

** Changed in: nvidia-graphics-drivers-331 (Ubuntu)
       Status: Confirmed => Fix Released

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to nvidia-graphics-drivers-331 in Ubuntu.
https://bugs.launchpad.net/bugs/1394348

Title:
  nvidia-331.postrm calls `stop nvidia-persistenced`, but upstart job
  has been removed

Status in nvidia-graphics-drivers-331 package in Ubuntu:
  Fix Released

Bug description:
  nvidia-graphics-drivers-331 (331.89-0ubuntu5) will fail to
  remove/purge nvidia-331 when /usr/bin/nvidia-persistenced is running.

  The reason is the nvidia-331.postrm script hasn't been updated to
  reflect that nvidia-persistenced is now started via udev rather than
  Upstart (the Upstart job has been removed).

  The offending lines in nvidia-331.postrm:

          # Remove the nvidia-persistenced user
          if id "$NVPD_USER" > /dev/null 2>&1; then
              stop nvidia-persistenced || true
              userdel "$NVPD_USER"
          fi

  When  /usr/bin/nvidia-persistenced is running,  `userdel "$NVPD_USER"`
  will cause the postrm script to exit with a non-zero status, leaving
  dpkg in a broken state.

  I believe the correct fix is:

          # Remove the nvidia-persistenced user
          if id "$NVPD_USER" > /dev/null 2>&1; then
              /usr/bin/stop-nvidia-persistenced
              userdel "$NVPD_USER"
          fi

  Or for extra safety, I like this fix even better:

          # Remove the nvidia-persistenced user
          if id "$NVPD_USER" > /dev/null 2>&1; then
              /usr/bin/stop-nvidia-persistenced || true
              userdel "$NVPD_USER" || true
          fi

  Although /usr/bin/stop-nvidia-persistenced will exit with 0 even if
  nvidia-persistenced wasn't running, I don't see any reason to risk a
  broken dpkg state when there were problems stopping nvidia-
  persistenced, or problems removing its user.

  Same problem exists with nvidia-graphics-drivers-331-updates.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-331/+bug/1394348/+subscriptions


References