[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#702335: debian-installer-launcher: freezes after exiting



Package: debian-installer-launcher
Version: 14
Followup-For: Bug #702335

I have made some small progress in narrowing down where the failure
occurs. It appears that in plugins/live, fuser is identifying a much
larger list of PIDs than it looks like was intended:

live_cleanup () {
  # Stopping syslogd/klogd
  # ->the sed horror could be improved (FIXME;)
  # string: [A-Z][a-z]: [0-9] [0-9]rce [0-9]...
  # we only want the [0-9]rce, but without the rce.
  for PID in $(fuser -m /lib/live/installer/var/log/syslog 2>&1 | \
    sed "s,.*: ,,g;s, ,\n,g" | grep 'rce$' | \
    sed -e 's/rce//g'); do
    kill -9 $PID > /dev/null 2>&1 || true
  done

  # Unmounting filesystems
  for fs in /cdrom /dev/pts /dev /proc /sys /tmp; do
    umount -f /lib/live/installer/$fs > /dev/null 2>&1 || true
  done

  # Remove unpacked initrd
  rm -rf /lib/live/installer
  rm -f /tmp/debian-installer
}

When fuser is executed, it includes '1rce', i.e. init, among the
processes that are eligible to cleanup. Clearly killing init is not
wise, so it's no shock when a short time after this code is executed,
the system locks up. Looking over the other PIDs that are matched, it
includes udevd and a number of other processes belonging to the live
system (i.e. not the installer) that should not be killed either.

At this point, I am stuck. How do we make this right so that only PIDs
launched by the installer are cleaned up afterwards?

Ben


Reply to: