[Bug 2067318] [NEW] Hitting Ctrl-C in the dpkg config conflict interactive sub-shell aborts the upgrade

Kai Groner 2067318 at bugs.launchpad.net
Mon May 27 19:03:46 UTC 2024


Public bug reported:

During an upgrade from 23.10 to 24.04, while investigating a config
conflict in an interactive sub shell I used ^C to discard the current
command in that shell. Instead of the shell receiving the interrupt
signal and responding in the way it normally did, some other process in
the upgrade process received it and aborted the upgrade.

Using ^C to discard the current command in a shell is normal use and
shouldn't result in catastrophic failure of the upgrade.

Some of the upgrade is still running, but nothing is responding to
keyboard input.

Here is the output of the process after I hit ^C:
-------------------------
                                           Could not install the upgrades

                                                                          The upgrade has aborted. Your system could be in an unusable state. A
 recovery will run now (dpkg --configure -a).

                                              dpkg: error: dpkg database lock was locked by another process with pid 1275670
                                                                                                                            Note: removing the lock file is always wrong, can damage the locked area
                                                     and the entire system. See <https://wiki.debian.org/Teams/Dpkg/FAQ#db-lock>.
                                                                                                                                 dp
                                                                                                                                   Upgrade complete

     The upgrade has completed but there were errors during the upgrade
                                                                        process.

                                                                                 To continue please press [ENTER]
-------------------------


Here is the process tree that remained after the upgrade process aborted:
-------------------------
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root     1218552  0.0  0.0  17396  7680 pts/3    S+   12:50   0:01 sudo do-release-upgrade
root     1218553  0.0  0.0  17396  2628 pts/2    Ss   12:50   0:00  \_ sudo do-release-upgrade
root     1218554  0.7  0.7 558320 245452 pts/2   Sl+  12:50   0:50      \_ /usr/bin/python3 -s /tmp/ubuntu-release-upgrader-xq5m8ra9/noble --mode=server --frontend=DistUpgradeViewText
root     1224613  0.0  0.0      0     0 pts/2    Z+   12:58   0:00          \_ [sh] <defunct>
root     1224643  0.1  0.5 560428 172244 pts/2   S+   12:58   0:12          \_ /usr/bin/python3 -s /tmp/ubuntu-release-upgrader-xq5m8ra9/noble --mode=server --frontend=DistUpgradeViewText
root     1275670  0.0  0.0  21320 16700 pts/0    Ss   13:12   0:02              \_ /usr/bin/dpkg --force-overwrite --status-fd 112 --configure --pending
root     1320513  0.0  0.0   8592  5376 pts/0    S+   14:27   0:00                  \_ /bin/bash -i --
-------------------------

It appears there are several pseudoterminals in use.

I thought screen used to be used for this, but it doesn't seem to be in
this case. Maybe that's not relevant here, I don't know.

Whatever code is doing this needs to put the outer layer in raw mode to
be able to handle normal interactive use.

** Affects: ubuntu-release-upgrader (Ubuntu)
     Importance: Undecided
         Status: New

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

Title:
  Hitting Ctrl-C in the dpkg config conflict interactive sub-shell
  aborts the upgrade

Status in ubuntu-release-upgrader package in Ubuntu:
  New

Bug description:
  During an upgrade from 23.10 to 24.04, while investigating a config
  conflict in an interactive sub shell I used ^C to discard the current
  command in that shell. Instead of the shell receiving the interrupt
  signal and responding in the way it normally did, some other process
  in the upgrade process received it and aborted the upgrade.

  Using ^C to discard the current command in a shell is normal use and
  shouldn't result in catastrophic failure of the upgrade.

  Some of the upgrade is still running, but nothing is responding to
  keyboard input.

  Here is the output of the process after I hit ^C:
  -------------------------
                                             Could not install the upgrades

                                                                            The upgrade has aborted. Your system could be in an unusable state. A
   recovery will run now (dpkg --configure -a).

                                                dpkg: error: dpkg database lock was locked by another process with pid 1275670
                                                                                                                              Note: removing the lock file is always wrong, can damage the locked area
                                                       and the entire system. See <https://wiki.debian.org/Teams/Dpkg/FAQ#db-lock>.
                                                                                                                                   dp
                                                                                                                                     Upgrade complete

       The upgrade has completed but there were errors during the upgrade
                                                                          process.

                                                                                   To continue please press [ENTER]
  -------------------------

  
  Here is the process tree that remained after the upgrade process aborted:
  -------------------------
  USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
  root     1218552  0.0  0.0  17396  7680 pts/3    S+   12:50   0:01 sudo do-release-upgrade
  root     1218553  0.0  0.0  17396  2628 pts/2    Ss   12:50   0:00  \_ sudo do-release-upgrade
  root     1218554  0.7  0.7 558320 245452 pts/2   Sl+  12:50   0:50      \_ /usr/bin/python3 -s /tmp/ubuntu-release-upgrader-xq5m8ra9/noble --mode=server --frontend=DistUpgradeViewText
  root     1224613  0.0  0.0      0     0 pts/2    Z+   12:58   0:00          \_ [sh] <defunct>
  root     1224643  0.1  0.5 560428 172244 pts/2   S+   12:58   0:12          \_ /usr/bin/python3 -s /tmp/ubuntu-release-upgrader-xq5m8ra9/noble --mode=server --frontend=DistUpgradeViewText
  root     1275670  0.0  0.0  21320 16700 pts/0    Ss   13:12   0:02              \_ /usr/bin/dpkg --force-overwrite --status-fd 112 --configure --pending
  root     1320513  0.0  0.0   8592  5376 pts/0    S+   14:27   0:00                  \_ /bin/bash -i --
  -------------------------

  It appears there are several pseudoterminals in use.

  I thought screen used to be used for this, but it doesn't seem to be
  in this case. Maybe that's not relevant here, I don't know.

  Whatever code is doing this needs to put the outer layer in raw mode
  to be able to handle normal interactive use.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/2067318/+subscriptions




More information about the foundations-bugs mailing list