<!DOCTYPE HTML PUBLIC "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension//EN" [
<!ENTITY base CDATA "../..">
<!ENTITY email 'freebsd-qa'>
<!ENTITY date "$FreeBSD$">
<!ENTITY title "FreeBSD 6.0 Open Issues">
<!ENTITY % navinclude.download "INCLUDE">
<!ENTITY % developers PUBLIC "-//FreeBSD//ENTITIES FreeBSD Developers Entities//EN"> %developers;
<!-- Status levels -->
<!ENTITY status.na "<font color=green>N/A</font>">
<!ENTITY status.done "<font color=green>Done</font>">
<!ENTITY status.wip "<font color=blue>In&nbsp;progress</font>">
<!ENTITY status.untested "<font color=orange>Needs&nbsp;testing</font>">
<!ENTITY status.new "<font color=red>Not&nbsp;done</font>">
<!ENTITY status.unknown "<font color=red>Unknown</font>">
<!ENTITY status.deferred "<font color=gray>Deferred for future release</font>">

<!ENTITY url.cvsweb "http://www.freebsd.org/cgi/cvsweb.cgi">
<!ENTITY url.mid "http://docs.freebsd.org/cgi/mid.cgi?">
<!ENTITY url.pr "http://www.freebsd.org/cgi/query-pr.cgi?">

<!ENTITY stresstest SYSTEM "./stress.html">
]>

<!--

  Changes to this list MUST NOT be committed without approval of
  Release Engineering Team (re@FreeBSD.org) (for general items) or
  Documentation Engineering Team (doceng@FreeBSD.org) (for doc-related
  items).

-->

<html>
&header;

<p>This is a list of open issues that need to be resolved for FreeBSD
  6.0.  If you have any updates for this list, please e-mail
  re@FreeBSD.org.</p>

<ul>
  <li><a href="#showstopper">Show stopper defects</a></li>
  <li><a href="#required">Required features</a></li>
  <li><a href="#desired">Desired features</a></li>
  <li><a href="#docs">Documentation Items</a></li>
  <li><a href="#testing">Testing foci</a></li>
  <li><a href="#stresstest">Problems Discovered by Kernel Stress Test Suite</a></li>
</ul>
  
<h3>Show stopper defects for 6.0-RELEASE</h3>

<a name="showstopper"></a>
<table class="tblbasic">
  <tr class="heading">
    <th>Issue</th>
    <th>Status</th>
    <th>Responsible</th>
    <th>Description</th>
  </tr>

</table>

<h3>Required features for 6.0-RELEASE</h3>

<a name="required"></a>
<table class="tblbasic">
  <tr class="heading">
    <th>Issue</th>
    <th>Status</th>
    <th>Responsible</th>
    <th>Description</th>
  </tr>

</table>

<h3>Desired features for 6.0-RELEASE</h3>

<a name="desired"></a>
<table class="tblbasic">
  <tr class="heading">
    <th>Issue</th>
    <th>Status</th>
    <th>Responsible</th>
    <th>Description</th>
  </tr>

  <tr>
    <td>devfs umount panic</td>
    <td>&status.new;</td>
    <td>&nbsp;</td>
    <td>There is a race condition between device removal and devfs
      umounts that causes "Memory modified after free" panics.  Can
      be reproduced by doing 'mdconfig -u' concurrently with unmounting
      a devfs instance.</td>
  </tr>

  <tr>
    <td>/dev/kmem panic</td>
    <td>&status.new;</td>
    <td>&nbsp;</td>
    <td>Kris has noticed panics on SMP machines when there was ABI
      breakage of libkvm and world was not rebuilt and utilities like
      fstat were used.  This suggests panics can be caused by incorrect
      accesses to /dev/kmem.</td>
  </tr>

  <tr>
    <td>KLDs on sparc64</td>
    <td>&status.new;</td>
    <td>&nbsp;</td>
    <td>On sparc64 machines with more than 4Gb memory KLDs are not usable
      and will panic the system.  The problem is reportedly with how the
      KLDs are compiled, it only works if the code ends up below 4G.</td>
  </tr>

  <tr>
    <td>Max RAM on sparc64</td>
    <td>&status.new;</td>
    <td>&nbsp;</td>
    <td>Maximum RAM on sparc64 appears to be limited to 16Gb.</td>
  </tr>

  <tr>
    <td>make -jN</td>
    <td>&status.new;</td>
    <td>&nbsp;</td>
    <td>Doing 'make -jN', then suspending/resuming it may result in make
      reporting it lost child process(es).</td>
  </tr>

  <tr>
    <td>OpenBSM</td>
    <td>&status.deferred;</td>
    <td>&a.rwatson;</td>
    <td>The integration of OpenBSM is waiting on some final licensing hurdles.
      Once those are cleared, it will be a very desirable feature for 6.0.</td>
  </tr>

  <tr>
    <td>update sysinstall disk labeling</td>
    <td>&status.wip;</td>
    <td>&a.rodrigc;</td>
    <td>Sysinstall could use the same fixes recently made to fdisk so it
      plays nice with GEOM and disk labeling.  This does not cause problems
      during install because nothing on the disk is mounted when its label
      is being manipulated but it can cause problems if sysinstall gets
      used on a live system to adjust labels on existing disks which
      sys-admins tend to do.</td>
  </tr>

</table>

<h3>Documentation items that must be resolved for 6.0</h3>

<a name="docs"></a>
<table class="tblbasic">
  <tr class="heading">
    <th>Issue</th>
    <th>Status</th>
    <th>Responsible</th>
    <th>Description</th>
  </tr>

  <tr>
    <td>dhclient</td>
    <td>&status.new;</td>
    <td>freebsd-doc</td>
    <td>The ISC DHCP client v3.x has been removed in favor of the
      OpenBSD DHCP client which was based on ISC DHCP v2.X.  Minimal
      updates to the FreeBSD Handbook may be required.</td>
  </tr>

  <tr>
    <td>WPA / hostap</td>
    <td>&status.wip;</td>
    <td>loader@freebsdmall.com, &a.sam;, &a.murray;</td>
    <td>Significant new wireless functionality will be available with
      FreeBSD 6.0.  The wireless section of the FreeBSD Handbook
      should be updated to describe how to connect to networks with
      WPA keys, setup host access points, etc.  A howto in progress is
      available <a
      href="http://www.freebsdmall.com/~loader/en_US.ISO8859-1/articles/wireless/article.html">here</a>.</td>
  </tr>
</table>


<h3>Testing foci for 6.0-RELEASE</h3>

<a name="testing"></a>
<table class="tblbasic">
  <tr class="heading">
    <th>Issue</th>
    <th>Status</th>
    <th>Responsible</th>
    <th>Description</th>
  </tr>

  <tr>
    <td>New dhclient</td>
    <td>&status.untested;</td>
    <td>&a.brooks;</td>
    <td>The ISC DHCP client v3.x has been removed in favor of the
      OpenBSD DHCP client which was based on ISC DHCP v2.X.  More
      testing is needed to make sure there are no major regressions in
      functionality.  We are particularly interested in tests
      involving non-standard environments.</td>
  </tr>

  <tr>
    <td>WPA / hostap</td>
    <td>&status.untested;</td>
    <td>&a.sam;</td>
    <td>Significant new wireless functionality is available in FreeBSD
      6.0.  As this functionality is rather new, further testing would
      be appreciated.</td>
  </tr>

  <tr>
    <td>if_bridge</td>
    <td>&status.untested;</td>
    <td>&nbsp;</td>
    <td>A new bridge implementation has been added from NetBSD. As this
      has not seen a wider audience yet, further testing would be
      appreciated. See if_bridge(4) for configuration details.</td>
  </tr>

  <tr>
    <td>sysinstall dhclient problems</td>
    <td>&status.untested;</td>
    <td>&a.scottl;, &a.sam;</td>
    <td>sysinstall has been updated to deal with the new DHCP client in 6.0,
      more testing is needed.</td>
  </tr>

  <tr>
    <td>ULE</td>
    <td>&status.untested;</td>
    <td>&a.davidxu;</td>
    <td>The ULE scheduler has been fixed on both HEAD and RELENG_6.  More
      testing is needed.</td>
  </tr>

  <tr>
    <td>aac(4) regression</td>
    <td>&status.untested;</td>
    <td>&a.scottl;</td>
    <td>There had been a regression in the aac device driver on
      Dell 2550 machines.  This should be fixed but more testing
      would be good.</td>
  </tr>

  <tr>
    <td>vnode_pager_init nswbuf initialization bug</td>
    <td>&status.untested;</td>
    <td>&a.kan;</td>
    <td>There had been a serious performance regression due
      to a very low bound on the number of swap buffers per vnode (1).
      This should be fixed but more testing would be good.</td>
  </tr>

  <tr>
    <td>fdisk & boot0cfg</td>
    <td>&status.untested;</td>
    <td>&a.phk;</td>
    <td>The boot0cfg and fdisk utilities need to be updated to use the proper
      GEOM model for updating the boot sector of a mounted disk.</td>
  </tr>

  <tr>
    <td>Alarming devfs shutdown error needs to be quenched</td>
    <td>&status.done;</td>
    <td>&a.rwatson;</td>
    <td>During system shutdown, devfs generates a spurious error message
      due to /dev being non-unmountable: "unmount of /dev failed (BUSY)".
      While this is not a product of serious breakage, it is a potentially
      alarming error, whose source should either be fixed, or the message
      should be forceably quenched, in order to avoid many false positive
      bug reports and user concern.</td>
  </tr>

  <tr>
    <td>page fault at if_ethersubr.c: 284</td>
    <td>&status.done;</td>
    <td>&a.glebius;</td>
    <td>Found by stress tests at <a href="http://www.holm.cc/stress/log/cons141.html">http://www.holm.cc/stress/log/cons141.html</a>.</td>
  </tr>

  <tr>
    <td>Livelock</td>
    <td>&status.untested;</td>
    <td>&a.tegge;</td>
    <td>Found by stress tests at <a href="http://www.holm.cc/stress/log/cons139.html">http://www.holm.cc/stress/log/cons139.html</a>.  This is the second most
      frequent panic reported by Peter Holm.</td>
  </tr>

  <tr>
    <td>panic: softdep_setup_inomapdep: found inode</td>
    <td>&status.untested;</td>
    <td>&a.tegge;</td>
    <td>Found by stress tests at <a href="http://www.holm.cc/stress/log/cons138.html">http://www.holm.cc/stress/log/cons138.html</a>.</td>
  </tr>

  <tr>
    <td>M_SAVEDINO</td>
    <td>&status.untested;</td>
    <td>&a.tegge;</td>
    <td>A 'memory modified after free' bug affecting M_SAVEDINO.  Possibly
      a softupdates bug.</td>
  </tr>

  <tr>
    <td>kgdb</td>
    <td>&status.untested;</td>
    <td>&a.marcel;</td>
    <td>kgdb has been modified to handle trap frames on all tier 1 and 2
      architectures.  This allows tracebacks to provide useful info.</td>
  </tr>

  <tr>
    <td>panic: wrong b_bufobj</td>
    <td>&status.untested;</td>
    <td>&a.tegge;</td>
    <td>Found by stress tests at <a href="http://www.holm.cc/stress/log/cons140.html">http://www.holm.cc/stress/log/cons140.html</a>.  This is high priority
      and can be provoked within minutes of testing!</td>
  </tr>

  <tr>
    <td>Panic when filesystem fills</td>
    <td>&status.done;</td>
    <td>&a.rwatson;</td>
    <td>Inadequate locking causes panics when calling kernel printf functions.
      This is most often seen when a filesystem fills up and uprintf() is
      called to report it to the console, but it can happen in many other
      places also.  Properly locking the upper and lower parts of the tty
      subsystem likely cannot happen for 6.0, but temporary fixes must be
      developed and committed.  A patch has now been committed that is
      believed to fix this problem by acquiring Giant in uprintf() and
      tprintf(), as well as a regression test.  This work-around has now been
      merged to RELENG_6 and is ready for wide-spread testing.</td>
  </tr>

  <tr>
    <td>panic on multicast socket close after interface removal</td>
    <td>&status.done;</td>
    <td>&a.rwatson;</td>
    <td>Due to the addition of multicast locking, a long-present memory
      corruption bug now generates an immediate panic if an interface is
      removed while a multicast group is in use on the interface.  This
      can manifest if running routed and using vlans.  A regression test
      has now been committed as msocket_ifnet_remove.  A short-term fix
      will be to GC references to the interface in the IPv4/IPv6
      multicast socket options hung off of the inpcb; a long term solution
      will require determining the correct application semantics for
      interface removal as relates to multicast sockets.  This problem is
      described in detail in PR kern/77665.  A fix has now been committed
      to 7-CURRENT in the CVS HEAD, and merged to RELENG_6.</td>
  </tr>

  <tr>
    <td>panic: handle_written_inodeblock: live inodedep</td>
    <td>&status.untested;</td>
    <td>&a.truckman;, &a.tegge;</td>
    <td>Found by stress tests at <a href="http://www.holm.cc/stress/log/cons142.html">http://www.holm.cc/stress/log/cons142.html</a>.</td>
  </tr>

  <tr>
    <td>"snaplk" livelock</td>
    <td>&status.untested;</td>
    <td>&a.truckman;</td>
    <td>Found by stress tests at <a href="http://www.holm.cc/stress/log/cons143.html">http://www.holm.cc/stress/log/cons143.html</a>.</td>
  </tr>

  <tr>
    <td>fpudna: fpcurthread == curthread 1 times</td>
    <td>&status.untested;</td>
    <td>&a.ups;</td>
    <td>This warning is appearing sporadically on a dual AMD64 system.  It
      appears to be warning against a legitimate problem, and thus should be
      investigated and fixed.</td>
  </tr>

  <tr>
    <td>race condition in POSIX named fifos</td>
    <td>&status.done;</td>
    <td>&a.rwatson;</td>
    <td>There have been multiple reports of panics when running with make -j
      on SMP systems, which appear to be associated with a race condition in
      the POSIX named fifo support.  A number of regression tests have been
      written to confirm that any fix does not break fifos, and a number of
      other unrelated bugs were fixed in the process.  The cause of the
      symptoms has been identified, and a workaround has been committed to
      7-CURRENT for testing; it has been merged to RELENG_6 for testing.</td>
  </tr>

  <tr>
    <td>UFS_EXTATTR_AUTOSTART</td>
    <td>&status.done;</td>
    <td>&a.rwatson;</td>
    <td>Changes in VFS locking as part of the SMPng work have resulted in a
       new panic during the auto-starting of UFS1 extended attributes.  A
       patch to fix this has been committed (ufs_extattr.c:1.82), and now
       requires further testing before it is merged to RELENG_6 and
       RELENG_6_0.</td>
  </tr>

</table>

<h3>Stress Test Panics</h3>

<a name="stresstest"></a>
<p>The system is continuously being subjected to Peter Holm's <a
  href="http://www.holm.cc/stress/">Kernel Stress Test Suite</a>.  The
  following issues have recently been discovered from this test
  suite.</p>

&stresstest;

    &footer;

  </body>
</html>
