IBM Support

PM57067: ASYNCHRONOUS RECVMSG RETURNS EMPTY SOCKADDR

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as unreproducible in next release.

Error description

  • Asynchronous recvmsg returns empty sockaddr information in the
    structure pointed to by msghnameptr.
    A timing condition exists where an asynchronous recvmsg is
    unable to complete immediately when it is processed by the
    TCP/IP stack.  The TCP/IP stack creates an event that is used
    to schedule an SRB to complete the call asynchronously.  Network
    activity occurs that makes the socket readable and the TCP/IP
    stack processes the event, scheduling the SRB for async part 2
    processing.  The part 2 SRB completes and is passed back to
    the PFS where the sockaddr structure is initialized and then
    the return information is stored.  The application unit of
    work that issued the recvmsg was interrupted and is now
    resumed.  The PFS initializes the sockaddr structure and
    then detects the call will complete asynchronously and
    returns control to the application.  The initialization of
    the sockaddr structure cleared the results stored by async
    part 2 processing.
    
    ADDITIONAL SYMPTOMS:
    NFS GFSAMAIN UNKNOWN GFSAX TAE BPXPTATT
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All users of the IBM Communications Server   *
    *                 for z/OS Version 1 Release 13 IP             *
    ****************************************************************
    * PROBLEM DESCRIPTION: Asynchronous recvmsg() or recvfrom()    *
    *                      complete with empty socket address      *
    *                      structure.                              *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    Asynchronous recvmsg() or recvfrom() complete with empty socket
    address structure.
    When an asynchronous recvmsg() or recvfrom() socket call is
    issued there is a timing condition where the supplied socket
    address may not be filled in with the peers information.
    This can occur when a socket address structure is supplied on
    the socket call and the call is unable to complete immediately.
    TCPIP will create an event to allow for asynchronous completion
    of the socket call and return control to the application.  If
    the application thread gets interrupted and is unable to exit
    the PFS layer before the asynchronous completion of the socket
    call, the socket address information filled in during the
    asynchronous completion will be overlaid with an empty socket
    address structure when the synchronous phase of the call
    exits the PFS layer.
    The PFS layer is failing to detect the call will complete
    asynchronously and is copying the empty socket information
    returned by the TCPIP stack.
    +-------------------------------------------------------------+
    + Please check our Communications Server for OS/390 homepages +
    + for common networking tips and fixes.  The URL for these    +
    + homepages can be found in Informational APAR II11334.       +
    +-------------------------------------------------------------+
    

Problem conclusion

Temporary fix

Comments

  • The PFS layer modules that support recvmsg() and recvfrom()
    socket calls have been amended to not copy the socket address
    information during the synchronous phase when the socket call
    will complete asynchronously.
    
    ****************************************************************
    * FUNCTION AFFECTED: Communications Server TCP/IP (PM57067)    *
    *                    PFS                                       *
    ****************************************************************
    * DESCRIPTION      : COLDCOMM                                  *
    ****************************************************************
    * TIMING           : Post-APPLY                                *
    ****************************************************************
    If you are running multiple TCP/IP stacks in an MVS image all
    of the TCP/IP stacks must be stopped concurrently before being
    restarted.  An IPL is not required.
    

APAR Information

  • APAR number

    PM57067

  • Reported component name

    TCP/IP V3 MVS

  • Reported component ID

    5655HAL00

  • Reported release

    1D0

  • Status

    CLOSED UR1

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-01-31

  • Closed date

    2012-03-06

  • Last modified date

    2012-05-02

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

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

    UK76837

Modules/Macros

  • EZBPFFSF EZBPFFSM EZBPFSRF EZBPFSRM
    

Fix information

  • Fixed component name

    TCP/IP V3 MVS

  • Fixed component ID

    5655HAL00

Applicable component levels

  • R1D0 PSY UK76837

       UP12/04/03 P F204

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"1D0","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSCY4DZ","label":"DO NOT USE"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"1D0","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
02 May 2012