IBM Support

PK57680: HIGH CPU LOOP IN MOD_IBM_SSL WHEN POLL RETURNS UNEXPECTED EVENTS

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The mod_ibm_ssl uses the poll() function to determine when it
    can attempt to write to the client, or when a timeout occurs.
    It does not check for POLLHUP (client hangup).  On HP-UX, a
    special condition can occur where POLLOUT (trys to write to
    client) must be ignored and POLLHUP must be respected.  The
    mod_ibm_ssl always relies on the attempt to write to the client
    to find out when the client dropped, and does not check for
    POLLHUP.  A high CPU loop can occur in this situation.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: IBM HTTP Server on Unix and Linux systems    *
    * with SSL enabled (problem only observed on HP-UX)            *
    ****************************************************************
    * PROBLEM DESCRIPTION: mod_ibm_ssl uses the poll() syscall on  *
    * Unix and Linux systems to determine when more data can be    *
    * read from or written to the peer.  poll() can report a       *
    * special POLLHUP condition which indicates that communication *
    * with the peer was severed.  However, mod_ibm_ssl ignored     *
    * this condition and instead assumed that a read or write      *
    * attempt would report the same condition.  A situation was    *
    * observed on HP-UX where, after communication with a peer     *
    * was severed, a write operation would report EAGAIN (try      *
    * again) and poll() would report POLLHUP.  Because POLLHUP was *
    * ignored, a high-CPU loop occurred with poll() and the write  *
    * operation occurring over and over.
    ****************************************************************
    * RECOMMENDATION: Apply this APAR fix if encountering high CPU *
    * conditions on HP-UX with mod_ibm_ssl configured.             *
    ****************************************************************
    

Problem conclusion

  • When POLLHUP is reported while waiting to read or write, the
    peer connection is considered terminated.
    An additional debug trace was added for the write operation
    which will show when this condition is reported.
    .
    This change does not apply to the Windows platform.
    Targeted fix packs:
      6.1.0.15
      6.0.2.27
    and cumulative fix PK65782 for IBM HTTP Server 2.0.47
    

Temporary fix

Comments

APAR Information

  • APAR number

    PK57680

  • Reported component name

    IBM HTTP SERVER

  • Reported component ID

    5724J0801

  • Reported release

    60H

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2007-12-05

  • Closed date

    2007-12-18

  • Last modified date

    2008-05-23

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Modules/Macros

  • IBMSSL
    

Fix information

  • Fixed component name

    IBM HTTP SERVER

  • Fixed component ID

    5724J0801

Applicable component levels

  • R60A PSN

       UP

  • R60H PSN

       UP

  • R60P PSN

       UP

  • R60I PSN

       UP

  • R60S PSN

       UP

  • R60Z PSN

       UP

  • R61A PSN

       UP

  • R61H PSN

       UP

  • R61P PSN

       UP

  • R61I PSN

       UP

  • R61W PSN

       UP

  • R61Z PSN

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud \u0026 Data Platform"},"Product":{"code":"SSEQTJ","label":"IBM HTTP Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"6.0"}]

Document Information

Modified date:
23 October 2021