[Bug 839166] Re: mountall hangs while trying to send dbus? messages for /proc
dj_palindrome
839166 at bugs.launchpad.net
Sun Sep 11 22:46:21 UTC 2011
Anecdotally, updating mountall from 2.25ubuntu1 (natty) to 2.31
(oneiric) is what appears to croak my system (which is virtualized). The
system hangs at mountall on the next cold boot.
I thought it was either base-files or initscripts, but since upgrading
either one of these takes mountall with it, my uninformed opinion is
that something is fishy with mountall.
My issue is perhaps a little different. I do not have this issue with
the version you are reporting (2.25). It does exist with 2.31.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to mountall in Ubuntu.
https://bugs.launchpad.net/bugs/839166
Title:
mountall hangs while trying to send dbus? messages for /proc
Status in “mountall” package in Ubuntu:
New
Bug description:
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.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/mountall/+bug/839166/+subscriptions
More information about the foundations-bugs
mailing list