[Bug 1055811] Re: do-release-upgrade configuration prompts fail to handle SIGINT

Michael Vogt michael.vogt at ubuntu.com
Fri Sep 28 09:00:49 UTC 2012


This is a side-effect of the dpkg issue #1015567

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to update-manager in Ubuntu.
https://bugs.launchpad.net/bugs/1055811

Title:
  do-release-upgrade configuration prompts fail to handle SIGINT

Status in “update-manager” package in Ubuntu:
  New

Bug description:
  This bug occurred while upgrading Oneiric to Precise.

  The 'Z     : start a shell to examine the situation' prompt does not
  handle SIGINT.  This is a severe bug, which just risked hosing my box.

  do-release-upgrade said:

  Configuration file `/etc/mysql/my.cnf'
   ==> Modified (by you or by a script) since installation.
   ==> Package distributor has shipped an updated version.
     What would you like to do about it ?  Your options are:
      Y or I  : install the package maintainer's version
      N or O  : keep your currently-installed version
        D     : show the differences between the versions
        Z     : start a shell to examine the situation
   The default action is to keep your current version.
  *** my.cnf (Y/I/N/O/D/Z) [default=N] ? z
  Type `exit' when you're done.
  root at code:/#

  I typed a few characters, realized I typed the wrong thing, and hit
  Ctrl-C.  I got:

                                 A fatal error occurred

                                                        Please report this as a bug and include the files
                          /var/log/dist-upgrade/main.log and /var/log/dist-upgrade/apt.log in
              your report. The upgrade has aborted.
                                                    Your original sources.list was saved in
            /etc/apt/sources.list.distUpgrade.

                                               Traceback (most recent
  call last):

                                                                                  File "/tmp/update-manager-9cwRNH/precise", line 7, in <module>
                                                                 sys.exit(main())

                                                                                  File "/tmp/update-manager-9cwRNH/DistUpgradeMain.py", line 226, in
                                                                     main
                                                                          if app.run():

        File "/tmp/update-manager-9cwRNH/DistUpgradeController.py", line
                                                                         1721, in run
      return self.fullUpgrade()

                                File "/tmp/update-manager-9cwRNH/DistUpgradeController.py", line
                 1690, in fullUpgrade
                                      if not self.doDistUpgrade():

                                                                   File "/tmp/update-manager-9cwRNH/DistUpgradeController.py", line
                                                    1065, in doDistUpgrade
                                                                           res = self.cache.commit(fprogress,iprogress)

                                        File "/tmp/update-manager-9cwRNH/DistUpgradeCache.py", line 256, in
                            commit
                                   apt.Cache.commit(self, fprogress, iprogress)

                                                                                File "/usr/lib/python2.7/dist-packages/apt/deprecation.py", line 98,
                                                                     in deprecated_function
            return func(*args, **kwds)

                                       File "/usr/lib/python2.7/dist-packages/apt/cache.py", line 473, in
                          commit
                                 res = self.install_archives(pm, install_progress)

   File "/usr/lib/python2.7/dist-packages/apt/deprecation.py", line 98,
                                                                        in deprecated_function
               return func(*args, **kwds)

                                          File "/usr/lib/python2.7/dist-packages/apt/cache.py", line 436, in
                             install_archives
                                              res = install_progress.run(pm)

                                                                             File "/tmp/update-manager-9cwRNH/DistUpgradeView.py", line 211, in
                                                                run
                                                                    res = os.WEXITSTATUS(self.wait_child())

                            File "/tmp/update-manager-9cwRNH/DistUpgradeView.py", line 174, in
               wait_child
                          select.select([self.statusfd], [], [], self.select_timeout)

      KeyboardInterrupt 
  === Command terminated with exit status 1 (Mon Sep 24 14:19:12 2012) ===

  And there went my upgrade.  (The decorative spacing comes from do-
  release-upgrade.  That's a separate bug, presumably.)  The system is
  still sitting there, with dpkg in some mysterious state, stuck,
  because the 'precise' process is waiting for I/O that's never going to
  happen.

  If you're going to spawn a shell, *give it proper control of the tty
  so it handles signals*.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/update-manager/+bug/1055811/+subscriptions




More information about the foundations-bugs mailing list