Apache HTTP Server / STATUS

APACHE 2.2 STATUS:                                              -*-text-*-
Last modified at [$Date$]

The current version of this file can be found at:

  * http://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x/STATUS

Documentation status is maintained seperately and can be found at:

  * docs/STATUS in this source tree, or
  * http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/STATUS

Consult the following STATUS files for information on related projects:

  * http://svn.apache.org/repos/asf/apr/apr/trunk/STATUS
  * http://svn.apache.org/repos/asf/apr/apr-util/trunk/STATUS

Patches considered for backport are noted in their branches' STATUS:

  * http://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x/STATUS
  * http://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x/STATUS
  * http://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x/STATUS


Release history:
    [NOTE that x.{odd}.z versions are strictly Alpha/Beta releases,
          while x.{even}.z versions are Stable/GA releases.]

    2.2.5   : Tagged August 10, 2007
    2.2.4   : Released on January 9, 2007 as GA.
    2.2.3   : Released on July 28, 2006 as GA.
    2.2.2   : Released on May 1, 2006 as GA.
    2.2.1   : Tagged on April 1, 2006, not released.
    2.2.0   : Released on December 1, 2005 as GA.
    2.1.10  : Tagged on November 19, 2005, not released.
    2.1.9   : Released on November 5, 2005 as beta.
    2.1.8   : Released on October 1, 2005 as beta.
    2.1.7   : Released on September 12, 2005 as beta.
    2.1.6   : Released on June 27, 2005 as alpha.
    2.1.5   : Tagged on June 17, 2005.
    2.1.4   : not released.
    2.1.3   : Released on  February 22, 2005 as alpha.
    2.1.2   : Released on December 8, 2004 as alpha.
    2.1.1   : Released on November 19, 2004 as alpha.
    2.1.0   : not released.


Contributors looking for a mission:

    * Just do an egrep on "TODO" or "XXX" in the source.

    * Review the bug database at: http://issues.apache.org/bugzilla/

    * Review the "PatchAvailable" bugs in the bug database:

      https://issues.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&product=Apache+httpd-2&keywords=PatchAvailable

      After testing, you can append a comment saying "Reviewed and tested".

    * Open bugs in the bug database.


CURRENT RELEASE NOTES:

    * Forward binary compatibility is expected of Apache 2.2.x releases, such
      that no MMN major number changes will occur.  Such changes can only be
      made in the trunk.

    * All commits to branches/2.2.x must be reflected in SVN trunk,
      as well, if they apply.  Logical progression is commit to trunk,
      get feedback and votes on list or in STATUS, then merge into
      branches/2.2.x, as applicable.


RELEASE SHOWSTOPPERS:

PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
  [ start all new proposals below, under PATCHES PROPOSED. ]


PATCHES PROPOSED TO BACKPORT FROM TRUNK:

    * mpm_winnt: Fix return values from wait_for_many_objects.
      Note - this is required to avoid hangups of socket #64, #128
      as Microsoft set aside 64 reserved values.
      Trunk version of patch:
        http://svn.apache.org/viewvc?view=rev&revision=428029
      2.2.x version of patch:
        Trunk version works
        http://people.apache.org/~wrowe/mpm_winnt_waits.patch
        is easier to read (-U8)
      +1: mturk
      +0: fielding (patch is okay, underlying code is crap)
      wrowe notes: a patch should have the necessary effect with the
        minimum lines of code - there's alot of redecorating that's
        going on in this patch to no net effect.  The WAIT_TIMEOUT
        result value seems to be ignored in the revised code?
      mturk notes: WAIT_TIMEOUT is replaced by WAIT_FAILED with
        the accompanied patch in mpm\winnt\child.c.
      fielding notes: the routine is brain-dead -- one cannot replicate
        a wait for many objects by iterating through multiple waits with
        a one second sleep in between loops.  That's insane.
        The right ways to do that are explained in the MSDN article
        <http://msdn2.microsoft.com/en-us/library/ms687025.aspx>
        In any case, it should be checking nCount <= MAXIMUM_WAIT_OBJECTS
        first and use the simple wait in that case.
      mturk notes: We are interested in that only during shutdown
        so a one second simplification is acceptable compromise.
        The sole purpose of the patch is to allow the clean shutdown
        when the MaxClients is higher then 257. 

   * mod_authn_dbd: Export any additional columns queried in the SQL select
     into the environment with the name AUTHENTICATE_<COLUMN>. This brings
     mod_authn_dbd behaviour in line with mod_authnz_ldap.
     Trunk: http://svn.apache.org/viewvc?view=rev&revision=466865
     +1: minfrin
     niq: This wants a little tidying.  Use of 13 as a magic number (for a
          strlen of something defined elsewhere) is nasty.  More importantly
          you need to document how it affects the module's directives.
          I'll +1 it when that's done.
     wrowe: ditto's - good concept.

   * mod_dbd: initialise resources and prepared statements in all vhosts
     PRs: 42327, 41302
     Trunk: N/A due to other changes (r503931 et al)
     Patch by bojan: http://issues.apache.org/bugzilla/attachment.cgi?id=20161
     +1: niq
     -1: chrisd: I think r503931 is actually the right thing to backport here,
         which admittedly probably requires backporting r491729, r491884,
         r492394 (trivial), and r496831 first.  While more complex than a
         quick patch, I think the explanation in the fourth section of this
         post explains why there's no simple fix for the virtual-host
         inheritance issues:

         http://marc.info/?l=apache-httpd-dev&m=116742014418304&w=2

         Doing this work would also let us close at least three PRs.
         PR 42327 seems like a duplicate of 41302 (both would be closed
         by r503931), and r496831 would close PR 39985 as well.

   * mod_dbd: Rename functions and variables for consistency, and move
     some functions around for readability, prior to making
     functional changes for PRs 39985, 41302, and other issues.
     Trunk version of patches:
       http://svn.apache.org/viewvc?view=rev&revision=491729
       http://svn.apache.org/viewvc?view=rev&revision=492394
         (relevant portions only)
       http://svn.apache.org/viewvc?view=rev&revision=521230
     2.2.x version of patch:
       http://people.apache.org/~chrisd/patches/mod_dbd_pools_groups/mod_dbd-1tidy-2.2.x.patch
     +1: chrisd, fuankg
     +1: niq (to chris's mod_dbd updates collectively)

   * mod_dbd: Handle error conditions in dbd_construct() properly.
     Simplify ap_dbd_open() and use correct arguments to apr_dbd_error()
     when non-threaded.  Register correct cleanup data in non-threaded
     ap_dbd_acquire() and ap_dbd_cacquire().  Clean up configuration data
     and merge function.  Use ap_log_error() wherever possible.
     Trunk version of patches:
       http://svn.apache.org/viewvc?view=rev&revision=491884
       http://svn.apache.org/viewvc?view=rev&revision=492394
         (relevant portions only)
     2.2.x version of patch:
       http://people.apache.org/~chrisd/patches/mod_dbd_pools_groups/mod_dbd-2misc-2.2.x.patch
     +1: chrisd
     +1: niq (to chris's mod_dbd updates collectively)

   * beos MPM: Create pmain pool and run modules' child_init hooks when
     entering ap_mpm_run(), then destroy pmain when exiting ap_mpm_run().
     Otherwise modules' child_init hooks appear to never be executed.
     Also, destroying pmain ensures that cleanups registered in modules'
     child_init hooks are performed (e.g., mod_log_config and mod_dbd).
     Trunk version of patch:
       http://svn.apache.org/viewvc?view=rev&revision=491922
     2.2.x version of patch:
       http://people.apache.org/~chrisd/patches/mod_dbd_pools_groups/mpm_child_init-beos-2.2.x.patch
     +0: chrisd (abstaining; unable to test)

   * mod_dbd: Create memory sub-pools for each DB connection and close
     DB connections in a pool cleanup function.  Ensure prepared statements
     are destroyed before DB connection is closed.  When using reslists,
     prevent segfaults when child processes exit, and stop memory leakage
     of ap_dbd_t structures.  Avoid use of global s->process->pool, which
     isn't destroyed by exiting child processes in most multi-process MPMs.
     See also the third section of:
       http://marc.info/?l=apache-httpd-dev&m=116742014418304&w=2
     and the eventual solution as described in the comments in the
     dbd_setup() function.
       PR: 39985
     Trunk version of patch:
       http://svn.apache.org/viewvc?view=rev&revision=496831
     2.2.x version of patch:
       http://people.apache.org/~chrisd/patches/mod_dbd_pools_groups/mod_dbd-3pools-2.2.x.patch
     +1: chrisd
     +1: niq (to chris's mod_dbd updates collectively)

   * mod_dbd: Introduce configuration groups to allow inheritance by virtual
     hosts of database configurations from the main server.  Determine the
     minimal set of distinct configurations and share connection pools
     whenever possible.  Allow virtual hosts to override inherited SQL
     statements.  See also the fourth section of:
       http://marc.info/?l=apache-httpd-dev&m=116742014418304&w=2
     and the eventual solution as implemented in the dbd_post_config()
     function.  Obviates r424798, r432560, r432562, and r466641.
     Could be improved by the addition of <DBDGroup> configuration
     sections.  (Any takers?  :-)
       PR: 41302
     Trunk version of patch:
       http://svn.apache.org/viewvc?view=rev&revision=503931
     2.2.x version of patch:
       http://people.apache.org/~chrisd/patches/mod_dbd_pools_groups/mod_dbd-4groups-2.2.x.patch
     +1: chrisd
     +1: niq (to chris's mod_dbd updates collectively)

    * mod_proxy: Improve traces in ap_proxy_http_process_response()
      to investigate PR37770.
      Trunk version of patch:
        http://svn.apache.org/viewvc?view=rev&rev=549420
      +1: jfclere, mturk
      -0.5: rpluem says: As said in
       http://mail-archives.apache.org/mod_mbox/httpd-dev/200706.mbox/%3c46828E5A.50606@apache.org%3e
       I would prefer creating the brigade used in ap_proxygetline outside of
       the loop and pass it to ap_proxygetline for each call. Only do an
       apr_brigade_cleanup inside of ap_proxygetline then. Furthermore the
       check for a buffer overflow a few lines later is not correct any more
       (now an error (APR_ENOSPC) is returned instead).

    * multiple files,	Trivial cleanups
      PR: 39518 - Christophe JAILLET
      http://svn.apache.org/viewvc?view=rev&revision=557837
      http://svn.apache.org/viewvc?view=rev&revision=557972
      +1: rpluem
      niq: this isn't a straight backport (which is why I dropped it).
      +1 for core, modules/dav, modules/filters, and modules/ssl
      Not Applicable to modules/aaa

    * mod_proxy: Enable ProxySet inside <Proxy> section to create balancer or
      worker if they were not already created. This allows to have ProxySet
      directive before BalancerMember directives inside Proxy section.
      Trunk version of patch:
         http://svn.apache.org/viewcvs.cgi?rev=427920&view=rev
      Backport version for 2.2.x of patch:
         Trunk version of patch works
      +1: rpluem, jim
      -0.5: niq - This (ProxySet) needs documenting. 
            Reviewing it 'blind' lacks appeal.

    * mod_proxy: Allow optional name=value options within <Proxy section line.
      Additional arguments are allowed only for 'standard' url's, meaning that
      the wildchar urls will return error like before. This allow to specify
      the worker/balancer parameters on the definition line, without the need
      for extra ProxySet options.
      Trunk version of patch:
         http://svn.apache.org/viewcvs.cgi?rev=427928&view=rev
         http://svn.apache.org/viewcvs.cgi?rev=428291&view=rev
      Backport version for 2.2.x of patch:
         Trunk version of patch works
      +1: rpluem, jim

    * mod_ldap, mod_authnzldap: Add support for nested groups (i.e. the ability
      to authorize an authenticated user via a "require ldap-group X" directive
      where the user is not in group X, but is in a subgroup contained in X.
      PR: 42891
      http://svn.apache.org/viewvc?view=rev&revision=560373
      http://svn.apache.org/viewvc?view=rev&revision=562165
      A version of the patch specific to the 2.2 branch (i.e. the patch that
      would be used for backport) can be found at:
      http://people.apache.org/~rederpj/NestedGroups_2.2.xBranch.diff 
      +1: rederpj
      -0: bnicholes - Unless this is considered to be a significant deficiency in the
                       authnz_ldap 2.2 functionality, I would rather see this as new
		       functionality going forward in 2.4 rather than backported to
		       2.2. We need new functionality to push us forward rather than
		       give us an excuse to stay where we are.
      rederpj says: I'm working on a project based on Apache 2.2.x which needs this code
          and I would much prefer to use official Apache code than end up using a private
          patch. It isn't possible in the short term for us to move to trunk. It just
          happened that code I had written to add this function lined up with PR 42891.
          I was going to submit it and work to get it backported either way.
      rpluem says: I am still missing a minor bump due to the changes done
      in util_ldap.h. This is an extension of a public API.
      trawick says: The new directives should be documented in trunk,
          so that docs are available for backport at the same time.

    * mime.types: Add registered Apple installer type
      PR: 40379
      Comment: if "pkg" or "dist" is overloaded in the context of
      "extension"s, this may need to be reviewed.  Anyone?
      http://svn.apache.org/viewvc?view=rev&revision=560533
      http://svn.apache.org/viewvc?view=rev&revision=562236
      +1: niq

    * httxt2dbm.exe: add to the Windows build
      PR: 42549
      http://svn.apache.org/viewvc/httpd/httpd/trunk/support/httxt2dbm.dsp?view=log&pathrev=563636
      http://svn.apache.org/viewvc/httpd/httpd/trunk/Apache.dsw?view=diff&r1=563635&r2=563636&pathrev=563636
      http://svn.apache.org/viewvc/httpd/httpd/trunk/Makefile.win?view=diff&r1=563940&r2=563941&pathrev=563941
      +1: ake


PATCHES/ISSUES THAT ARE STALLED

    * PKCS#7: backport PCKS#7 patches from trunk.
      +1 ben
      jerenkrantz: What's the revision number to backport?
      wrowe asks: ditto jerenkrantz
      sctemme: svn blame suggests r424707
      rpluem: Digging through the history suggests that
              r424735
              r424821
              r424823
              need to be added to this. See also
              http://mail-archives.apache.org/mod_mbox/httpd-dev/200607.mbox/%3c20060723093125.GA19423@redhat.com%3e
              and follow ups for more details.

    * mod_proxy: Support variable interpolation in reverse proxy configuration
      http://svn.apache.org/viewvc?view=rev&revision=421686  (code)
      http://svn.apache.org/viewvc?view=rev&revision=422178  (code)
      http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/mod/mod_proxy.xml?r1=420990&r2=421725 (docs)
      +1: niq, mturk
      -1: wrowe notes; modifying the existing syntax makes collaboration 
          impossible by an admin team - unexpected side effects and the rest.
          ProxyPassEnv* or ProxyPassSubstitute* directives that add this
          behavior on a pattern-by-pattern basis would win my -1 to a +1,
          and solve the performance hits noted by niq on an 80/20 basis.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.