Public bug reported:

Symptoms: system hangs forever at boot
Versions: originally discovered with 2.25ubuntu1, but reproduced with 2.31 as 
well
Description:    Ubuntu 11.04
Release:        11.04
# apt-cache policy mountall
mountall:
  Installed: 2.25ubuntu1
  Candidate: 2.25ubuntu1
  Version table:
 *** 2.25ubuntu1 0
        500 http://ubuntu.osuosl.org/ubuntu/ natty/main amd64 Packages
        100 /var/lib/dpkg/status

Alt-sysrq-k shows that it was it was waiting for mountall.  Adding some 
debugging shows that it's waiting on this line of code in mounted() for /proc:
        emit_event ("mounted", mnt);
Which in turn is waiting on:
        pending_call = NIH_SHOULD (upstart_emit_event (upstart,
                                                       name, env, mnt ? TRUE : 
FALSE,
                                                       NULL, emit_event_error, 
NULL,
                                                     NIH_DBUS_TIMEOUT_NEVER));

Changing that NIH_DBUS_TIMEOUT_NEVER to something like "90 * 1000" will
let the system at least boot (after 90 seconds of course), although into
somewhat of a crippled state because mountall dies, although the rest of
the system seems to start OK.

The first problem is that the system simply hangs.  None of the mountall
key commands like 'S' to skip mounts are yet available.  There is also
no message about what it is doing.  Basically, it's really hard to
debug.  Some messages from mountall would probably be really handy here.
Perhaps it could pass a timeout value in and at least spit something to
the console, like:

int wait = mnt ? TRUE : FALSE,
while (wait) {
        pending_call = NIH_SHOULD (upstart_emit_event (upstart,..., 
MY_TIMEOUT));
        if (pending_call)
            break;
        print_helpful_message_here();
}

The other part is that I have no idea how this could have ever worked.  
upstart_emit_event() looks to be talking to dbus, but dbus does not get started 
until local-filesystems are mounted (from /etc/init/dbus.conf):
start on local-filesystems

The 'local-filesystems' event appears to me in trigger_events() to only be 
triggered *after* virtual filesystems:
        /* Enforce local only after virtual filesystems triggered */
So, since /proc is a virtual filesystem, it makes sense that it would hang 
trying to notify dbus since dbus is not yet started.

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

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

Title:
  mountall hangs while trying to send dbus? messages for /proc

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

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to