]> pere.pagekite.me Git - homepage.git/blobdiff - mypapers/200802-bootsequence/200802-bootsequence.html
Generated.
[homepage.git] / mypapers / 200802-bootsequence / 200802-bootsequence.html
index 6ef58068d885ad74b45c3c9676532957993d7fba..4f2a3f118c291937d71ac6f9d66f0f0679fb7f0a 100644 (file)
@@ -14,8 +14,6 @@ PRE {
   </head>
   <body>
 
-<a href="../200706-bootseq/200706-bootseq.html">insserv talk during Debconf 7</a>
-
 <h1><A href="http://www.fosdem.org/2008/schedule/events/debian_boot">Reordering
 the Debian boot sequence for correctness and speed</a></h1>
 
@@ -28,7 +26,7 @@ a few advantages on the way.</p>
 
 <div class="presenter">Petter Reinholdtsen - one of the sysvinit maintainers
   <br>pere@hungry.com
-  <br>FOSDEM 2008, 2008-02-26</div>
+  <br>FOSDEM 2008, 2008-02-24</div>
 
 <!--
 
@@ -55,9 +53,9 @@ This talk is about how all of this can be done with Debian.
 <li>Quick overview of the SysV init boot system
 <li>The problem with ordering
 <li>Using LSB init.d script dependencies to solve it.
-<li>Status of dependency based boot sequencing in Debian.
+<li>Status of dependency based boot sequencing.
 <li>How to write LSB headers.
-<li>What is left to do in Debian.
+<li>What is left to do.
 </ul>
 
 <!--
@@ -101,9 +99,9 @@ This talk is about how all of this can be done with Debian.
 The very early boot is done before hard drive partitions are
 mounted.</p>
 
-<ol>is
+<ol>
 
-<li>/sbin/init start, which looks at /etc/inittab and decides what to
+<li>/sbin/init stats and looks at /etc/inittab to decide what to
   do.</li>
 
 <li>The scripts in /etc/rcS.d/  are executed in sequence by
@@ -142,7 +140,7 @@ based, the boot sequence is no longer sequencial.<p>
 <li>init then run in sequence all start scripts in /etc/rcX.d/, with
   <tt>start</tt> as their argument.</li>
 
-<li>Runlevels 0 and 6 are not behaving as you expect.
+<li>Runlevels 0 and 6 are not behaving as you would expect.
 
 </ul>
 
@@ -166,13 +164,14 @@ maintenance.</p>
 <h2>The ordering problem</h2>
 
 <p>Script ordering is vital for this to work.  And how are the scripts
-ordered?  By numbers!
+ordered?  By numbers 01-99!
 
 <p>And the numbers are picked using skills, knowledge and negotiation.
 Getting it right is often hard.
 
 <p>The current Debian default is wrong.  The stop sequence should by
-default be the reverse of the start sequence.  It isn't.
+default be the reverse of the start sequence.  It isn't.  The default
+uses '20' for both.
 
 <p>Reordering is hard and sometimes requires cooperation between
 maintainers of all packages involved.
@@ -223,12 +222,12 @@ Two options are available with the insserv package:
 
 <dl>
 <dt>Static checking of current headers:
-<tt>/usr/share/insserv/check-initd-order [-o] [-k]</tt>
+<br><tt>/usr/share/insserv/check-initd-order [-o] [-k]</tt>
 <dd>report mismatch in current ordering.
 
 <dt>Graph of the dependencies:
-<a href="sid-base-boot-20080220.dot"><tt>/usr/share/insserv/check-initd-order -g</tt></a>
-<dd>for reviewing dependencies
+<br><a href="sid-base-boot-20080220.dot"><tt>/usr/share/insserv/check-initd-order -g</tt></a>
+<dd>for reviewing dependencies with dotty from graphviz.
 
 </dl>
 
@@ -244,9 +243,12 @@ Two options are available with the insserv package:
   <li>Finally reorder symlinks in rc*.d/ using dependencies
 </ul>
 
+<p>Will refuse to enable when obsolete init.d scripts, loops,
+duplicate provides etc is detected</p>
+
 <h2>Enabling dependency based boot sequencing II</h2>
 
-<p><pre size="-1">
+<p><pre>
 # aptitude install insserv
 # dpkg-reconfigure insserv
 info: Checking if it is safe to convert to dependency based boot.
@@ -276,11 +278,15 @@ success: Boot system successfully converted
 <p>Incorrect dependencies give the wrong but predictable and stable
 (as in the same all the time) boot and shutdown order.</p>
 
+<p>Every insserv upload are checked using test suite to make sure the
+generated boot sequence is correct, and that previously detected bugs
+do not show up again.</p>
+
 <p>It is possible to enable concurrent booting, running boot scripts
   in parallel (CONCURRENCY=startpar in /etc/default/rcS)</p>
 
-<p>Might even speed up the boot and shutdown (initial benchmark show
-  speedup only by reordering based on dependencies)</p>
+<p>Might even speed up boot and shutdown (initial benchmark shows
+  speedup by just reordering based on dependencies).</p>
 
 <h2>Disabling dependency based boot sequencing</h2>
 
@@ -338,7 +344,7 @@ is the header for you:</p>
 <p>$remote_fs is needed by all scripts using files in /usr/.  $syslog
 is needed only by scripts starting services logging to syslog.</p>
 
-<h2>Virtual facilities</h2>
+<h2>Virtual facilities (I)</h2>
 
 <p>Linux Software Base version 3.2 defines these virtual
 facilities:</p>
@@ -362,6 +368,11 @@ running.
 file systems such as /usr may be remote. Many applications that
 require $local_fs will probably also require $remote_fs. (In Debian,
 /usr/ and NFS directories are guaranteed to be mounted)
+</dl>
+
+<h2>Virtual facilities (II)</h2>
+
+<dl>
 
 <dt>$time
 <dd>the system time has been set, for example by using a network-based
@@ -380,6 +391,8 @@ facility, then that daemon has been started.
 </dl>
 
 <p>All of these represent points in time during boot and shutdown.
+Virtual facilities are defined in <tt>/etc/insserv.conf</tt> and
+<tt>/etc/insserv.conf.d/</tt>
 
 <h2>What to list as dependencies (II)</h2>
 
@@ -397,42 +410,63 @@ This make sure <tt>/usr/</tt> is available during start and that it is
 stopped before <tt>sendsigs</tt> kills all processes during
 shutdown.</p>
 
-XXX More
+<p>A sysadmin can provide overrides in
+<tt>/etc/insserv/overrides/scriptname</tt> if the script settings are
+wrong.  The insserv package provides overrides in
+<tt>/usr/share/insserv/overrides/<tt> for packages currently missing
+headers.</p>
 
-<h2>Status of the dependency based boot system</h2>
+<h2>Handling alternatives</h2>
 
-<img alt="LSB header progress graph" src="lsb-header-progress.png" width="50%" align="right">
+<p>Not quite tested yet.
 
-<p>Release goal for Debian Lenny.
+<p>Should perhaps be handled using virtual facilities in
+/etc/insserv.conf.d/.
 
-<p>Packages with LSB headers (in Sid): 662 of 866 (76%)
-<br>Unsolved BTS reports: around 85
-<br>Packages without BTS reports: around 150
-<br>Last package will be fixed 2008-06-13 at the current rate.
+<p>Do not listing identical provides in several scripts - break
+installation.
 
-<p>Needs better documentation
+<h2>Status of the dependency based boot system</h2>
+
+<img alt="LSB header progress graph" src="lsb-header-progress.png" width="50%" align="right">
 
-<p>Should update Debian policy to reflect dependency based boot
+<p>Release goal for Lenny.
+<br>76% of packages got LSB headers.
+<br>Unsolved in BTS: ~85
+<br>Without BTS reports: ~150
+<br>Last package will be fixed 2008-06-15 at the current rate.
+<br>Needs better documentation for maintainers.
+<br>Should update Debian policy to reflect dependency based boot
   sequencing.
 
-<p>Two insserv bugs to fix:
+<p>Two insserv bugs left to fix:
 <ul>
-<li>Will sometimes add  unwanted stop symlinks (#XXX).
-<li>Will fail fail on "fake" loops. (#XXX)
+<li>Might add unwanted stop symlinks (<a href="http://bugs.debian.org/464017">#464017</a>).
+<li>Will fail on "fake" loops as well as real loops. (<a href="http://bugs.debian.org/458582">#458582</a>)
 </ul></p>
 
-<p>
-
 <h2>Tracking status</h2>
 
-debian/rules missing-overrides
-debian/rules missing-by-popcon
+<p>The current status is tracked in the svn repository for insserv.  Run
+<br><tt><a href="status-overrides.txt">debian/rules missing-overrides</a></tt> or
+<br><tt><a href="status-popcon.txt">debian/rules missing-by-popcon</a></tt>
+<br>in the source directory to see the current status.
+
+<p>See also wiki pages with documentation and status:
+
+<ul>
+<li><a href="http://wiki.debian.org/LSBInitScripts">http://wiki.debian.org/LSBInitScripts</a>
+<li><a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot</a>
+<li>Repository: <tt>svn+ssh://svn.debian.org/svn/initscripts-ng/trunk/src/insserv</tt>
+
+</ul>
 
-<h2>References</h2>
+<p>There is also slides from my
+<a href="../200706-bootseq/200706-bootseq.html">talk from Debconf
+7</a>.<p>
 
-http://wiki.debian.org/LSBInitScripts
-http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot
-svn+ssh://svn.debian.org/svn/initscripts-ng/trunk/src/insserv
+<p>More man-power is needed to report BTS reports, NMU packages and
+discover dependency errors.  Please test the system.
 
     <h2>Thank you very much</h2>