IBM Support

PI11640: SNMP GET OF IFLASTCHANGE MIB CAUSES TCPIP DIVIDE OVERFLOW

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Hardware failure of one OSA card caused the z/VM TCP/IP stack
    to abend.  The error was actually caused by an SNMP GET request
    of the ifLastChange MIB variable that was issued by an SNMP
    management agent after z/VM TCP/IP sent an SNMP trap message
    to the agent to report the fact that the link had went down.
    While processing the SNMP GET request, TCP/IP must calculate
    how long the interface had been up prior to going down
    (ifLastChange equals the value of sysUpTime at the time the
    interface changed state).  During this calculation, the divide
    overflow error occurs because the interface had been up long
    enough (greater than 248 days) to cause the number of ticks
    (hundredths of a second) to not fit in an unsigned integer.
    The error occurs when the DoubleDivide routine is called by
    the TimeDiffToTimeTicks routine inside TCMIB PASCAL.  The
    following error messages are displayed on the TCP/IP console
    just prior to the TCP/IP system abending:
    .
     AMPX019I FIXED POINT DIVIDE BY ZERO EXCEPTION
           TRACE BACK OF CALLED ROUTINES
     ROUTINE                STMT AT ADDRESS IN MODULE
     TIMEDIFFTOTIMETICKS       3    00E60392   TCMIB
     GET_IFENTRY              64    00DF6FC2   TCMIB
     PROCESSMIBREQUEST        45    00DFB1E0   TCMIB
     DOAGENTREQUEST           15    00DF2EE6   TCSNMDPI_SNMP_DPI
     SNMPDPIPROCESS            7    00DF3170   TCSNMDPI_SNMP_DPI
     Schedule               2082    00CDA2E4
     <MAIN-PROGRAM>           14    00C181FE   TCPIP
     VSPASCAL                        00E4943A
    .
     AMPX015I ADDRESSING EXCEPTION
           TRACE BACK OF CALLED ROUTINES
     ROUTINE                STMT AT ADDRESS IN MODULE
     TIMEDIFFTOTIMETICKS       0    00CF1B24   TCMIB
     GET_IFENTRY              64    00DF6FC2   TCMIB
     PROCESSMIBREQUEST        45    00DFB1E0   TCMIB
     DOAGENTREQUEST           15    00DF2EE6   TCSNMDPI_SNMP_DPI
     SNMPDPIPROCESS            7    00DF3170   TCSNMDPI_SNMP_DPI
     Schedule               2082    00CDA2E4
     <MAIN-PROGRAM>           14    00C181FE   TCPIP
     VSPASCAL                       00E4943A
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All users of the z/VM SNMP server            *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    ****************************************************************
    * RECOMMENDATION: APPLY PTF                                    *
    ****************************************************************
    The problem is that when the 'ifLastChange' or 'sysUpTime'
    MIB variable is requested, the SNMP server needs to return
    the answer in a signed integer variable.  When the value
    of the MIB variable is greater than around 248 days, it
    exceeds the maximum value that will fit in the variable.
    This causes a division error that leads to the TCP/IP
    stack abending.
    

Problem conclusion

  • Code has been updated such that when the value of
    'ifLastChange' or 'sysUpTime' is greater than the
    variable can accommodate, the counter will wrap back
    to zero rather than causing an abend.
    ----------------------------------------------------
    The following documentations need to be updated.
    ----------------------------------------------------
    The description about SysUpTime and ifLastChange
    need to be updated in TCPIP User's Guide (SC24-6240-05)
    as follows:
    In TCPIP User's Guide:
    Appendix E. Management Information Base Objects
      -> System Group
      -> Table 40. Implementation of the System Group
      -> Object SysUpTime -> Definition
         update definition for SysUpTime in table 40
    The time (in hundredths of a second) since the network
    management portion of the system was last started.
    The maxmium value of the time is around 248 days. When
    the value of the time is greater than the maxmium value,
    the counter will wrap back to zero.
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++
    Appendix E. Management Information Base Objects
      -> Interfaces Group
      -> Table 41. Implementation of the Interfaces Group
                   (continued)
      -> Object ifLastChange -> Definition
         update definition for ifLastChange in table 41
    The value of sysUpTime at the time the interface
    entered its current operational state. If the current
    state was entered before the last start-up of the local
    network management subsystem, then this object contains
    a value of 0. The maxmium value of the time is around
    248 days. When the value of the time is greater than
    the maxmium value, the counter will wrap back to zero.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI11640

  • Reported component name

    TCP/IP V2 FOR V

  • Reported component ID

    5735FAL00

  • Reported release

    540

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2014-02-12

  • Closed date

    2014-03-07

  • Last modified date

    2015-02-16

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

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

    UI15836 UI15837 UI15854

Modules/Macros

  • MIB_SYST TCMIB
    

Publications Referenced
SC24624003SC24624002SC24612704  

Fix information

  • Fixed component name

    TCP/IP V2 FOR V

  • Fixed component ID

    5735FAL00

Applicable component levels

  • R540 PSY UI15854

       UP14/03/13 P 1401

  • R620 PSY UI15836

       UP14/03/13 P 1401

  • R630 PSY UI15837

       UP14/03/13 P 1501

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":"SG27N","label":"APARs - VM\/ESA environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"540","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG27M","label":"APARs - z\/VM environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"540","Edition":"","Line of Business":{"code":"LOB16","label":"Mainframe HW"}}]

Document Information

Modified date:
16 February 2015