[Bug 2103618] [NEW] Installer hangs forever when DKMS package is installed due to diffeernt pid namespace

Renato Botelho 2103618 at bugs.launchpad.net
Wed Mar 19 13:43:27 UTC 2025


Public bug reported:

When custom image is created and it contains a package that installs a
kernel module built using DKMS installer will hang forever.

Installing the kernel runs a command prepended with 'unshare --pid --fork',
The /proc filesystem of the new PID namespace is not mounted in the namespace
so dkms breaks.

When subiquity, using curtin, execute DKMS scripts, it creates a
separate PID namespace.  DKMS doesn't know about it and keeps waiting
for a PID in the wrong namespace and this situation can lead installer
to get stuck forever.

The way we found to workaround this situation was to change curtin
function run_apt_command() like this:

-cmd_rv = inchroot.subp(cmd, env=env)
+cmd_rv = inchroot.subp(cmd, env=env, unshare_pid=False)

It worked for me because I only consumed curtin source to build a
custom subiquity package but I don't know if it is the right approach
or if it will break other things.  If you think the proper way is to
open a bug on curtin project, just let me know and I will do it.

** Affects: subiquity (Ubuntu)
     Importance: Undecided
         Status: New

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

Title:
  Installer hangs forever when DKMS package is installed due to
  diffeernt pid namespace

Status in subiquity package in Ubuntu:
  New

Bug description:
  When custom image is created and it contains a package that installs a
  kernel module built using DKMS installer will hang forever.

  Installing the kernel runs a command prepended with 'unshare --pid --fork',
  The /proc filesystem of the new PID namespace is not mounted in the namespace
  so dkms breaks.

  When subiquity, using curtin, execute DKMS scripts, it creates a
  separate PID namespace.  DKMS doesn't know about it and keeps waiting
  for a PID in the wrong namespace and this situation can lead installer
  to get stuck forever.

  The way we found to workaround this situation was to change curtin
  function run_apt_command() like this:

  -cmd_rv = inchroot.subp(cmd, env=env)
  +cmd_rv = inchroot.subp(cmd, env=env, unshare_pid=False)

  It worked for me because I only consumed curtin source to build a
  custom subiquity package but I don't know if it is the right approach
  or if it will break other things.  If you think the proper way is to
  open a bug on curtin project, just let me know and I will do it.

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




More information about the foundations-bugs mailing list