mountall-net SIGUSR1 handling can signal the wrong process by mistake

Bug #506902 reported by Kristóf Kiszel on 2010-01-13
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
mountall (Ubuntu)
High
Steve Langasek
Lucid
High
Steve Langasek

Bug Description

I downloaded the current mini.iso to test Kubuntu 10.04 alpha 2 netboot. The installation process worked fine, but after reboot I couldn't login, I got a recovery shell. I posted a screenshot about that. I run it in Virtualbox.

Architecture: i386

Related branches

Kristóf Kiszel (ulysses) wrote :
description: updated
Steve Langasek (vorlon) wrote :

Thank you for taking the time to report this bug and help to improve Ubuntu.

The error message in the screenshot is:

  init: mountall post-stop process (777) killed by USR1 signal

This is a bug in the mountall-net job, which queries the pid of the mountall job using an incorrect regexp that will also match the post-stop process - and the post-stop process, "rm", will not handle SIGUSR1 gracefully.

affects: ubuntu → mountall (Ubuntu)
Changed in mountall (Ubuntu):
importance: Undecided → High
milestone: none → lucid-alpha-3
status: New → Triaged
Changed in mountall (Ubuntu Lucid):
assignee: nobody → Steve Langasek (vorlon)
Steve Langasek (vorlon) wrote :

note that this is an unlikely race condition to hit - if you boot again, I believe you'll find that you get past this error with no problems.

Steve Langasek (vorlon) on 2010-01-14
summary: - Cannot login on Kubuntu 10.04 alpha 2
+ mountall-net SIGUSR1 handling can signal the wrong process by mistake
Steve Langasek (vorlon) on 2010-01-14
Changed in mountall (Ubuntu Lucid):
status: Triaged → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mountall - 2.4

---------------
mountall (2.4) lucid; urgency=low

  * conf/mountall-net.conf: only send SIGUSR1 to the main process, not to
    any pre-start or post-stop script we might have; killing the post-stop
    script with -USR1, though an unlikely race to hit, is definitely wrong.
    LP: #506902.

  [ Johan Kiviniemi ]
  * src/mountall.c: The mount table needs to exist for parse_filesystems
    - parse_filesystems() could call mount_proc(), which would call
      find_mount() and segfault. LP: #503212.
  * src/mountall.c: Handle TAG_UNKNOWN. LP: #505748.
  * src/mountall.c: Ensure boredom_timer is set to NULL when freeing
  * src/mountall.c: Default to no action for boredom query if prompt fails.
    LP: #505530.
 -- Steve Langasek <email address hidden> Thu, 14 Jan 2010 05:30:13 -0800

Changed in mountall (Ubuntu Lucid):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Bug attachments