Comment 3 for bug 581291

Revision history for this message
Mike Bianchi (mbianchi-foveal) wrote :

I am unable to provide the failure evidence, beyond the observations of things like "ps axf does not show any getty processes", because upstart was not putting any messages to the console nor into log files. I don't see any logging mechanism in /etc/init, probably because it expects things that fail to go to dmesg or syslog. Before I turned --verbose on, there are only init: message in syslog for apport and plymouth . Afterwards there a lots of messages, but no problems.

See attachments syslog.old syslog.new .

Now that I think about it, the problem may have to do with /dev/console and syslog not having been properly started when
other things were happening on other cores(?).

Suggestion: How about a tool to create the tree of dependencies of /etc/init/*.conf ?

  "Upstart does not need a "single thread" option."

At this point, I disagree. The evidence is that my boots are reliable now and before --verbose they were not.
I strongly suspect that the reason is the --verbose is enforcing an order that is not enforced when it is not present.
I _suspect_ that the problem is not in /sbin/init but in some subtle dependency in the ./etc/init/*.conf files that is
expressed in my circumstance that is not expressed in others.

I suspect the circumstance has to do with very fast CPUs or multiple cores.

I don't think race conditions are preventable if they are not obvious to those writing the /etc/inti/*.conf files.
Get a start on wrong and they will happen.

If --single-thread is the wrong answer, then I am asking for something that will be obvious to the next person
who has this problem.